[智能控制]一、Home Assistant 树莓派安装

本文记录了Home Assistant安装过程和踩坑解决方案。

介绍

Home Assistant是一个使用Python编写的智能控制软件,它几乎可以和任何智能设备互动,可以自定义触发源与动作来把各个智能设备连接起来。

准备

  • 树莓派一个
  • SD卡一张:用于给树莓派安装系统
  • 读卡器:用于给SD卡写入镜像
  • FAT32格式的U盘一个:用于给Home Assistant配置网络和SSH
  • 作者操作环境:Windows

安装系统

  1. 进入 https://www.home-assistant.io/hassio/installation/ 选择相应的镜像,这里我选择了Raspberry Pi 3 Model B and B+ 32bit,官方推荐使用32位系统这里就使用了32位的系统。
  2. 进入 https://www.balena.io/etcher 下载软件
  3. 读卡器接入电脑,打开步骤2的软件,选择步骤一的解压的镜像,并选择SD卡写入镜像,等待完成。
  4. 如果你的网络环境无法快速的下载上面的软件,可以使用 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_rsaid_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查看正常运行容器服务,找到 NAMEShassos_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 评论

  1. 姜辰 2019年11月27日 回复
    弱弱的问一下,树莓派这个。。。难玩吗?
    1. Curtion [博主] 2019年11月27日 回复
      回复 姜辰: 它不是难不难的问题,它是那种...真的很简单的那种。 就是很容易吃灰, 我都吃灰了好久了,刚刚才拿出来..