找回密码
 立即注册

微信扫码登录

搜索
查看: 625|回复: 5

[经验分享] Home Assistant 电池传感器低电量自动监测与通知攻略

[复制链接]

233

主题

3508

回帖

1万

积分

元老级技术达人

积分
11785
金钱
8024
HASS币
100
发表于 2026-8-19 14:05:28 | 显示全部楼层 |阅读模式
本帖最后由 bugensui 于 2026-8-16 02:51 编辑

ha_battery_automation_scan_1786819613425.jpg

Home Assistant 电池传感器低电量自动监测与通知攻略,解决换电焦虑

随着全屋智能部署完成并投入使用一两年,许多小伙伴可能会发现一个让人头疼的问题:家里那几十个电池供电的传感器(如:门窗传感器、温湿度计、无线按钮、动静贴等)开始陆续“罢工”了。

这种“罢工”往往是悄无声息的。有时候你会发现自动化失效了,半天找不出原因,最后才发现原来是某个传感器没电了。我们不可能每天盯着上百个实体的电量看,这违背了“自动化”的初衷。尤其是像我家里,布置了 30 多个电池类传感器,涵盖了温湿度、门窗感应、无线开关、动静贴以及至关重要的漏水检测类。如果漏水传感器因为没电而停工,一旦发生漏水事故,后果简直不堪设想。

为了解决这个行业痛点,前几年我在逛 HA 社区时,偶然发现了一位名叫 sbyx 的大佬分享的一个低电量检测并通知的蓝图(Blueprint)。链接我先放在这里:https://gist.github.com/sbyx/1f6f434f0903b872b84c4302637d0890

这个蓝图我已经稳定使用了三四年,效果非常出色。今天我特意把这份好物整理并进行了汉化分享给大家,希望能帮大家彻底告别传感器换电焦虑。

1. 核心逻辑解析

这个蓝图的逻辑设计得非常精妙且实用:

  • 周期性检测:你可以设定一个固定的时间(比如每天早上 10 点),系统会自动扫描所有传感器。
  • 多维识别:它会自动筛选出带有 battery 属性的所有实体。
  • 自定义阈值:电量低于多少才报警?你可以自己定(我推荐设为 10% 或 20%)。
  • 智能排除:这是最赞的一点。有些接入 HA 的设备(比如手机、平板)每天都会充电,我们并不需要它们参与通知。蓝图支持排除特定的设备实体。
  • 多样化通知:你可以通过邮件、Home Assistant App 消息推送,甚至是持久化通知(Persistent Notification)来接收预警。

2. 完整 YAML 代码(汉化版)

为了方便国内玩家,我对原蓝图进行了汉化处理,使用起来更加直观友好。

QQ20260816-020225.jpg

blueprint:
  name: 所有电池传感器的低电量检测和通知
  description: 定期检测所有具有“电池”设备类别的传感器是否超过某个电池电量阈值,如果是,则执行操作。
  domain: automation
  input:
    threshold:
      name: 电池警告级别阈值
      description: 低于阈值的电池传感器被认为是低电池(以及值为“on”的二进制电池传感器)。
      default: 20
      selector:
        number:
          min: 5.0
          max: 100.0
          unit_of_measurement: '%'
          mode: slider
          step: 5.0
    time:
      name: 监测时间
      description: 测试在配置的时间运行
      default: '10:00:00'
      selector:
        time: {}
    day:
      name: 测试工作日
      description: '测试在配置的时间,每天(0)或给定的工作日(1:星期一…7:星期日)运行'
      default: 0
      selector:
        number:
          min: 0.0
          max: 7.0
          mode: slider
          step: 1.0
    exclude:
      name: 排除的传感器
      description: 将电池传感器(如智能手机)排除在检测之外。只支持实体,必须扩展设备!
      default:
        entity_id: []
      selector:
        target:
          entity:
          - device_class:
            - battery
    actions:
      name: 动作
      description: 要运行的通知或类似通知。{{sensors}}被替换为电池电量低的传感器名称。
      selector:
        action: {}
  source_url: https://gist.github.com/sbyx/1f6f434f0903b872b84c4302637d0890
