本帖最后由 你这泼猴! 于 2024-11-16 17:04 编辑
家里用了一些米家Mesh的筒灯,使用HA自动化通过Xiaomi Gateway3+多模2的方式始终没法实现同时的开和关,总是有个时间差,即便是在米家里给灯编组,在频繁开关的时候响应会特别慢,论坛里搜索了一下没有找到太好的办法,似乎米家灯组的开关状态是通过云更新的,导致延迟很大。今天研究了一下知道Xiaomi Gateway3跟多模2的通讯与通过MQTT的,那么就可以直接绕过Gatway3直接通过MQTT控制米家的灯组,通过MQTTX抓了一下开关灯的消息,用ESPhome直接发送,实测效果非常好,响应迅速,而且再HA挂掉的时候应该是依然可以控制灯。
在这里分享一下,抛砖引玉看看大佬们还有没有更优的方案。
我家的筒灯是通过 机械开关+SonoffMiniR4通断器( ESPHome)的方式控制的, 通断器设置成常闭,这样筒灯是一直供电的,设定一个不用的针脚为虚拟灯,ESPHome里设置读机械开关的状态来切换虚拟灯的状态,然后根据虚拟灯的状态发MQTT消息。 ESPhome配置的写法上还得请大佬们指点一下,怎么再精简一下
但是有个问题,就是打开MQTT之后,模块会广播很多状态,这个要怎么关掉呢,其实是用不上的。
substitutions:
device_name: light-aisle
friendly_name: Light_Aisle_Sonoff
Location: "Aisle"
static_ip: 192.168.9.224
light_group: "group.1857342344098631680" #灯组的id
packages:
device_base: !include sonoffminir4-template.yaml
# Enable Home Assistant API
api:
encryption:
key: "FcT0aNnFW+YcpQz/L9U+7NqLD/1kvALMztH8flPbzLw="
ota:
- platform: esphome
password: "86bc12805a19fe4544eef6e652bf7d5a"
mqtt:
broker: 192.168.9.15 #多模2的ip
port: 1883
switch:
- id: !extend isolate_mode
restore_mode: RESTORE_DEFAULT_ON
- id: !extend toggle_mode
restore_mode: RESTORE_DEFAULT_ON
light:
- id: !extend light_1
restore_mode: RESTORE_DEFAULT_ON
- id: !extend virtual_light
on_turn_on:
- mqtt.publish_json:
topic: "miio/command"
payload: |-
root["method"] = "set_properties";
root["params"][0]["did"] = "${light_group}";
root["params"][0]["siid"] = 2;
root["params"][0]["piid"] = 1;
root["params"][0]["value"] = true;
on_turn_off:
- mqtt.publish_json:
topic: "miio/command"
payload: |-
root["method"] = "set_properties";
root["params"][0]["did"] = "${light_group}";
root["params"][0]["siid"] = 2;
root["params"][0]["piid"] = 1;
root["params"][0]["value"] = false;
字数受限了, sonoffminir4-template.yaml 见一楼
|