跳转到内容

模拟阈值二进制传感器

analog_threshold 二进制传感器平台允许你将模拟值 (即 sensor 读数) 转换为布尔值,以阈值为参考。 当信号高于或等于阈值时,二进制传感器为 true (此行为可以通过添加 invert 过滤器来更改)。

它提供了一个迟滞选项,通过根据当前状态使用不同的限制来降低在源信号有噪声时的不稳定性。 此外,还可以使用 延迟过滤器 仅在 新状态保持最低时间后才发生变化。

如果在组件创建时源传感器尚未初始化,则二进制传感器的初始 状态将为 false;如果之后出现一些读数错误,那些 无效的源更新将被忽略,二进制传感器将保持其最后状态。

例如,下面的配置会将电流传感器的读数 转换为二进制传感器。

# 示例配置条目
binary_sensor:
- platform: analog_threshold
name: "Garage Door Opening"
sensor_id: motor_current_sensor
threshold: 0.5

或者,你可以使用带有 condition 选项的 Template 二进制传感器 实现类似功能:

# 使用模板二进制传感器的替代方案
binary_sensor:
- platform: template
name: "Engine Running"
condition:
sensor.in_range:
id: motor_current_sensor
above: 0.5

NOTE

模板方法不支持迟滞。如果你需要 不同的上限和下限阈值来降低噪声,请使用 analog_threshold。

  • sensor_id(必选,ID):源传感器的 ID。

  • threshold(必选,float,templatable 或 mapping):配置比较的参考。接受一个简写 浮点数,将同时用作上/下阈值,或者使用一个映射来为每个阈值定义不同的值(以 使用迟滞)。

    • upper(必选,float,templatable):上阈值,需要越过它才能从 low 过渡到 high 状态。
    • lower(必选,float,templatable):下阈值,需要越过它才能从 high 过渡到 low 状态。
  • 来自 Binary Sensor 的所有其他选项。