使用场景
-
由于论坛小爱只能在一个nodered中登录,并且米家绑定第三方账号也只能绑定一次。所以,如果遇到需要使用多个nodered来控制多个家庭的设备,就需要用到nodered之间的通讯。
-
如果想使用Tasker(安卓手机自动化的软件)来和家庭设备做一些联动,那么,就需要Tasker和noderd之间进行通讯,传递指令。
-
也可以自制网页控制端来进行通讯,从而对noderd发送指令。
需要准备
-
公网IP,域名做好DDNS(IPV4,IPV6均可)
-
映射端口(路由器NAT,应该都会吧,不赘述了)
-
nodered自带节点(mqtt服务也可以远程通讯,只是入门难一点)
使用HTTP节点
1.在noderd-1中创建http服务器
-
在nodered-2中使用
在noderd-1中会接收到下图内容
-
也可以在浏览器中输入
在noderd-1中会接收到下图内容
-
Tasker中
总结一下,所有联网的设备都可以使用http像你的nodered中的http服务器发送请求,通过收到的不同的参数,去执行不同的内容。如图是使用小爱同学去控制办公室中的电脑开机。
使用websocket
websocket和http的区别是,http你请求了才连接,请求完了就结束了。websocket可以建立长连接,直接接收所有的参数。
-
在noderd-1中创建websocket服务器
-
在nodered-2中使用websocket out节点,使用msg.payload发送任意内容
-
nodered-1中收到如下图所示
这样两个nodered就可以通讯了。 -
当然也可以自制websocket客户端去连接和发送消息,请自由发挥。
小结一下
个人比较推荐使用websocket,可以省去打参数的麻烦,只要将需要传递的内容放进msg.payload中就行了。
这只是一个基础的教程,简单使用http和websocket服务,说的内容并不专业,希望能给大家一些启发,如有错误,请大佬及时指正。