前言
既然是技术博客,那么这一期,我会开始做一系列的关于智能家居的玩法。
Home Assistant 也叫 HA + Zigbee协议(硬件之间的通信协议)
HACS 是 HA 的一个第三方插件,这个插件包括了许多开发者所贡献的插件,如果你是一名开发人员,那么你一定了解什么叫依赖库。所以可以理解为 HACS 就是 HA 的第三方插件依赖库,你可以在连找到需要对你有用的插件,而你不必重新开发。
为什么选择 Zigbee协议 ? 在对比过蓝牙mesh,wifi协议之后,我最终选择了zigbee协议,在于硬件之间的控制信号量传输本身就少,所以它自身的稳定性和分布式的特点,可以很好的支持到家庭中的各个角落,不会出现由于信号差导致失灵的情况,并且zigbee协议的特点,电量的消耗也是十分的低。
硬件
由于我现在没有树莓派或者nas等本地服务器,所以我以我的macbook pro来例。但是实际情况下的智能家居,我们需要有一台连接在本地局域网的服务,它需要要求的特点包括如下:
- 低功耗
- 便携,不占用家庭空间
- 支持更多的其他功能,例如用于nas,time machine,软路由(科学上学)等等(非必要,但是可以做在一起,所以机器的性能越出色越好)
由于是测试用的,所以我只买了2个 涂鸦 品牌的 e27 的智能灯泡 和 zigbee2mqtt 的 zigbee协议信号网关
** 需要去淘宝买 **
- zigbee信号网关
- 2个智能灯泡
zigbee信号网关


支持zigbee协议的智能灯泡




Home Assistant 安装
由于目前我在尝试阶段,并且是macbook,并且我更倾向于用docker安装各种服务,在容器化的时代,物理环境的隔离是十分重要的一个环节。
docker 安装
这里不介绍docker怎么安装了,如果是完全没编程的基础知识的话,折腾起来确实有点麻烦
创建数据存储目录,mkdir -p ~/ha;cd ~/ha,然后执行如下 docker命令 进行安装
| 1 | docker run -d \ | 
网上很多都说要用–net=host模式,但是其实没必要的,指定端口暴露就好
ha的默认端口就是8123
docker ps 查看容器情况
| 1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | 
可以看到我们的容器启动了。并且正常运行了。如果你还不放心,可以看一下日志也可以 docker log homeassistant
| 1 | s6-rc: info: service s6rc-oneshot-runner: starting | 
打开浏览器,在浏览器中输入 127.0.0.1:8123,就会看到如下界面

接下来,我们创建好账号密码,切勿忘记密码,好记性不如烂笔头,记得记录下来

这里我们,不怎么需要理会,正常填写即可。

这里默认的都是关闭的,也推荐关闭。然后点击下一步。

这里其实就可以选择你要连接的品牌了,但是这里我先跳过,后面再设置。直接点击 完成 即可

ok,现在我们可以看到了,完成之后,进到 HA系统 了,可以看到,内置了一个谷歌的TTS的功能,可以不用理会(这个是谷歌推出的一个文本转语音的机器学习的功能)。
HACS 安装
Home Assistant Community Store 为社区建设的HomeAssistant商店,可以安装第三方集成、主题、表盘以及自动化等。
GitHub 地址如下:

安装之前,让我们先把资源目录整理好.
| 1 | 存放等会要安装的 HACS文件 | 
打开浏览器,输入github 的地址 https://github.com/hacs/integration/releases ,在这里下载最新的hacs的releases包。

这里看见,我当前看到的目前的版本是去到了 1.32.1,所以本篇文章将以 1.32.1 为例子.

下载这个 zip 的压缩包,然后解压到 ~/ha/custom_components/hacs 目录
终端命令如下: unzip ~/Downloads/hacs.zip -d ~/ha/custom_components/hacs

解压后的情况如上图。

在这里点击开发者工具页面,然后点击检测配置。


接下来就可以看到检测通过,然后我们在同一个页面中找到重启按钮, 就可以重启我们的HA系统,让插件加载生效.

点击重启按钮之后,可以看到系统正在重启,目前失去了连接.

接着,我们手动刷新一下页面,用户登陆失效了,代表重启成功了,所以我们需要重新登陆到我们的HA系统,这个时候,需要输入我们记下来的账号密码
** 换另外一种 ** 方式去安装HACS也可以的,直接在docker容器内部安装,通过hacs脚本自动安装。
| 1 | docker exec -it homeassistant bash -c 'wget -q -O - https://install.hacs.xyz | bash -' | 

可以看到,现在安装完毕了,我需要重启然后让插件加载成功。

接下来,我们点击 配置 ,找到 设备与服务 项

点击 添加集成

搜索一下hacs,然后我们就能识别到的刚才安装的hacs了。

这里把全部选中,因为这个是第三方插件,所以HA需要确保你会排查问题。所以需要看你是否懂得这些,你只需要全选了即可.

这是设备注册。需要先拥有Github账号,没有的话注册一个并在浏览器上登录,github.com

然后打开上面的提供的连接: https://github.com/login/device, 输入提供的 设备码

点击 账号授权给 hacs 服务,即可。

回到 HA系统,会发现已经识别到了,所以完成安装了 HACS 。

homeassistant App
HA官方提供了APP,iOS和Android都有,可自行下载~
| 1 | ios: https://www.github.com/home-assistant/iOS | 
当然,也可以自行去各大应用商店下载,例如 appstore
温馨提示: App需要填入自己的HA地址,所以如果服务跑在家里的话,需要内网穿透或者公网才能在外面使用噢~
如果HA内网穿透,configuration.yaml需要加上下面内容,同时内网穿透服务器(如ngrok、frp等)的nginx需要开启websocket支持,否则会出现外网无法访问、能访问但是无法登录等问题。
HA配置文件configuration.yaml
| 1 | http: | 
nginx配置参考(用frp内网穿透)
| 1 | server { | 
最后附上同一个局域网下的访问效果图


