『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 8026|回复: 19

[新奇玩法] 华为小艺控制HA设备方法改进(借助node-red简化流程)

[复制链接]

3

主题

36

帖子

337

积分

论坛分享达人

积分
337
金钱
301
HASS币
0
发表于 2022-4-25 02:33:46 | 显示全部楼层 |阅读模式
本帖最后由 tent 于 2022-4-26 10:45 编辑

昨天发布"华为小艺控制HA设备(https://bbs.hassbian.com/thread-16199-1-1.html)"的帖子后,有网友提到设置流程太多了。我也是这样觉得,每个设备要在三个软件各设置两条命令,过于繁琐了。

于是我就考虑如何能够简化,主要思路分别希望在华为小艺、消息滤盒app、HA三个环节来简化成通用命令。
目前的效果是:消息滤盒与node-red设置一次即可,后面增加设备无需更改,华为智慧生活中的场景仍然是对于每个设备设置两条命令。减少了2/3的设置量

Node-red文件(用到node-red-contrib-home-assistant-websocket节点
flows.json (2.9 KB, 下载次数: 86)


具体思路与做法如下:
1. 首先,对"华为小艺"说的命令是否可以直接转化为通知消息,研究无果,在此环节暂无简化思路。X
2. 其次,对于消息滤盒app而言,每次发送webhook,除去用于触发自动化的webhook id外,还包括了很多信息,其中很重要的一点是包括了华为小艺发出的通知消息。
针对这一点,我讲华为小艺和消息滤盒app的设置改进如下:
(1)小艺设置与昨天的帖子一致,不过在下图设置中,发送消息通知中每条前面加了webhook字样,这样用于消息滤盒app设别是否发送webhook
          7D6EEA90-CE68-4317-9F3E-30AFD95C89EC.jpeg


(2)消息滤盒app不用设置很多条了,只需要设置如下一条就可以了
          上面两个分别输入"智慧生活"和"webhook"
           webhook的URL,改一下:http://[Home Assistant的ip地址]:[部署Home Assistant的端口号]/api/webhook/[webhook ID]
            其中webhook id不再是自己设定的,而是由下面一步中node-red中的设置获得。
            D7881029-821E-4E4B-8283-90112F4414E2.jpeg
3. HA中如果通过webhook发送过来的是类似"打开灯"这样的命令,那么借助HA的conversation执行即可,也就不用针对每个设备单独设置自动化了。这里我借助Node-red进行了设置,具体如下:
35323CB3-D416-4886-B233-4938859C39D6.jpeg
下图中红圈中的就是上面蓝字中要用的webhook id。
05231869-6090-4F64-8861-6648B1DF5A4B.jpeg

对payload进行修改,提取出转发的消息
B32349C6-BB51-4490-B9F3-1B3BDEF69762.jpeg

交给conversation执行命令。
7A72C592-D878-4F0C-A1EB-1786AA8EDDD2.jpeg


评分

参与人数 3金钱 +22 收起 理由
aiolos2008 + 1 感谢楼主分享!
yn_Lin + 1 感谢楼主分享!
+ 20 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

6

主题

105

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
1067
HASS币
10
发表于 2022-4-25 05:25:43 来自手机 | 显示全部楼层
不是方法不好,只是环节越少越好,哈哈
回复

使用道具 举报

1

主题

158

帖子

872

积分

高级会员

Rank: 4

积分
872
金钱
714
HASS币
0
发表于 2022-4-25 06:36:08 来自手机 | 显示全部楼层
把流程图发出来吧,我们直接导入,我们懒。嘿嘿。
回复

使用道具 举报

3

主题

36

帖子

337

积分

论坛分享达人

积分
337
金钱
301
HASS币
0
 楼主| 发表于 2022-4-25 09:53:39 | 显示全部楼层
wy_112206 发表于 2022-4-25 06:36
把流程图发出来吧,我们直接导入,我们懒。嘿嘿。

已经上传
回复

使用道具 举报

3

主题

36

帖子

337

积分

论坛分享达人

积分
337
金钱
301
HASS币
0
 楼主| 发表于 2022-4-26 10:44:49 | 显示全部楼层

node-red-contrib-home-assistant-websocket
回复

使用道具 举报

6

主题

76

帖子

726

积分

论坛DIY达人

积分
726
金钱
645
HASS币
20
发表于 2022-11-29 12:23:58 | 显示全部楼层
非常不错的思路,相见恨晚。
回复

使用道具 举报

1

主题

9

帖子

160

积分

注册会员

Rank: 2

积分
160
金钱
151
HASS币
0
发表于 2023-1-24 23:08:40 | 显示全部楼层
conversation是什么?
回复

使用道具 举报

0

主题

13

帖子

122

积分

注册会员

Rank: 2

积分
122
金钱
109
HASS币
0
发表于 2023-11-7 21:15:29 | 显示全部楼层
[img]file:///C:/Users/pc-jiangzhui/Desktop/canvas.png能不能帮忙看一下 按照图示 报错 这个怎么解决
回复

使用道具 举报

0

主题

13

帖子

122

积分

注册会员

Rank: 2

积分
122
金钱
109
HASS币
0
发表于 2023-11-7 21:16:34 | 显示全部楼层
2023/11/7 21:04:03节点: debug 3msg.payload : Object
{ title: "关闭书房灯-推送消息", text: "webhook关闭书房灯", app: "com.huawei.smarthome" }
2023/11/7 21:04:03节点: debug 2msg.payload : undefined
undefined
2023/11/7 21:04:03111sent data : msg :
{ domain: "conversation", service: "process" }
2023/11/7 21:04:03111sent data : msg :
{ domain: "conversation", service: "process" }
2023/11/7 21:04:03节点: 111
msg : string[60]
"Call-service error. required key not provided @ data['text']"
回复

使用道具 举报

0

主题

13

帖子

122

积分

注册会员

Rank: 2

积分
122
金钱
109
HASS币
0
发表于 2023-11-8 09:12:29 | 显示全部楼层

                               
登录/注册后可看大图

修改了一下,有数据但功能还是不能实现 这个要怎么弄啊,方便帮忙看一下
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 20:01 , Processed in 0.060118 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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