路由器:小米BE6500 Pro
米家集成:官方ha_xiaomi_home
之前在github上吐槽过小米路由器的上报数据不会自己更新的问题,
https://github.com/XiaoMi/ha_xiaomi_home/issues/1138
得到的回答是:
xiaomi_home启动后,会主动获取一次所有设备的全部可读属性,之后只有设备上报属性值改变,云端才会向xiaomi_home推送属性变化。这个路由器不主动上报下载、上传速度的属性值,故xiaomi_home接收不到属性变化。
目前已知所有路由器均没有按照 MIoT-Spec-V2 标准实现属性上报功能。 经过这几天的观察,发现路由器会上报设备接入和设备断开的信息。
对应的实体是
event.xiaomi_cn_XXXX_device_connect_e_2_1
event.xiaomi_cn_XXXX_device_disconnect_e_2_2
在这俩个实体下,有设备的mac地址信息,那么,就可以用这个数据来进行device_tracker,判断家庭成员是否在家。
自动化代码:
1.离家代码:
alias: 标记不在家 #自动化标题,自己写,能分辨就行
description: ""
triggers:
- entity_id:
- event.xiaomi_cn_XXXXX_device_disconnect_e_2_2 #查你自己的设备断开的实体id
trigger: state
conditions:
- condition: template
value_template: >-
{{ '【需要跟踪的设备的MAC,不知道的去路由器里查】' in state_attr('event.xiaomi_cn_XXXXX_device_disconnect_e_2_2','接入设备列表')}}
actions:
- action: device_tracker.see
metadata: {}
data:
mac: 【MAC,同上】
host_name: 【自定义设备名】
location_name: not_home
mode: single
2.回家代码
alias: 标记在家 #同1
description: ""
triggers:
- entity_id:
- event.xiaomi_cn_XXXXX_device_connect_e_2_1 #同1
trigger: state
conditions:
- condition: template
value_template: >-
{{ '【MAC,同1】' in state_attr('event.xiaomi_cn_XXXXX_device_connect_e_2_1','接入设备列表')}}
actions:
- action: device_tracker.see
metadata: {}
data:
mac: 【MAC,同1】
host_name: 【自定义设备名,同1】
location_name: home
mode: single
自动化运行成功,再到设置-人员里,把对应的人员关联上代码里的自定义设备名即可。
|