组合多个传感器的状态
combination 传感器平台允许您将多个传感器的状态组合为一个。要使用此传感器,请指定组合类型并添加您的源传感器。
unit_of_measurement、device_class、entity_category、icon 和 accuracy_decimals 属性默认从第一个传感器继承。state_class 明确不继承,因为对于多种组合类型,当使用多个传感器时,total_increasing 状态仍可能减少。
源传感器状态可以通过多种方式组合:
KALMAN滤波器:此类型将一个或多个传感器滤波为一个,并降低误差。如果使用单个传感器作为数据源,它的作用类似于 sensor-filter-exponential_moving_average 过滤器。使用多个传感器时,它会根据各自的标准差来组合它们的值。
# 示例配置条目sensor: - platform: combination type: kalman name: "温度" 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组合:此类型将每个源传感器乘以配置的系数后求和。
# 示例配置条目sensor: - platform: combination type: linear name: "平衡功率" sources: - source: total_power coefficient: 1.0 - source: circuit_1_power coefficient: -1.0MAXIMUM、MEAN、MEDIAN、MINIMUM、MOST_RECENTLY_UPDATED、RANGE、SUM组合:这些类型在所有源传感器状态之间计算指定的组合值。
# 示例配置条目sensor: - platform: combination type: median name: "中位数温度" sources: - source: temperature_sensor_1 - source: temperature_sensor_2 - source: temperature_sensor_3-
type (必需, 枚举): 组合统计类型,应为
KALMAN、LINEAR、MAXIMUM、MEAN、MEDIAN、MINIMUM、MOST_RECENTLY_UPDATED、RANGE或SUM之一。 -
sources (必需, 列表): 用作源的传感器列表。
-
process_std_dev (必需, 仅用于
KALMAN类型, 浮点数): 测量值每秒变化的标准差(例如,如果温度通常每小时最多变化 1 开尔文,则1/3600 = 0.000277)。此处的低值将对当前状态给予高度重视,并对测量样本的变化反应缓慢。高值会更快更新,但也会更嘈杂。 -
std_dev (可选, 仅用于
KALMAN类型, Sensor): 每次更新时发布状态当前标准差的传感器。 -
来自 Sensor 的所有其他选项。