制作一个homeassistant开关
在智能家居时代,如果所有的设备都用手机来控制,也是挺麻烦的一件事情,毕竟最常用的控制方式是实体开关。因为实体开关来的更加的直接,直观,比如,当我们进入到一个房间,想控制一个设备,会自动的去按某个开关,而不是很麻烦的掏出手机,点亮屏幕,打开app,在繁多的设备中寻找到这个设备,最后再打开这个设备,一点也不优雅。
实体按键是最不假思索的一种方式,甚至可以盲操作。我遇到一个比较尴尬的境地是,开车的时候给别人回信息,恰逢人多车多的时候,需要聚精会神的看路而不是看手机,这时我只是想简单的回复“是的”、“好的”等简单的文字,都回复不了。想想手机键盘是按键的时代,打字真是飞起,并且是不用看键盘的。举这个例子我只是想说明,实体按键的优势。当然大势不可趋!
我们用平常的实体开关控制和我们用手机控制常常发生冲突。当我们用实体开关关了一个智能灯,意味着给这个智能灯断了电,手机上便会显示这个灯离线,便无法在用手机控制,这就会显得很尴尬。有木有这样一个实体开关消除这个尴尬呢?答案是有!下面我们来DIY这样的一个开关。我们可以叫它HA开关或者homeassistant开关。
这个homeassistant开关和传统的开关不一样,它是通过联动的方式来控制,有点像小米的无线开关。
有了这样一个开关,想控制哪个设备,只需要在homeassistant上联动哪个设备即可,非常的灵活。homeassistant上也给实时的反馈。所以一个设备的控制方式,多了一个非常直观灵活的方法。可远程,开关的位置随便定。
少啰嗦,先上图。
材料:
1,ESP-01S
2,esp-01s面包板
3,门禁开关
4,杜邦线若干
5,3.3v电源模块
如何连线下面请看图。
照着上图连好,用胶枪固定到底盒里。下面是烧录esp-01/01s,用esphome烧录。下面是烧录的核心代码。如果不会用esphome,可以花些时间学学这种方式。因为学会了esphome,想使用其他的传感器来接入homeassistant,真是易如反掌!
esphome:name: wireless_switch platform: ESP8266board: esp01_1mwifi:ssid: "just_do_it" #更换成你的wifi名字password: "116116116" #更换成你的wifi密码manual_ip: #下面是固定一个IP地址,。static_ip: 192.168.2.188 #这里替换成你家中的ip地址 gateway: 192.168.2.1subnet: 255.255.255.0ap: #当esp01/01s未联网时它会产生这个热点,如果电脑连这个热点,会打开让esp01/01s连别的wifi的向导。ssid: "Wireless Switch Fallback Hotspot"password: "5lwGhePiknHt"captive_portal:logger:api: #这个是连homeassistant需要的密码。password: "1"ota: #这个是远程升级更新程序的密码password: "1"web_server: #可以网页登进去。port: 80switch: #下面就是核心的东西- platform: gpiopin: GPIO0name: "wireless_switch"#icon: mid:restartid: relay2 binary_sensor:- platform: gpiopin: GPIO2name: "press_switch"device_class: openingon_press: #当按下开关的时候要执行的动作,这里是触发开关then:- switch.toggle: relay2
烧录完之后,连线,通电,从homeassistant中便可以自动发现这个设备。
接入到homeassistant后,有个开关设备。我们就可以通过这个开关设备来联动其他的设备。比如联动一个灯泡。
联动也比较简单,就是做四个自动化
1,当这个开关打开时,打开灯泡。
2,当这个开关关闭时,关闭灯泡。
3,当灯泡关闭时,关闭开关。
4,当灯泡开启时,打开开关。
做完这四个自动化,灯泡的状态和开关的状态就一致了。
如何做自动化可以参考我之前的文章,什么是Home Assistant(二)?里面有如何做自动化的。
我的淘宝店铺上有卖相关的传感器,也有成品。店铺名字,尚恩树莓派电子。我也有公众号尚恩树莓派,欢迎关注。