Statistics
Statistics 集成会监视源传感器的状态,并提供其近期历史的聚合统计特征。这个集成在自动化中很有用,例如:在浴室热水澡后空气湿度恢复平稳时触发操作,或在一天内冲泡咖啡次数过多时触发提醒。
统计传感器可以使用数值型传感器或 binary_sensor 作为输入。配置中必须包含要考虑的时间范围和/或最近状态变化的数量。详情请参阅下面的配置部分。
如果 recorder 集成正在运行,平台启动时会从数据库中读取历史传感器数据,因此在重启后可立即获得数据。如果 recorder 集成未运行,传感器开始输出数据可能需要一些时间,因为某些统计特征的计算需要不止一个源传感器值。
Statistics 集成不同于 Long-term statistics。
:::
统计传感器内部有一个缓冲区,用于存储各种函数(例如 average_step)计算所需的值。每当有新值加入缓冲区,或有元素被移除时,传感器都会更新。这既可能由源传感器状态变化触发(实际数值可能变化,也可能不变),也可能由旧值过期触发(在指定了 max_age 的情况下)。这意味着,当数值长期不变时,缓冲区中可能会保存一连串相同的值。
当使用基于时间的缓冲区(即提供 max_age)时,建议缓冲区中至少包含足够数量、并覆盖整个时间范围的值。对于变化不大的传感器,可以通过使用带时间触发器的模板传感器作为输入来实现这一点。如果输入值没有覆盖大部分时间范围,计算结果可能会出乎意料。
例如:如果想知道某个开关在过去 5 分钟内是否被使用过,可以使用 count_on。但如果读取不够频繁,缓冲区里只有一个“Off”值(哪怕它是一秒前才出现的),结果也会是 0,即便该传感器在过去五分钟的大部分时间里其实都是“On”。
:::note 配置 此集成可通过 UI 配置。前往 设置 > 设备与服务 添加。
有关这些配置选项的更多信息,请参阅 YAML 配置。
特征
配置参数 state_characteristic 可使用以下统计特征。请特别注意正确设置 sampling_size 和/或 max_age,因为大多数特征都会直接受到这些设置影响。
数值型源传感器
对于 sensor 类型的源传感器,支持以下 state_characteristic:
二进制源传感器
对于 binary_sensor 类型的源传感器,支持以下 state_characteristic:
属性
统计传感器会提供以下属性,以反映其内部状态。
YAML 配置
可通过在 configuration.yaml 中添加类似以下示例的内容来定义统计传感器:
关于 max_age 和 sampling_size 的重要说明
如果同时给出 max_age 和 sampling_size,则被考虑的样本是 max_age 时间窗口内、但最多只取最近的 sampling_size 个样本。若使用较长的 max_age,请务必将 sampling_size 设置得足够大(例如:如果 max_age 为 1 小时,而某传感器每分钟产生一个测量值,则 sampling_size 至少应为 60,才能使用该时间范围内的全部样本)。
如果只设置了 sampling_size,则没有时间限制。如果只设置了 max_age,则被考虑的样本数量不受限制。

