Home Assistant:我用Ping+Node-RED实现了设备上下线智能提醒
为什么你需要关注设备状态?
今天给大家分享一个我最近在Home Assistant中折腾的实用自动化——设备在线状态监控与通知系统。
相信很多人都有这样的需求:
🖥️ 电脑开机了,想知道什么时候可以远程连接
传统的做法是轮询或手动检查,但今天我要教大家一个优雅的解决方案——基于Ping (ICMP) 实体的状态变化触发通知!

通过 UI 配置
打开集成页面
登录 Home Assistant 网页界面
点击左侧 「设置」(Settings)
点击 「设备与服务」(Devices & Services)
点击右下角 「添加集成」 按钮
第一个就是,Home Assistant自带插件。
🛠️ 方案架构
Home Assistant
+ Ping (ICMP) 集成 - 生成设备在线状态实体
Node-RED
- 可视化自动化编排
自定义通知函数
- 推送至手表/手机/小爱同学
监控目标
本次演示监控的设备IP:192.168.1.95(以下简称"实体95")
这是一台电脑设备,通过Ping插件接入HA后,HA会定期ping该IP,并根据响应状态自动更新实体状态:
✅ 已连接 (connected) - 设备在线
❌ 已断开 (disconnected) - 设备离线
📐 Node-RED流程设计

上图是整个自动化的核心流程,设计思路非常清晰:
使用 server-state-changed 节点监听实体95的状态变化:
从"已断开" → “已连接”
:设备上线
从"已连接" → “已断开”
:设备下线
为了避免设备频繁掉线重连导致通知轰炸,我加入了每日上限保护:
使用 flow 或 global 变量记录当日通知次数
每次触发时检查计数,超过5次则不再通知
凌晨自动重置计数器
调用自己的的通知函数,支持多种推送渠道:
📲 推送到手表(本文演示)
📱 推送到手机(企业微信/Telegram/Bark等)
🔊 让小爱同学语音播报(“主人,电脑开机了!”)
🎯 实战演示
场景1:设备上线通知
当我开启电脑时,Ping插件检测到192.168.1.95从"已断开"变为"已连接"…如图所示

Node-RED立即捕获到状态变化,触发通知流程,日志清晰显示:
几秒钟后,我的手表震动了…

📲 通知内容示例:
🟢 设备上线提醒 设备:192.168.1.95 (电脑) 状态:已连接 时间:2026-05-25 16:27:15
这种感觉太爽了!人在外面,家里电脑一开机就知道,随时可以远程桌面连接!
场景2:设备下线通知
当我关闭电脑时,实体95从"已连接"变为"已断开"…

Node-RED同样精准捕获,触发下线通知。
📲 通知内容示例:
🔴 设备离线提醒 设备:192.168.1.95 (电脑) 状态:已断开 在线时长:3小时27分钟 时间:2026-05-25 19:54:02
这个方案的妙处在于通用性极强!
🏠 适用设备
家里任何支持Ping的设备都能接入:
电脑、笔记本、NAS
任何有IP地址的IoT设备
除了推送到手表/手机,你还可以:
🔊 让小爱同学播报:“主人,您的电脑已开机,可以远程连接了”
🎯 高级玩法
结合 全屋场景:电脑开机 → 自动开灯 + 空调调温
可以结合我之前做的【HA电脑WOL开机插件】一起使用,这样远程开机也能得到反馈。
🎬 结语
这个自动化看起来简单,但实际用处非常大!特别是:
✅ 远程办公党:知道家里电脑什么时候开机
如果你也在玩Home Assistant,强烈建议试试这个方案!低成本、高实用性、可玩性极强!
📝 欢迎在评论区分享你的玩法!
🔧 需要Node-RED流程图JSON的伙伴,留言告诉我!
