Apple的HomeKit默认是没办法加入如小米智能家居的产品的,为了能够统一管理以及Siri控制,折腾了好久,查了好多资料,终于发现了一种方式。
也就是Apple的Home Kit连接Home Bridge,Home Bridge连接Home Assistant,以这种方式实现对非Apple的智能家居产品的控制。
什么是Home Assistant?(HA)
Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。
具体介绍可以参考https://www.home-assistant.io/
什么是Home Bridge?(HB)
简单来说,就是把苹果的家庭也就是Homekit不支持的设备,模拟成Homekit支持的设备,并加入到Homekit中,从而可以愉快的调戏Siri。Homebridge就是可以理解成穷人的法拉利,实现了对非苹果的智能产品的连接和控制。而且Homebridge可以通过插件把目前一些智能平台如Domoticz、Home Assistant也桥接进来,从而获取更多的可玩性。
以上为baidu所得。
以下是基于群晖Dock的形式安装HA和HB的具体步骤。
Home Assistant的安装
1. 进入群晖的docker,打开注册表,搜索home,会出现Home Assistant镜像,双击下载“homeassistant/home-assistant”。
2. 下载完后,到“映像”里,双击刚才下载的HA,会弹出创建容器的界面。点击“高级设置”。
勾选上“启用自动重新启动”
点击“卷”,然后“添加文件夹”,并在docker目录下面新建一个homeassistant文件夹
装载路径填“/config”。
网络那,勾选”使用与Docker Host”相同的网络
环境那,添加两个变量。value=Asia/Shanghai和variable=TZ,点确定。
最后确认界面,点击“应用”。
容器自动创建并启用了。
3. configuration.yaml的配置。浪费了我很多时间,这里yaml对大小写,空格都很敏感。yaml里的空格一定要用空格键,不能使用tab等进行缩进和对奇。
下面是典型的 configuration.yaml 文件。
homeassistant:
# 后面的文字是注释,被系统忽略。
# 智能家居系统的名字,显示在主界面顶部。
name: Home
# 下面填入纬度和经度,计算太阳升起和设定时间所需位置,越精确越好。
latitude: 30.169813
longitude: 114.192472
# 海拔高度用于修正天气参数和日出日落时间参数 (默认单位是:米)。
elevation: 37
# 度量衡单位制式(metric)是公制,(imperial)是英制。
unit_system: metric
# 时区,从这里选择你的:http://en.wikipedia.org/wiki/List_of_tz_database_time_zones,一般不需要修改。
time_zone: Asia/Shanghai
#下面这个区域,用于自定义设备属性,后期文章会有涉及。
customize: !include customize.yaml
#在网页界面的首页显示简介(那一大段英文),不想看到的话,请在前面加上#号。
introduction:
# 是否使用默认的“首页”
frontend:
http:
# 给系统网页的登录加上一个密码,先去掉下面这行的#号,然后把PASSWORD改成你想要的密码。
api_password: raspberry
# 升级提示,当 HomeAssitant 有新版本发布的时候,“日出日落”图标会变成(Updater)字样
updater:
# 系统自动发现新的设备
discovery:
# 启动浏览器的语音命令
conversation:
# 在系统数据库中保存“历史数据”
history:
# 在logbook查看所有的“已发生事项”
logbook:
# 设置
config:
# 太阳“跟踪器”,也就是“日出日落时间”
sun:
# 小米智能网关
xiaomi——aqara:
gateways:
– discovery_retry: 10
mac: xxxxxx
key: xxxxxx
host:
sensor: !include sensors.yaml
group: !include groups.yaml
automation: !include automations.yaml
其中小米网关的MAC地址和密码,通过安装“米家”app获得。在找到米家里的网关后,点击“关于”,在中间空白处(iOS)/中间下方(Android),连续点击不要停,会出来网关的具体信息。具体可以百度之。注意要点:
– mac地址要去掉冒号,并小写。
– 局域网通信要开启,并且点击确定后密码才生效。
可以把你更新后的yaml文件通过群晖的file station应用上传更新覆盖homeassistant文件夹内的同名文件。
然后,请重启HA这个容器,以便生效。如下图,点击“重新启动”
4. 如果一切顺利的话, 打开 http://本地群晖地址:8123 就可以看到HA的界面了。比如群晖地址是192.168.2.5,则打开192.168.2.5:8123。
没任何配置和美化的话, 大概的界面是如下那种。
这个时候,其实就可以通过HA进行智能家居的控制和自动化了,而不需要米家APP了,也可以集成各种不同品牌的相关产品,比如sony的电视机,比如特斯拉的相关信息。
Home Bridge的安装
1. HB的安装和HA类似,先在注册表搜索“home”,找到marcoraddatz/homebridge后,下载。下载完成后,双击,创建容器。一样的,点击“高级设置”。
2. 一样选择自动重启
3. 一样,创建一个文件夹,装载路径是“/root/.homebridge” ,注意有个.
4. 网络一样,使用宿主的网络。
5. 确定后,应用。
6. 这时候,这个容器,肯定是出错的。需要在之前创建的homebridge文件夹内,创建2个配置文件。config.json和install.sh文件。
下面是典型的 install.sh 文件。
#!/bin/bash
apt-get install libavahi-compat-libdnssd-dev
npm install -g homebridge-homeassistant
npm install -g homebridge-aqara
下面是典型的 config.json文件。
{
“bridge”: {
“name”: “Homebridge”,
“username”: “02:42:XX:XX:XX:XX”, /* 群晖 docker 0 的 HWaddr */
“port”: 51826,
“pin”: “123-45-678”
},
“platforms”: [{
“platform”: “HomeAssistant”,
“name”: “HomeAssistant”,
“host”: “http://192.168.2.xxx:8123”, /*HA的访问地址*/
“password”: “”, /*HA如果有密码,就输入 */
“supported_types”: [“binary_sensor”, “climate”, “cover”, “fan”, “garage_door”, “device_tracker”, “input_boolean”, “light”, “lock”, “media_player”, “rollershutter”, “sensor”, “scene”, “switch”],
“default_visibility”: “visible”,
“verify_ssl”: false
}, {
“platform”: “AqaraPlatform”,
“sid”: [“xxxxx”], /*小米网关的mac地址,和HA的yaml一样,小写,并且没有冒号*/
“password”: [“xxxx”] /*小米网关的密码,和HA的yaml一样 */
}
]
}
把这两个文件,上传到homebridge文件夹内,然后重启HB这个容器。
7. HB容器运行后,双击容器,找到”终端机“,过一会,应该会看到类似下面的二维码。打开iOS的“家庭”,扫面这个二维码就行。或者手动输入之前config里写的12345678也可以手动添加。
8. 这样,通过iOS的HomeKit就可以连接到家里所有接入HA的智能设备了。比如下图中,小米的那些温感,动作感应,智能插座等都可以联动了。