找回密码
 立即注册
查看: 128|回复: 1

[求助] HomeAssistant中的通知怎么监听?

[复制链接]

2

主题

5

回帖

82

积分

注册会员

积分
82
金钱
75
HASS币
0
发表于 2025-4-2 10:36:28 | 显示全部楼层 |阅读模式
微信截图_20250402103342.png
如图,请问怎么监听上面的通知?怎么在node-red里把通知作为自动化的触发条件?
回复

使用道具 举报

18

主题

581

回帖

4512

积分

元老级技术达人

积分
4512
金钱
3878
HASS币
182
发表于 2025-4-2 11:40:30 | 显示全部楼层
本帖最后由 louis_lee 于 2025-4-2 11:41 编辑

直接问Deepseek就可以解决:

在 Home Assistant 中,通知是通过调用 `notify` 服务发送的(例如 `notify.mobile_app`)。要监听通知并将其作为 Node-RED 自动化触发条件,需通过 **事件监听** 实现。以下是具体步骤:

---

一、监听通知的原理

当调用 notify 服务时,Home Assistant 会触发一个 call_service 事件。通过捕获此事件并筛选 notify 服务调用,即可监听通知。


二、Node-RED 实现步骤

1. 添加 Home Assistant 事件监听节点

  • 拖入一个 events: all 节点(用于监听所有事件)。
  • 双击节点,设置 Event Typecall_service(监听服务调用事件)。

2. 过滤 notify 服务调用

  • 在事件监听节点后添加 switch 节点,设置过滤条件:
     // 条件1:筛选服务调用为 notify.xxx
     [{
       "property": "payload.event.service",
       "op": "startsWith",
       "value": "notify."
     }]

3. 细化通知来源(可选)

如果需要监听特定通知来源(如手机应用),进一步过滤 service 名称:

   // 示例:监听发送到手机的通知
   [{
     "property": "payload.event.service",
     "op": "eq",
     "value": "notify.mobile_app" // 替换为你的通知服务名称
   }]

4. 提取通知内容(可选)

  • 添加 function 节点 提取通知标题和消息:
     const data = msg.payload.event.service_data;
     msg.payload = {
       title: data.title || "无标题",
       message: data.message || "无内容"
     };
     return msg;

5. 触发自动化逻辑

将处理后的消息连接到后续节点(如延时、HTTP请求等),完成自动化流程。


三、验证通知服务名称

  1. 在 Home Assistant 的 开发者工具 > 服务 中,查找你的通知服务名称。
    • 例如:notify.mobile_app_iphonenotify.telegram
  2. 发送测试通知,观察事件数据:
    • 在 Node-RED 的调试面板中查看 msg.payload 结构。

四、完整流程示例

[events: all] --> [switch 节点(过滤 notify 服务)] --> [function 节点(提取内容)] --> [自动化动作]

五、注意事项

  • 权限问题:确保 Node-RED 的 Home Assistant 配置拥有读取事件的权限。
  • 事件延迟:高频事件可能导致延迟,建议过滤条件尽量精确。
  • 自定义通知内容:如需根据特定关键词触发,可在 switch 节点中检查 data.message

通过以上步骤,即可在 Node-RED 中捕获 Home Assistant 的通知事件并驱动自动化!


回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-1 06:30 , Processed in 0.101773 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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