前言
既然是技术博客,那么这一期,我会开始做一系列的关于智能家居的玩法。
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 { |
最后附上同一个局域网下的访问效果图