本文记录了Home Assistant安装过程和踩坑解决方案。
介绍
Home Assistant是一个使用Python编写的智能控制软件,它几乎可以和任何智能设备互动,可以自定义触发源与动作来把各个智能设备连接起来。
准备
- 树莓派一个
- SD卡一张:用于给树莓派安装系统
- 读卡器:用于给SD卡写入镜像
- FAT32格式的U盘一个:用于给Home Assistant配置网络和SSH
- 作者操作环境:Windows
安装系统
- 进入 https://www.home-assistant.io/hassio/installation/ 选择相应的镜像,这里我选择了
Raspberry Pi 3 Model B and B+ 32bit
,官方推荐使用32位系统这里就使用了32位的系统。 - 进入 https://www.balena.io/etcher 下载软件
- 读卡器接入电脑,打开步骤2的软件,选择步骤一的解压的镜像,并选择SD卡写入镜像,等待完成。
- 如果你的网络环境无法快速的下载上面的软件,可以使用 https://download.filecloud.fun/ 提供的离线下载服务
配置
一般情况下此时应该直接把SD卡接入树莓派启动了,但是由于一些特殊原因,我们还需要一些配置后才可以使用。配置项有三个部分:时间配置、ssh配置和WiFi配置。作者建议最好都进行配置,这都是作者踩过的坑。
时间配置
刚才我们只是把系统镜像写入了SD卡,Home Assistant会在系统启动时进行下载,但是由于链接使用了https,https协议会携带时间认证,由于初始时时间的时区不正确,导致https证书认证错误导致无法下载。此时需要正确的设置时间。
打开FAT32格式的u盘,首先把U盘的名字改成CONFIG
,然后在U盘根目录创建timesyncd.conf
文件,在文件中写入:
[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
SSH配置
正常情况下Home Assistant有ssh插件可以使用,但是那是对普通使用者来说的,我们需要系统的级的SSH连接,为什么称之为系统级后面会说到。
SSH配置需要自己创建一对密钥,用于登录树莓派。如果你的电脑已经存在密钥对请忽略以下创建的过程。是否存在请检查用户目录下的.ssh
文件夹中是否存在 id_rsa
和id_rsa.pub
,如果存在则代表你不需要创建过程。
本次步骤的原因是为了设置git的代理,因为GitHub在中国速度有问题,所以使用代理才能把Home Assistant的插件给clone下来。
新建密钥对
输入ssh-keygen -t rsa -C "your_email@example.com"
开始新建,一路回车就ok。
最后打开FAT32格式的U盘,复制你的id_rsa.pub
公钥文件到U盘根目录,并且改名为authorized_keys
WIFI配置
树莓派可以使用网线与WiFi连接网络,这里作者使用WIFI进行连接,如果你需要使用网线那么那么可以跳过本步骤,再接下来的步骤中使用网线连接树莓派。
打开FAT32格式的U盘,创建network
文件夹,在此文件夹中创建my-network
文件,在文件中写入(修改WiFi名称和密码):
[connection]
id=Curtion
uuid=62073a21-301e-432c-8d65-2848bcf032b1
type=802-11-wireless
[802-11-wireless]
mode=infrastructure
ssid=WIFI名称
[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=WIFI密码
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
启动系统
此时系统已经配置完毕,此时给树莓派插上SD卡,插上U盘并通电启动。可以进入路由器查看树莓派网络是否连接成功,如果没有连接那么需要回到上一步重新配置网络。
此时使用浏览器进入 hassio.local:8123
web管理界面,如果无法进入请等待20分钟左右重试。
PS:注意,hassio.local:8123
需要你的设备支持mDNS才能访问,大多数现代设备都支持,但是也有例外。如果你的设备不支持的话你可能需要在路由器中找到树莓派的ip地址,使用IP:8123
访问web管理。
配置Add-on
正常情况下你已经使用web界面进行了初始化并且登录了,那么还有最后一个问题:Add-on的仓库地址在GitHub上,由于国内网络的原因我一直没有正确clone下来。
此时就需要配置git代理,如果你的Home Assistant Add-on正常那么就不需要操作。
此前我们已经把公钥配置到了树莓派上,下面是配置过程:
- 使用
ssh root@hassio.local -p 22222
登录树莓派,按照说明输入login登录 - 使用
docker ps
查看正常运行容器服务,找到NAMES
为hassos_supervisor
的容器,记录它的CONTAINER ID
- 输入
docker exec -it 容器ID bash
进入容器内部 在容器中输入配置代理:(把127.0.0.1设置为你的代理服务器ip并且允许局域网连接)
git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy 'socks5://127.0.0.1:1080'
- 浏览器进入
hassio.local:8123
左侧选择Hass.io
在Add-on store
标签中添加一个仓库,地址为:https://github.com/hassio-addons/repository
点击ADD
结语
到这里Home Assistant已经正常运行了,如何使用作者也在研究之中,后续计划是使用ESP8266来连接Home Assistant,通过Home Assistant来控制一些自定义的硬件设备。
2 评论