前言
发挥树莓派的剩余价值,看到知乎有大神利用siri语音控制小米生态的智能家居,他就是利用HA实现的,HA打通不同品牌智能硬件的生态壁垒,而且还是开源,而我刚好手里有一块闲置的树莓派(斜眼笑),这不得支棱起来。但是家里没有什么智能家居设备,比较可惜,但我们先尽可能创造需求。这个过程也是加深了对linux系统的理解,提高了文档、formus以及错误信息的阅读能力。
安装HomeAssistant
相关方案
https://www.home-assistant.io/installation/
树莓派4B/Raspberry Pi4B 安装Home Assistant Core以及HACS商店
实践
我基本是参照第一个链接,也就是官方文档操作的,由于树莓派还有别的用途,我选择安装core版本,安装过程基本是安装python软件包,因为HA是用python开发的。遇到两个问题:
- 执行
pip3 install homeassistant==2023.1.2
时,构建cryptography时报错:
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
版本问题,后来我看blog提到使用2.8版本,pip install cryptography==2.8
,亲测可行。
hass
启动后,mobile_app
模块无法设置,这会导致手机无法连接,提示:
未加载mobile_app组件。请将其添加到您的配置中,然后重新启动 Home Assistant 后重试。
错误代码: Shared.HomeAssistantAPI.APIError 6
阅读报错,是导入numpy的c语言拓展时出错,
解决方案就在红色框url中,选择Raspberry Pi,仔细看Original error就是缺少一些依赖项,对应上了。
original error was: libcblas.so.3: cannot open shared object file: No such fileor directory
解决办法:安装依赖sudo apt-get install libatlas-base-dev
效果
网页版,局域网内浏览器输入192.168.××.××:8123
访问:
安装HACS
目的
HA本身对各个品牌硬件生态支持是有限的,你不能要求人家用爱发那么多电,开源的目的是构建社区生态,吸引更多人、企业加入进来,HACS,Home Assistant Community Store,就是社区的产物。
相关方案
https://hacs.xyz/docs/setup/download
树莓派4B/Raspberry Pi4B 安装Home Assistant Core以及HACS商店
实践
源在github上,涉及到××,不过我的树莓派还没有相关配置,只能尽可能增加访问成功率,修改/etc/hosts
文件,绑定域名和ip,在文件最后添加:
185.199.108.154 github.githubassets.com
140.82.112.21 central.github.com
185.199.108.133 desktop.githubusercontent.com
185.199.108.153 assets-cdn.github.com
185.199.108.133 camo.githubusercontent.com
185.199.108.133 github.map.fastly.net
199.232.69.194 github.global.ssl.fastly.net
140.82.113.4 gist.github.com
185.199.108.153 github.io
140.82.114.3 github.com
140.82.113.6 api.github.com
185.199.108.133 raw.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 favicons.githubusercontent.com
185.199.108.133 avatars5.githubusercontent.com
185.199.108.133 avatars4.githubusercontent.com
185.199.108.133 avatars3.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133 avatars1.githubusercontent.com
185.199.108.133 avatars0.githubusercontent.com
185.199.108.133 avatars.githubusercontent.com
140.82.112.10 codeload.github.com
52.217.161.249 github-cloud.s3.amazonaws.com
52.217.229.65 github-com.s3.amazonaws.com
52.217.96.28 github-production-release-asset-2e65be.s3.amazonaws.com
52.217.77.92 github-production-user-asset-6210df.s3.amazonaws.com
52.217.172.9 github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.108.153 githubstatus.com
64.71.144.202 github.community
185.199.108.133 media.githubusercontent.com
注意要先进入到ha工作目录下,否则会提示无法找到ha,执行wget -O - https://get.hacs.xyz | bash -
,这是从https://get.hacs.xyz
获取一个script到bash执行(管道命令),可能会有点慢,我多试了几次成功了。
INFO:Trying to find the correct dir
ERROR:Could not find the directory for HomeAssistant
这里有个小插曲一开始我执行的是sudo wget -O - https://get.hacs.xyz | sudo bash -
,结果它提示我输入密码,当时我很疑惑,命名创建用户时并没有设置密码呀(创建命令sudo useradd -rm homeassistant -G dialout,gpio,i2c
,不太了解linux的用户机制)。最后在formus上找到一个方法,将homeassistant用户加入到/etc/sudoers
文件中,直接为它赋予sudo权限并取消pw,在文件最后添加homeassistant ALL=(ALL) NOPASSWD:ALL
.