本帖最后由 lione95678 于 2019-5-8 20:46 编辑
我是在家里放了一个不用的安卓手机,安装微信后新申请一个微信号,然后当人在外面时通过给家里手机发送微信消息,来实现控制hass,之所以这么做,因为我是移动的宽带,没有公网ip,虽然用了蒲公英,但只有2个客户端,而且每次都要先用蒲公英的app来建立连接,、老婆闲麻烦。 论坛里有用mojo-weixin的,但是我的主号单位要用win客户端,用了以后网页版就掉线,而新申请的新号码又用不了网页版,所以只能放弃。 暂时不会用tasker来发送微信,所以只能先写一个小白对小白的收到微信内容后操作hass的教程。 流程是手机微信收到通知-通过tasker将发信人和内容用http post方式发送给node-red,node-red判断微信内容后操作。 这个网页的教程已经很好的教了我们如何使用tasker转发微信消息https://otichi.com/homeassistant-and-tasker-tts-incoming-weixin.html 现在开始小白对小白的教程:第一步:在tasker 的“配置文件”中,点右下角的“+”,选择“事件”-“界面”-“通知”,然后在“所有者程序”中选择“微信”,其他都可以不填,如下图:
第二步:在tasker中新建一个任务,在“任务编辑”中,点右下角“+”,选择“网络”-“http post”,1)在“服务器:端口”中输入”192.168.1.2:1880/tasker”,注意,前面是你的node-red的ip地址和端口,比如我的是192.168.1.2:1880,后面的“/tasker”你可以随便填,只要等会和你的node-red的http节点对应起来就可以。2)在“数据/文件”中输入{“wxtz”:%NTITLE”,”wxnr”:”%evtprm3”},注意,wxtz和wxnr你可以随便填,%NTITLE和%evtprm3就是你微信的发送人和内容的变量,不要改。3)在“内容类型”中填入“application/json”,我也不懂为什么要填。4)其他都不填,如下图:
Tasker到这里告一段落,下面是node-red的设置第三步:在node-red中,新建一个“http”节点,“请求方式”中选择“post”,勾选“接受文件上传”,在“url”中填写“/tasker”。主要,这里的“/tasker”就是刚才在tasker软件中的,如果你刚才不是用这个名称,在这里也相应调整。
做到这里,如果你在这个节点后面直接拖一个“debug”节点,直接部署后,如果正常,通过微信发送信息,就可以在node-red右侧的调试窗口看到发过来的信息了,如果你是按照上面照抄的,发送信息后,你就可以看到如下图,其中wxtz是发件人的昵称,wxnr是发给你的消息内容。
第四步:在node-red中用switch节点进行判断,对符合条件的微信分别给与不同的操作(应该可以“function”节点输入编辑函数来解决,可是我不会),我先建立了一个“switch”节点,在“属性”里选择“msg”,输入“payload.wxtz”,(这里的wxtz和你的tasker输入的对应起来,可以看到和上面图片中的一样)在下面的规则选择“==”,输入发送信息人的昵称,我输了2个人,这样只有这2个人发出的微信信息才会触发后续的操作,如下图:
后面再添加“switch”节点,对微信信息内容进行判断,我这里是“属性”输入“payload.wxnr”,下面选择的是包含,输入的是“灯”和“监控”,这样只要你的信息中含有这两个关键字,就会触发后面的操作。如下图:
后面我又增加若干“switch”节点,按照上图配置,只是关键字变成“卧室灯”、“走廊监控”什么的,再建立“switch”节点,输入“开”、“关”,你可以按照你自己的需要编辑相关“switch”节点,在最后的“switch”节点后面接上你需要的操作。这样的好处,比方说我要“打开卧室的灯”,你在微信里随便写什么,只要包括“灯”“卧室”“开”这三个关键字,都可以触发hass的开灯操作,比如输入“我要开卧室的灯”“把卧室灯打开”“开卧室灯”什么的都可以,如果你想语音控制,只要在发送微信的时候用语音输入法就可以。 暂时就到这里了,因为不会用tasker来发送微信,所以后面的用hass来发送微信信息我没办法写了,以后如果学到了就再次不谢吧。也请各位大侠们看看怎么用函数节点来省略一下switch,来个教程吧。
文中红色的地方我写错了,应该是wxtz和wxnr,图片和word文档是不对的,请注意。
收到微信操作hass.docx
(506.15 KB, 下载次数: 39)
|