前言

笔者最近准备使用吃灰已及的树莓派,通过Home Assistant搭建一套智能家居系统。由于HomeAssistant更新的非常快,现有的教程或多或少都有一些问题,我在做的时候也遇到了不少坑,在此做一个记录,同时希望给有需要的人一点小小的帮助。本人能力有限,如有疏漏之处,敬请指教。

一、树莓派环境配置

1.系统安装

首先在树莓派官网下载系统镜像 这里我选择的是Raspberry Pi OS with desktop
在这里插入图片描述
使用balenaEtcher 下载地址,烧录到TF卡
在这里插入图片描述

2.设置WIFI密码,开启ssh

创建文件wpa_supplicant.conf,复制到TF卡 boot分区内,内容如下:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的WIFI名称"
psk="你的WIFI密码"
key_mgmt=WPA-PSK
priority=1
}	

创建空文件ssh,复制到TF卡boot分区内

3.启动树莓派

插入TF卡,并给树莓派上电,通过ssh远程连接树莓派,

默认用户名:pi
默认密码:raspberry

4.更新系统

更新软件源
sudo apt-get update

更新系统软件(可选)
sudo apt-get upgrade 

5.安装vim

sudo apt-get install vim

6.修改系统时间

sudo dpkg-reconfigure tzdata

通过方向键和Enter选择Asia
在这里插入图片描述
选择Shanghai
在这里插入图片描述
使用date命令查看时间
在这里插入图片描述

二、安装依赖软件

Home Assistant Supervised 依赖的操作系统和软件版本如下

  • Docker CE >= 19.03
  • Systemd >= 239
  • NetworkManager >= 1.14.6
  • AppArmor == 2.13.x (built into the kernel)
  • Debian Linux Debian 10 aka Buster (no derivatives)

1.Docker

复制

curl -fsSL https://get.docker.com -o get-docker.sh

sh get-docker.sh --mirror Aliyun

2.NetWorkManager

创建配置文件,配置NetworkManager不使用随机MAC

sudo mkdir -p /etc/NetworkManager/conf.d/
cat << EOF | sudo tee /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf
[connection]
wifi.mac-address-randomization=1

[device]
wifi.sacn-rand-mac-address=no
EOF

安装

sudo apt-get install -y network-manager

停止ModemManager服务

sudo systemctl stop ModemManager
sudo systemctl disable ModemManager

3.其他依赖软件

sudo apt-get install -y apparmor-utils jq software-properties-common apt-transport-https avahi-daemon ca-certificates curl dbus socat

三、配置Docker

将pi用户加入docker组

sudo usermod -aG docker pi

设置docker的日志驱动,以及镜像的国内下载点

if [ | -d /etc/docker ];then
	sudo mkdir -p /etc/docker
fi
cat << EOF | sudo tee /etc/docker/daemon.json
{
	"log-driver":"journald",
	"registry-mirrors":[
	"https://rw21enj1.mirror.aliyuncs.com",
	"https://dockerhub.a2k8s.cn",
	"https://reg-mirror.qiniu.com",
	"https://hub-mirror.c.163.com",
	"https://docker.mirrors.ustc.edu.cn"
	]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

四、安装Home Assistant Supervised

1. 官方教程

参考资料

首先下载安装脚本

curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
bash installer.sh

运行脚本

sudo bash installer.sh --machine raspberrypi3

支持的设备类型

  • intel-nuc
  • odroid-c2
  • odroid-n2
  • odroid-xu
  • qemuarm
  • qemuarm-64
  • qemux86
  • qemux86-64
  • raspberrypi
  • raspberrypi2
  • raspberrypi3
  • raspberrypi4
  • raspberrypi3-64
  • raspberrypi4-64
  • tinker

2. 国内网络的安装方法

国内网络无法正确解析https://raw.githubusercontent.com/的IP地址,可以通过改写hosts文件手动添加,但是下载经常失败,安装脚本也包含了部分在线下载的部分,无法正确执行。

此处改写了安装脚本,把在线下载的文件拷贝到本地,然后从本地路径加载,完成安装。
这种方法的问题时,当版本更新之后,在线获取的版本号可能需要手动更新一下。
官方的文件在 此处
修改好的文件已经上传到 github

具体操作方法如下:

git clone https://github.com/strivezh/supervised-installer.git

cd supervised-installer

sudo bash installer.sh --machine raspberrypi3

等待打印如下信息,说明安装完成:
在这里插入图片描述
在启动时还要下载homeassistant的镜像,需要等待一段时间,然后打开网页,等待HomeAssistant安装完成,具体等待时长网络情况有关。
在这里插入图片描述

更多精彩内容,请关注我的微信公众号
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