你好,Home Assitant

作为一个::geek1,尤其是搬到了新的小屋之后,简单的温湿度传感器是满足不了想象中智能家居的样子的,更何况使用了一段时间的DHT11和SR501传感器后有一些弊端:

  • DHT11温湿度精度不太够,数据只是INT型

  • SR501一直会误触,尽管没有人走动,但还是每一段时间就会触发,虽然已经降低了灵敏度

  • 传感器依旧是有线连接,在屋子里因为布线被房东罚了260元 (气!

  • HomeBridge进程一直会掉,尽管使用了pm2进程守护但不尽如意

所以看到小米有品元旦搞活动后,还是去买了小米网关和一大堆传感器,丰富了HomeKit。

HomeKit

啊…真香!

Home Assistant

Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

相比较于HomeBridge,Home Assistant的扩展性可以说是非常高了,HomeBridge连接到小米网关后不能获取网关的光线传感器数据,而Home Assistant却可以,并且「Home Assistant 当中各类智能家居设备以组件(Components)的形式,通过配置 configuration.yaml 文件接入」。并且几乎所有的设备都可以接入到Home Assistant,并且内置HomeBridge组件!

然后看到文档后就立即把卡给格式化换成了Home Assistant 🤭。

Home Assistant的官方文档有如何安装Home Assistant的方法,如果像我一样偷懒一些,也有已经烧录好的Respberry Pi的系统:mossbian

之后访问localhost:8123就可以进入到前端的页面了,炒鸡简单。

组件

  1. 小米网关

Home Assistant初始化后会自动搜索局域网内的设备,并显示在lovelace中。但是,需要正确配置网关的Mac和Key才可以正确连接:

1
2
3
4
5
6
7
# Aquqra
xiaomi_aqara:
discovery_retry: 5
gateways:
- mac: *** (小写 不需要:)
key: ***
host: '192.168.1.42'

如何获取网关的Mac和Key,可以参考少数派的文章:

之后就会自动连接到温湿度传感器、人体传感器、门窗传感器、无线开关、智能插座等。并且后面接入网关的设备也会自动连接到Home Assistant,可以说是很方便了。

  1. Device Tracer

Device Tracer组件可以追踪局域网每个设备的信息,包括是否在线、Mac地址等,主要的作用还是判断设备是否在家(home | not_home)从而完成自动化等一些列的操作。

一开始使用的是「Xiaomi Router」这个组件,但是一段时间之后路由器就会变的炒鸡慢,然后就断网了。后来发现只要使用了这个组件一段时间后就会有这种情况,所以就改成了「NMAP」组件:

1
2
3
4
5
6
7
# Device tracker
device_tracker:
- platform: nmap_tracker
hosts: 192.168.1.2-254
home_interval: 10
exclude:
- 192.168.1.11

exclude字段排除了192.168.1.11这个IP(Respberry Pi:哦吼~我自己追踪我自己。

  1. Recorder

每次使用一段时间后发现经常连不上SSH,HomeBrigde也经常失联,一开始怀疑路由器的问题,重启路由器后也是一就连不上SSH。

后来看到1.2G的DB,才想起来所有的操作和状态都被存在了数据库里,小小的Respberry Pi哪里可以承受的住…

于是只保留了一部分组件的状态,并且3天清除一次记录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Recorder
recorder:
purge_keep_days: 3
db_url: sqlite:////home/homeassistant/.homeassistant/home-assistant_v2
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun
include:
domains:
- sensor
- switch
- light
- media_player
- alarm_control_panel
- binary_sensor
- group

自动化

比起米家APP的自动化,Home Assistant因为可以接入更多的非米家设备所以可以执行的自动化类别更多一些,目前已经基本不使用米家的自动化来操作设备了。

所有的自动化配置都在automations.yaml文件里。

其他的组件官网都有更详细的说明,然后Home Assistant就搞好了!(🎉

lovelance面板

灯 & 空调

屋子里的灯是传统的灯具,并且是三控开关(三个开关控制一盏灯),大概是这样:

三控开关电路图

改装灯具成本太大了,所以选择了Aqara墙壁开关,因为是三控只能选择更贵一些的单火版2。(钱包在哭

由于是三控,其中窗边的两个开关关上后会影响墙壁开关的通电状态,解决方式也很粗暴,直接把单刀双掷的两个分支线合并在一起也就不会再有不通电的情况了。

配合自动化,每天晚上下班后回到家门窗感应器被打开后,自动打开灯的感觉简直太爽了。

然后开始考虑如何才能把空调接入到Home Assistant,这样每天早上定时开启,每天下班前预约开启,回到家也是暖和的。

考虑到有了网关,所以再买一个空调伴侣就太不划算了,所以控制空调使用了博联的RM-Mini3,79一个,比169的空调伴侣便宜多了,并且可以接入Home Assistant。

没错,就是这个垃圾桶Mini版,和  的垃圾桶一模一样:

broadlink

然后在configuration.yaml配置一下组件信息:

1
2
3
4
5
6
7
- platform: broadlink
host: 192.168.31.87
mac: '34:EA:34:43:92:6A'
switches:
air_conditioner:
command_on: ''
command_off: ''

其中,command_on和command_off需要使用Services学习遥控器的指令,只需要调用switch.broadlink_learn_command_*服务再按下遥控器的按键后,States工具栏里就出现了刚才的红外码,最后复制到configuration.yaml里就👌了。

配合放在家中的iPad,只要在快下班的时候抬起手腕告诉Siri说打开空调,空调就可以打开啦:

设备通讯图

虽然有个2s左右的延迟,可是想到需要那么多设备👆联动也就可以忽略了。

热水器和电风扇等机械开关的,就交给智能插座就好,插上就能用哈哈哈哈,并且还带电量统计。

电量统计

JSBox小部件

Home Assistant服务同时提供了一套Resuful API,配合JSBox可以很方便的自定义一个小部件在锁屏状态下直接查看:

jsbox小部件

运行一段时间后,基本不会出现断联的情况,可以说是进程稳定多了。

最后

有了网关,各类传感器就像乐高积木一样,可以组合出各种各样的玩法,基本上家中大部分的开关都被集中到了Home Assistant,炒鸡方便!emmmm现在看到一个灯泡就想着如何才能搞成自动化,哈哈哈哈哈。

还有,热水器和空调可以提前开的结果就是:上个月用了270度电。(逃


  1. 1.CSS中,:: 代表伪类 (Pseudo-classes)。
  2. 2.单火版不需要零线,有无零线都可以使用;零线版需要接零线才能使用。

 加载Disqus评论