组合多个传感器的状态
combination 传感器平台允许您将多个
传感器的状态组合为一个。要使用此传感器,请指定组合类型并添加源传感器。
unit_of_measurement、device_class、entity_category、icon 和
accuracy_decimals 属性默认从第一个传感器继承。
state_class 明确不继承,因为当多个传感器用于某些组合类型时,total_increasing 状态
仍可能下降。
源传感器状态可以通过几种方式组合:
KALMAN滤波器:此类型将一或多个 传感器以减小误差的方式过滤为一个。如果使用单个传感器作为数据源, 它的作用类似于 sensor-filter-exponential_moving_average 滤波器。使用 多个传感器时,它根据其各自的 标准差组合它们的值。
# Example configuration entrysensor: - platform: combination type: kalman name: "Temperature" process_std_dev: 0.001 sources: - source: temperature_sensor_1 error: 1.0 - source: temperature_sensor_2 error: !lambda |- return 0.5 + std::abs(x - 25) * 0.023LINEAR组合:此类型在将所有源传感器分别乘以配置的系数后进行求和。
# Example configuration entrysensor: - platform: combination type: linear name: "Balance Power" sources: - source: total_power coefficient: 1.0 - source: circuit_1_power coefficient: -1.0MAX、MEAN、MEDIAN、MIN、MOST_RECENTLY_UPDATED、RANGE、SUM组合:这些类型在所有源传感器状态中计算指定的组合。
# Example configuration entrysensor: - platform: combination type: median name: "Median Temperature" sources: - source: temperature_sensor_1 - source: temperature_sensor_2 - source: temperature_sensor_3-
type (必选, enum): 组合统计类型,应为
KALMAN、LINEAR、MAX、MEAN、MEDIAN、MIN、MOST_RECENTLY_UPDATED、RANGE或SUM之一。 -
sources (必选, list): 用作源的传感器列表。
-
process_std_dev (必选, 仅适用于
KALMAN类型, float): 测量值每秒变化的标准差(例如1/3600 = 0.000277,如果 温度通常每小时变化最多 1 开尔文)。此处较低的值 将对当前状态赋予高重要性,对 测量样本的变化响应缓慢。较高的值将更新更快,但也会 更嘈杂。 -
std_dev (可选, 仅适用于
KALMAN类型, Sensor): 一个传感器, 每次更新时发布当前状态的标准差。 -
来自 Sensor 的所有其他选项。