variables:
  day: !input day
  threshold: !input threshold
  exclude: !input exclude
  sensors: "{% set result = namespace(sensors=[]) %} {% for state in states.sensor
    | selectattr('attributes.device_class', '==', 'battery') %}
  {% if 0 <= state.state
    | int(-1) < threshold | int and not state.entity_id in exclude.entity_id %}

       {% set result.sensors = result.sensors + [state.name ~ ' (' ~ state.state
    ~ ' %)'] %}
  {% endif %}
{% endfor %} {% for state in states.binary_sensor
    | selectattr('attributes.device_class', '==', 'battery') | selectattr('state',
    '==', 'on') %}
  {% if not state.entity_id in exclude.entity_id %}
    {% set
    result.sensors = result.sensors + [state.name] %}
  {% endif %}
{% endfor %}
    {{result.sensors|join(', ')}}"
trigger:
- platform: time
  at: !input time
condition:
- '{{ sensors != '''' and (day | int == 0 or day | int == now().isoweekday()) }}'
action:
- choose: []
  default: !input actions
mode: single

3. 如何在 Home Assistant 中使用?

导入并配置这个蓝图非常简单,只需以下几步:

  1. 保存文件:将上面的完整代码复制下来,保存为 battery.yaml
  2. 存放路径:通过 Samba、FTP 或 File Editor 插件,将该文件放入 HA 配置目录下的 blueprints/automation/sbyx/ 文件夹内(如果没有 sbyx 文件夹,手动新建一个即可,方便管理)。
  3. 生效配置:回到 HA 界面,点击“设置” -> “工具” ,点击“重载自动化”或者“重载所有 YAML 配置”。如果你不放心,直接重启 HA 也可以。
  4. 创建自动化:进入“设置” -> “自动化与场景” -> “蓝图”,你应该能看到“所有电池传感器的低电量检测和通知”这一项。
  5. 配置参数
    • 监测时间:我个人习惯设为每天早上,开启一天的元气满满(坏消息也早点知道)。
    • 排除实体:在这里选上你的手机、iPad 等不需要通知的设备。
    • 动作:这是最关键的一步。在“动作”里选择你的通知渠道(比如 notify.mobile_app_your_phone 或者邮件服务)。在通知内容中,可以使用 {{sensors}} 变量,它会自动替换为当前所有低电量的传感器名称。

4. 什么是 Home Assistant 蓝图(Blueprint)?

对于刚入坑的朋友,这里简单科普下什么是“蓝图”。

在传统的 HA 自动化中,我们需要编写复杂的 YAML 代码。而蓝图就像是一个“模版”。开发者写好了一套通用的自动化逻辑,普通用户只需要像填空题一样,把自己的实体名、触发时间、通知渠道填进去,就能实现极其复杂的功能。

蓝图极大地降低了 HA 的使用门槛,也让分享变得异常简单。通过这个蓝图,你不需要理解背后的模板语言(Jinja2)是如何筛选电池实体的,只需要会复制粘贴文件即可享受稳定、高效的低电量预警服务。

总结

智能家居的本质应该是提升幸福感,而不是增加我们的维护负担。通过这套低电量检测系统,你可以放心地让那几十个小传感器在角落里默默工作,只有在它们真正需要你的时候(没电前夕),才会通过手机告诉你。

希望这篇文章能帮你解决全屋智能的最后一块短板!

公众号:Home Assistant分享
回复

使用道具 举报

15

主题

364

回帖

1536

积分

金牌会员

积分
1536
金钱
1157
HASS币
10
发表于 2026-8-19 14:30:06 来自手机 | 显示全部楼层
非常需要!非常感谢!
回复

使用道具 举报

1

主题

36

回帖

330

积分

中级会员

积分
330
金钱
293
HASS币
0
发表于 2026-8-19 14:51:10 来自手机 | 显示全部楼层
hass7079 发表于 2026-8-19 14:30
非常需要!非常感谢!

这个好,Very Nice!
回复

使用道具 举报

1

主题

16

回帖

213

积分

中级会员

积分
213
金钱
196
HASS币
0
发表于 2026-8-19 15:16:41 | 显示全部楼层
太及时,一堆电池一个一个添加实体太麻烦了
回复

使用道具 举报

233

主题

3508

回帖

1万

积分

元老级技术达人

积分
11785
金钱
8024
HASS币
100
 楼主| 发表于 2026-8-19 15:21:17 | 显示全部楼层
d47 发表于 2026-8-19 15:16
太及时,一堆电池一个一个添加实体太麻烦了

是的。,排除不需要的设备即可,如手机,pad
公众号:Home Assistant分享
回复

使用道具 举报

0

主题

114

回帖

498

积分

中级会员

积分
498
金钱
384
HASS币
0
发表于 2026-8-19 15:51:44 | 显示全部楼层
非常好   感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )|网站地图

GMT+8, 2026-9-16 04:56 , Processed in 0.015381 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表