d380025303 发表于 2023-6-27 16:00:47

利用ikuai实时检测设备在线情况&HA操作设备连/断网

本帖最后由 d380025303 于 2023-7-11 12:29 编辑

背景
用node-red集成ikuai并在HA展示路由信息的帖子挺多了,但是这些信息说实话对我没啥用处
我希望能看到某些具体设备的流量(看哪个小崽子在下载东西), 在线时长, 甚至我能在HA实时看到非法设备的连接(比如有人破解了你的wifi....), 我能通过HA能控制具体设备网络访问(手动进ikuai禁用太麻烦)


所以这个流程出来了


支持特性


[*]支持实时展示路由在线设备清单
[*]支持实时展示路由下线设备清单
[*]支持展示具体设备的累计上行/下载/在线时长等信息
[*]支持HA控制设备的网络访问

flows_20230628.json

[*]nodered储存终端信息 -- global.get('dx_mqtt_sensor')
[*]支持手动在nodered删除终端设备信息


nodered储存终端设备信息主要解决的是nodered挂了...挂之前上线的设备, 没法展示下线了

效果图







配置方法

前置条件:
    node-red (node-red需要有cryptojs依赖)
    HA已安装MQTT

tips: 鉴于很多人不知道怎么安装cryptojs npm依赖, 我修改了一下逻辑, 改为引入node-red-contrib-crypto-js-plus来解决MD5加密逻辑, 请使用 flows_node-red-contrib-crypto-js-plus.json 的json


[*]引入flows.json, 修改"IKuai配置" 节点: username: 用户名 password: 密码 ikuai_url: ikuai地址
[*]修改 "HomeAssistant配置" 节点: homeAssistantUrl: HA的地址, 如http://192.168.100.28:8123 authorization: HA的Token, 如 Bearer eyJhbGciOiJXXXXXXXXXXXXXXXX(需要注意我直接取的global的值)
[*]配置mqtt-borker使其能连接到HA MQTT
[*]完事了,如果成功运行,MQTT下会自动出现对应实体




关于卡片

由于要看到实时设备在线情况,所以我的逻辑是将ikuai的终端列表自动转换为HA的MQTT实体
但是有个很大的bug,HA所有的卡片都不支持动态实体展现,除了markdown...
所以目前只能用markdown实时展现网络设备上/下线情况

markdown内容
type: markdown
content: >
## 路由已连接设备清单


| 设备名称 | 在线时长 |

| :------ | ------: |

{% for state in states.sensor %}{% if
state.entity_id.startswith('sensor.sensor_') %}{% if state.state == 'online'
%}| {{ state.attributes.friendly_name }} | {{ state.attributes.uptime }} |

{% endif %}{% endif %}{% endfor %}



## 路由下线设备清单


{% for state in states.sensor %}{% if
state.entity_id.startswith('sensor.sensor_') %}{% if state.state != 'online'
%} <font color="#cccccc">{{ state.attributes.friendly_name }} </font>{% endif
%}{% endif %}{% endfor %}


如果有更好的方法,欢迎回帖告知

其它卡片怎么配我就不具体帖了, 正常配置即可

关于控制设备网络访问



用的ikuai 行为管控 > MAC访问控制 实现
所以如果MQTT没有出现swith类型控制网络的实体, 在ikuai MAC访问控制增加数据即可

tips: 本帖不需要手动配置MQTT的实体

**** Hidden Message *****










sorrypqa 发表于 2023-6-27 17:06:25

流量统计非常不错,爱快重启也能保留?

Ari 发表于 2023-6-27 19:46:31

本帖最后由 Ari 于 2023-6-27 19:57 编辑

顶顶顶,这个好,感谢 马上弄个,第一步登录就出现TypeError: Cannot read properties of undefined

dscao 发表于 2023-6-27 23:22:03

感谢分享,对于终端设备比较少时应该挺好的。
不过对于有三四十个甚至更多的终端设备用户,查看终端设备信息感觉还是登录爱快后台比较好一点。


发现有人蹭网我之前用这个改一下通知到钉钉或微信挺好用的: https://bbs.hassbian.com/thread-2894-1-1.html
这个要配合这种ikuai接入方法:https://bbs.hassbian.com/thread-1622-1-1.html

d380025303 发表于 2023-6-28 09:22:57

sorrypqa 发表于 2023-6-27 17:06
流量统计非常不错,爱快重启也能保留?

这保留不了的, 纯读取的ikuai的数据, 它没了自然就没了

d380025303 发表于 2023-6-28 09:24:03

Ari 发表于 2023-6-27 19:46
顶顶顶,这个好,感谢 马上弄个,第一步登录就出现TypeError: Cannot read properties of undefined ...

哪个节点错误了说明一下呗 这个报错实在没法定位

d380025303 发表于 2023-6-28 09:31:52

dscao 发表于 2023-6-27 23:22
感谢分享,对于终端设备比较少时应该挺好的。
不过对于有三四十个甚至更多的终端设备用户,查看终端设备信 ...

感谢
看了下帖子, 确实挺方便的, 但是这个方式是否能支持可视化, 纯后台跑有点像黑盒子, 有点不安心哈哈哈

jole 发表于 2023-6-28 12:26:35

ikuai模拟登陆显示这个"TypeError: Cannot read properties of undefined (reading 'MD5')"
什么问题呢?

d380025303 发表于 2023-6-28 13:17:33

jole 发表于 2023-6-28 12:26
ikuai模拟登陆显示这个"TypeError: Cannot read properties of undefined (reading 'MD5')"
什么问题呢? ...

node-red需要有cryptojs依赖

sorrypqa 发表于 2023-6-28 13:32:38

d380025303 发表于 2023-6-28 09:22
这保留不了的, 纯读取的ikuai的数据, 它没了自然就没了

要是像能源一样,能保留和累计就完美了
页: [1] 2 3 4 5 6
查看完整版本: 利用ikuai实时检测设备在线情况&HA操作设备连/断网