本帖最后由 airhog 于 2020-2-3 17:46 编辑
前言
自从有了绿米Aqara S2的指纹锁,一直希望能解决这个问题,让HA读取到锁的状态,信息只有流动起来才有价值。
有人用门磁的方式获取上锁的状态,有人用tasker读取米家app通知来获取。
我自己曾经用过的方式有:用智能插座开关状态反馈,用网关灯的开关状态反馈,用网关的警戒状态反馈。但是获取到的状态有限,不够好玩。
也曾想过分析网关的通讯来破译,这个难度有点高,我只有一个锁还在使用中,试验的条件和时间都受限。
最近找到了一个简单易用的方法,测试验证ok,可以获取到锁的各种状态,如上锁、反锁、指定的指纹开锁等。
小白也可以,不用写代码,不用tasker,不用mqtt,不用对接其它服务器。
你只需要有一个能接入HA的yeelight灯即可。
思路
米家APP: 锁>场景>打开彩灯(一种颜色代表一个状态,当然用亮度也是可以的)
Hass:获取yeelight实体属性rgb_color,一种颜色定义一个binary_sensor。
实施
信息发送
1.米家app添加yeelight灯
2.yeelight app开启局域网控制
用米家相同的账户和密码登入yeelight app,可以看到在米家app中添加的yeelight灯已经在这里了。
然后点击进入每个灯(如果你有多个灯的话),再点击右下角的“三角形”按钮。看到右下角的“选择局域网控制”,点击开启即可。
3.自定义彩灯
回到米家APP,选择yeelight灯的颜色并收藏备用,需要几个就收藏几个。
4.添加新智能
例:如果/S2反锁/执行/开启并设置灯光(选择收藏中你自定义的彩灯),需要几个状态就添加几个智能。
等待发送的状态信息已准备好,接下来是接收部分。
信息接收
Hass中yeelight无需设置,已自动添加,直接可用。新增sensor,显示接收的信息,新增binary_sensor反馈状态。
sensor:
- platform: template
sensors:
rgb:
friendly_name: 'light color'
value_template: "{{ state_attr('light.yeelight_strip2_12345','rgb_color') }}"
binary_sensor:
- platform: template
sensors:
red:
friendly_name: "上锁"
value_template: "{{ state_attr('light.yeelight_strip2_12345','rgb_color') == (255, 0, 0) }}"
green:
friendly_name: "反锁"
value_template: "{{ state_attr('light.yeelight_strip2_12345','rgb_color') == (0, 255, 0) }}"
blue:
friendly_name: "指纹1开锁"
value_template: "{{ state_attr('light.yeelight_strip2_12345','rgb_color') == (0, 0, 255) }}"
yellow:
friendly_name: "指纹2开锁"
value_template: "{{ state_attr('light.yeelight_strip2_12345','rgb_color') == (255,128,0) }}"
......
最后
你们不会是真的用灯吧,建议买一个yeelight的低压灯带(安全),拔下灯带部分,静悄悄的用控制器就好。
有了这个“无所不能”的传感器,就有了“无限可能”的玩法。
敬请关注下一篇:顺带的收获,小白的福音,极其简单的天猫精灵接入HA。
Tips:
1.闲鱼买的yeelight灯带控制板不错,找一根手机充电线,剪断焊接到正负极即可使用(电压5v),其它rgb脚不用管。
2.注意,到手的控制板,固件没升级前HA自动添加,升级后则只能手动加入了,都需要开启局域网控制 。
致敬:
https://www.home-assistant.io/integrations/yeelight/
|