本文是群晖NAS安装教程,但是如果你对docker比较了解的话,也是可以在任何环境中安装的,文中都有docker容器的对应卷、端口、环境变量等挂载截图。
Home Assistant:是一款基于 Python 的智能家居开源系统,支持接入众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。其实最大的优势是集中化管理,比如小米,飞利浦等等这些智能化的产品你需要在他们的APP上使用并进行控制,而有了hass你就可以摆脱那些APP集中控制他们,并且相互关联实现自动化。还有就是有些模块是没有APP的 但是那些模块可以通过某种通讯协议来实现与hass对接 最终进行控制和自动化编程。
HomeBridge:是一个插件,主要作用是可以让homekit识别到Home Assistant接入的设备相当于一个桥的作用,homekit就是苹果的智能平台,可以用siri语音控制智能设备,因为homebridge的开发者是原来homekit开发团队的成员,所以逆向了homekit的协议,可以让不是homekit的设备与苹果接入,从而达到使用siri去控制智能设备的目的。
MQTT:其实就是一种用做消息的通讯协议,而hass是内置这种协议的,MQTT其实是一种本地的服务器,也可以理解成服务端,它与hass关联,可以发送和接收消息,也就是命令或者状态信息。为什么mqtt要与hass关联呢?不是对所有设备都能进行控制,因为有些厂商是不支持hass的接入,但是这些设备如果支持mqtt或者其他传输协议的话,我们就能通过这个传输协议来进行接入最终实现控制及自动化的编程。市场中有很多模块是通过MQTT这种传输协议来实现控制的,你hass里面配置了这些模块,但是你没有办法控制它,这就是MQTT扮演的角色作用。
Node-RED:这个功能强大,但是也可以说单一,因为我们最多用到的就是自动化,它的好处是可以把一些不同品牌的设备进行逻辑性的控制。比如说你有一个小米的门窗感应器,你家里面有一个飞利浦的智能台灯,你可以在RED里面设置开门就可以自动打开你的台灯。每个品牌的设备在hass里面都是有一个ID,而red就是把这些ID相互关联起来利用起来。这个如果没有hass跟RED的想换关联,单独一家一家的app是实现不了这种场景自动化的。
下载镜像homeassistant/home-assistant:latest 版本(文件2G,你可以去喝杯茶)
镜像下载完成后,下载文件 homeassistant.syno.json
https://github.com/xzxiaoshan/files/raw/master/homeassistant.syno.json
在群晖FileStation中创建文件夹docker/homeassistant,然后把 homeassistant.syno.json 文件上传到这个文件夹中,如下图所示:
如下图所示,在docker的“容器”中导入配置创建容器:
选中刚刚创建的容器,点击编辑,检查一下各项配置正常后,就可以启动容器了。
截图如下:
纠正一下,图中应该是 TZ=Asia/Shanghai,既左边填TZ右边填Asia/Shanghai就可以了,没有value和variable
容器启动后(稍等2分钟,给容器一个初始化时间)初始化完成后的docker/homeassistant文件夹内容如下图:
然后用浏览器访问 http://IP:8123 就可以看到界面了。
至此,我们还需要设置一下api的密码,为HomeBridge提供支持(如果不设置你将可能会迎来一个巨坑,照做即可)
修改文件 docker/homeassistant/configuration.yaml,设置api的密码,如下图:
保存文件,重启homeassistant容器即可。
此时你再次访问 http://IP:8123 会看到Legacy API Password的登录方式,密码就是图上设置的密码,这个是用来给HomeBridge连接HomeAssistant使用。
注意:本教程对应的docker镜像虽然是下载的latest,但是实际上当时的版本是 0.88.2
,在 docker/homeassistant
目录的 .HA_VERSION
中可以看到版本号。不排除新的版本使用本教程安装会出现一些问题。
为了对接homekit,我们需要搭建homebridge 和 homebridge-homeassistant的插件。
我们需要先准备三个文件安装文件 install.sh、package.json和config.json
下载下面的2个文件,解压
https://github.com/xzxiaoshan/files/raw/master/homebridge.zip
https://github.com/xzxiaoshan/files/raw/master/homebridge.syno.json
然后在群晖中创建docker/homebridge/ 文件夹,并将这4个文件放入其中,如下图:
下面截图看一下3个安装文件的内容:
现在获取mac地址并配置到config.json 文件中,下面提供2种获取mac的方法:
1、使用ssh登录群晖命令行,然后使用命令 sudo ifconfig |grep docker0|grep HWaddr 获取HWaddr地址,如图:
2、容器选中homeassistant》详情》终端机》如下图:
把我们获取的mac地址,修改到docker/homebridge/config.json的username中,注意mac需要使用英文大写。
下载镜像marciraddatz/homebridge:latest 版本(文件1G)
如下图所示,在docker的“容器”中导入配置创建容器:
选中刚刚创建的容器,点击编辑,检查一下各项配置正常后,就可以启动容器了。
截图如下:
然后启动容器,容器启动后(稍等2分钟,给容器一个初始化时间)初始化完成后的docker/homebridge文件夹内容如下图:
启动容器后,选中容器》详情》终端机,能看到终端机在持续更新安装插件,耐心等待片刻,看到二维码图片输出,说明安装OK,并且连接HomeAssistant服务成功,如下图:
良好的容器启动和停止习惯为:
启动:先启动HomeAssistant再启动HomeBridge
停止:先停止HomeBridge再停止HomeAssistant
因为MQTT的这个版本,有个非常蛋疼的端口坑,所以本文采用直接导入容器的方式安装
镜像下载完成后,下载文件 emqttd.json
https://github.com/xzxiaoshan/files/raw/master/emqttd.json
然后把 emqttd.json 文件上传到群晖的文件夹中,如下图所示操作:
图上的命令:sudo ln -s -f /etc/localtime /volume1/docker/emqttd/localtime
如下图所示,在docker的“容器”中导入配置创建容器:
选中刚刚创建的容器,点击编辑,检查一下(卷和端口)配置正常后,就可以启动容器了。
截图如下:
容器启动后然后用浏览器访问 http://IP:18083 就可以看到界面了。
默认账号密码:admin/public
至此安装结束,本文不讲述如何更详细的应用。
附注
本文几个镜像下载的是latest版本,但是也是对应具体的版本的,如果你未来看到这个文章并且出现了问题,不排除有可能因为版本导致。下面给出对应几个docker镜像的具体版本,你可以尝试用对应的版本镜像:
HomeAssistant:0.88.2
HomeBridge:4.4
MQTT:v2.3.11
Node-RED:v8(8.15.1)
[email protected]
2019-04-03