使用node-red实现tp路由器mesh节点室内手机定位
前言:
家里使用的tp的易展mesh路由,一直想用它的mesh节点实现一下室内定位的效果。在论坛上看到一个demo,基于他的原本代码稍微调整后能实现需求。
所需额外组件:
home-assistant额外需要安装的组件
Node-RED Companion
node-red使用中额外需要安装的组件
node-red-contrib-loop
node-red-contrib-home-assistant-websocket
基本实现逻辑:
根据填写的ip、密码,请求stok,再用stok去获取当前的所有设备,以及所属的mesh路由器。根据当前设备所属的路由器,确定当前设备位置。如果设备一定时间没有新消息,则表示此设备以及离线。
原代码每次循环都会请求stok,故我将请求stok部分脱离出来,每20分钟请求一次,以减少向路由器的请求消耗。原代码用超时时间判断离网会由于路由器卡了导致返回慢,判断为离网,超时时间设置比较长。所以专门为离网写了个函数,可以更快的判断离网,不用再用超时时间判断离网了,超时时间可以设置长一些了。使用了一段时间效果很好。
自定义修改部分(已用中文备注,并举例,按需修改,其他地方勿动):
代码:
导入node-red即可使用
效果展示:
微调部分:
可以根据需要调慢或者调快刷新的速度,目前是0.5秒,以符合使用场景。stok的获取间隔(20分钟)也可以根据实际情况修改。
写在最后:
用mesh节点进行定位,精确度不是很高,但是能定位到一些区域。在某些场景下(如楼层、相隔较远的玄关客厅和室内部分分区)还是有一定的作用的。
相关资料:
https://bbs.hassbian.com/thread-17443-1-1.html
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
YikLiu
校验提示文案
白芝麻狐
校验提示文案
AlDa
校验提示文案
YikLiu
校验提示文案
AlDa
校验提示文案
白芝麻狐
校验提示文案