当前位置:   article > 正文

Home Assistant安装指北(树莓派+Debian12+HASS Container+HACS极速版)_树莓派安装hass

树莓派安装hass

b站安装过程实录:https://www.bilibili.com/video/BV194421w72e/?share_source=copy_web&vd_source=d17175c986cec83b4c79184b625c9ea2

目录

前言

材料清单

(一)树莓派

(二)SD卡

(三)【网线】/【显示器+键盘】

(四)树莓派壳子

(五)登录github的能力

(六)一款SSH软件

一、安装操作系统 

(一)下载烧录器与操作系统镜像

(二)烧录

(三)SSH准备

(四)登录操作系统

1、换源

2、设置时区

3、新增普通账号

4、设置无线连接(网线读者跳过)

二、安装宝塔操作面板

三、安装HASS

(一)安装docker

 1、安装Docker Engine

 2、安装Docker Compose plugin

(二)安装HASS Container

(三)HASS初始设置

四、安装HACS极速版


前言

话说天下大势,分久必合,合久必分,我(们)周围最常见的智能家居平台有华为、小米、苹果。然而截至目前,我并没有看到他们有要相互兼容的趋势,这导致我们没有办法做到东市买骏马,西市买鞍鞯。当然,如果各家平台上产品种类都十分齐全且丰富的话,那各家不融合倒也不是什么大问题,然而现实是各家平台要么缺少产品种类,要么一类产品可选择范围过小,在网上浏览信息时,三家分别给了我这样的印象:苹果使用体验好,但价格最高;小米小玩意儿丰富,但大家电支持较差;华为是我自己在用的,给我的感受是和鸿蒙系统配合得很好,但十!分!排!外!——我目前没有找到任何方法将个人DIY设备接入华为平台——其平台只对企业开放加入。权衡之后,我打算尝试使用Home Assistant(HASS)来作为我的智能家居平台,然而遗憾的是,其仍旧和华为的智慧生活无法兼容(而小米和苹果在网上都能搜到如何与HASS互动,虽然我并没有验证其可行性 )。

本来本文是HASS Supervised的安装教程(也因此OS选择的Debian 12),但是经过我反复尝试(10天,每天我都从头到尾走一遍本教程删掉的Supervised安装过程),得出安装Supervised版本的过程极不稳定的结论,其最大的不可控因素发生在docker拉取HASS Supervised版本一系列镜像的过程中,因为所有的docker配置全由官方脚本指定,自由度很小而github镜像仓库(ghcr.io)又不是很好连,就会导致下载时长不可控;Supervised部署的时候还要连github网址,又很容易失败。这一自然段是本文最后完成的部分(别问我为啥不写后记,我想把血泪史放前边劝退),我现在有四个改善连接环境的想法,一是改hosts,二是再次尝试挂梯子(这个我用过,不知道为啥流量不走代理,搞不清docker+Supervised的网络架构;我还尝试过PC上挂梯子,树莓派和docker设置PC为代理,也是看不出来效果),三是设置软路由(目前我认为最科学的方法,但未尝试),四是研究官方安装脚本,手动完成每一步以实现最大程度干预拉取和安装过程。总之,让我们先从HASS Container入门吧!有什么非用Supervised版本不可的理由后再换过去,毕竟从本质上来讲Container版本缺失的Add-ons实际上就是个适配良好的应用商店,有啥需要的可以手动下。

材料清单

 HASS官网针对HASS OS的清单https://www.home-assistant.io/installation/raspberrypi,不过我们是要安装Debian12而不是HASS OS。

(一)树莓派

我的规格是Raspberry Pi 4 Model B 8GB RAM,在完成本文的所有内容后,其资源占用情况如下,大家可根据自己的需要选择RAM大小。

完成本文后的系统资源占用情况

(二)SD卡

HASS只对HASS OS操作系统给出了32GB的建议,并没有对安装在Debian上需要购买存储卡的大小给出建议,因此我购买了64GB A2的SD卡,注意在此处一定要买A2的

我选购的SD卡

(三)【网线】/【显示器+键盘】

网线在此十分好用,只要插到路由器上就能直接有网。然后能直接SSH进去管理;否则就只能显示器+键盘进行线下配置了(你说无线网?不好意思,我从来没配置成功过,如果你足够幸运或许你可以不需要本条目中的内容,因为似乎从Debian 12开始,就不再支持预配置设置无线网络了,或许将来可能会重新支持吧)。

(四)树莓派壳子

大致有两种可选择,一是带风扇的主动散热,二是全金属壳的被动散热。我一开始买的带风扇的主动散热,好家伙噪音那叫一个飞起,后来我换成了被动散热的壳子,平常摸起来就是温温的,我觉得这个散热程度可以接受,综上我比较推荐被动散热。

(五)登录github的能力

这个看情况,如果运气好了,裸连也能完成关键操作步骤。否则只能科学(改hosts,本文用的方法)或魔法(嗯,魔法)。

(六)一款SSH软件

可以选择PuTTY(https://putty.org/)或者Xshell(https://www.xshell.com/zh/free-for-home-school/),后文我用的Xshell。

一、安装操作系统 

Debian 12安装过程借鉴https://raspberrytips.com/install-debian-on-raspberry-pi/,文中含有Debian 12(for Raspberry Pi)下载链接https://raspi.debian.net/tested-images/。

Raspberry Pi官方对使用Raspberry Pi Imager安装操作系统的教程https://www.raspberrypi.com/documentation/computers/getting-started.html#install-using-imager

(一)下载烧录器与操作系统镜像

首先我们需要去树莓派官网(https://www.raspberrypi.com/software/)下载烧录器,稍后其将帮助我们把操作系统镜像烧录到SD卡上。

根据操作系统选择软件版本

然后去本章开头给的链接下载Debian 12镜像,注意需要根据自己的树莓派型号进行选择。

实际前仨的sha256sum是一样的

(二)烧录

将SD卡连接到电脑上,打开烧录器

烧录器界面

在“CHOOSE DEVICE”处选择你的树莓派型号;在“选择操作系统”处选择之前下载好的Debian 12镜像(点击按钮之后拉到最底下的“Use custom”选择已有文件);在“选择SD卡”处选择你插入的SD卡。完成后点击NEXT

完成选择后点击NEXT

弹出提示是否应用操作系统自定义,我们选择“编辑设置”

选择“编辑设置”

注意,下方内容已标为灰色,因为我试了半天这个配置对我们要装的Debian 12毛用没有,似乎是从Debian 12(Bookworm)开始不支持此设置。

设置界面总共有三个标签页,在GENERAL标签页可以设置主机名、用户名和密码(注意Linux用户名命名规范)、连接到的WiFi名称和密码(WIFI国家选项将影响到将来使用的信道)以及语言设置。时区需要选择上海,键盘布局us即可。

GENERAL界面

在SERVICES界面设置SSH相关配置,根据自己的需求来。

SERVICES界面

在OPTIONS界面,可以设置一些烧录相关的选项。(没搞懂启用遥测是干嘛的,官方文档里也没有说明)

OPTIONS界面

完成后点击保存,然后在之前弹的是否应用操作系统自定义界面选择是。后面可能会弹将会清除SD卡上所有数据,选择是就行了,然后开始烧录

烧录中

后面会有验证文件阶段,树莓派官网文档的机翻:“如果想活得特别危险,可以点击取消验证跳过验证”

验证阶段,理论上可跳过

(三)SSH准备

下方内容为选择使用网线进行远程配置的人看的,选择使用屏幕+键盘的直接使用root无密码登录就行,然后跳转到SSH登录之后的内容接着看就行。

打开Xshell,点击“用户密钥管理者”按钮(在工具选项卡里也有)

点击用户密钥管理者

在弹出界面点击“生成”按钮(下图已经存在的RaspberryPI是我之前创建的)

点击生成

按照下图默认的配置选择即可,点击下一步

点击下一步

等待密钥生成,完成后点击下一步

点击下一步

给密钥起个名称,然后设置密码,之后点击下一步

设置名称和密码,完成后点击下一步

选中公钥全部内容进行复制,或停留在该页面上备用

复制公钥内容后点击完成或稍后点击

打开SD卡找到sysconf.txt文件,去掉“root_authorized_key=”前的#,然后在等号后面粘贴上图复制的内容(实际上暴露该内容没啥危害,毕竟是公钥)。该关键字实际是“root_authorized_key”,不知道为啥我的下划线不显示了

使用root_authorized_key

保存文档,弹出SD卡,将SD卡插到树莓派上并给树莓派上电。使用网线连接路由器和树莓派。查看自己的路由器管理界面,等待设备连接。设备连接到网络后记录其ip地址(如果是长期使用网线,建议在此将该ip设为固定分配;若稍后长期使用WiFi,同理也建议稍后将WiFi分配的ip设为固定分配)

获取其ip地址

在Xshell上新建一连接

新建连接

为其设置一个名称,然后主机处填写刚才的ip,完成后在左侧点击用户身份验证

新建连接

用户名为root,然后在方法中勾选Public Key,然后选中Public Key后点击设置

设置用户身份验证

选择刚刚生成的密钥,并输入该密钥密码,完成后点击确定

选择密钥

可以先把Password的勾去掉,这样等下就不会提示密码错误了

去掉Password的勾

完成后点击连接,正常的话就可以SSH登录到树莓派了。

SSH登录成功

(四)登录操作系统

接下来的内容选择屏幕+键盘的可以接着看啦

1、换源

借鉴https://www.cnblogs.com/smlile-you-me/p/17727308.html,注意如果自己去网上找,一定要看链接里是不是包含bookworm字样,否则会导致版本问题

首先为了可恢复,备份一下原文件

cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑/etc/apt/sources.list

nano /etc/apt/sources.list

将下方内容覆盖掉sources.list原内容(nano里ctrl+k可以删除行)

  1. deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib
  2. deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib
  3. deb https://mirrors.aliyun.com/debian-security/ bookworm-security main
  4. deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main
  5. deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib
  6. deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib
  7. deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib
  8. deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib
编辑后的sources.list

保存sources.list文件后记得在终端执行“apt update”以及“apt upgrade”(很重要)。

  1. apt update
  2. apt upgrade

2、设置时区

 执行下方指令设置时区

timedatectl set-timezone Asia/Shanghai

完成之后可以执行“timedatectl”查看是否设置成功。

3、新增普通账号

建议新增普通用户作为平时登录的账号,直接登root有点不讲究(但其实后文全是root账户在操作哈哈,记得自己增删sudo)。

首先装一下sudo

apt install sudo

在终端输入下方指令进入新增用户流程

adduser 用户名

随后设置密码及其他信息。我这里新增的用户叫zdzx,后面文章内容所有出现zdzx的地方都应该为你自己新增的用户名。

新增用户

添加刚刚新建的用户到sudo组

usermod -aG sudo 用户名
添加用户到sudo组 

更新登录信息并将密码登录设置为首位

将密码登录信息设置为首位

再次连接默认登录的就是刚刚新建的用户。

4、设置无线连接(网线读者跳过)

编辑/etc/network/interfaces.d/wlan0文件,可使用如下命令

nano /etc/network/interfaces.d/wlan0

根据文件提示去除注释,并配置wifi名称和密码,完成之后按ctrl+x退出,会询问是否保存,按y保存即可,然后会询问保存位置,直接按回车即可

配置wlan0

完成之后在终端输入“systemctl reboot”重启(但是我的树莓派重启失败了,只能断电重连了QAQ)

systemctl reboot

稍等片刻可以在路由器终端上看到以无线方式新加入的树莓派

树莓派

二、安装宝塔操作面板

宝塔官网https://www.bt.cn/new/download.html

首先先安装wget

sudo apt install wget

然后按照宝塔官网的说明,我们先切换到root用户,然后在终端上输入从宝塔官网复制的安装脚本,如下图

复制官方的安装脚本指令

在终端上运行复制的安装脚本,一开始会问你要不要把面板安到/www目录下,确认之后就开始滚屏幕了,安装过程在树莓派上耗时会有点长(下图计时为27min)。完成安装后请妥善保存弹出的提示消息

安装成功的界面,请妥善保存内容

注意!安装宝塔后记得运行相应服务前要在宝塔面板上开放相关端口!

三、安装HASS

(一)安装docker

Docker Engine官方安装教程(先决条件)https://docs.docker.com/engine/install/debian/#install-using-the-repository

Docker Container官方安装教程https://docs.docker.com/compose/install/linux/

 1、安装Docker Engine

首先依次执行以下代码,以添加Docker的官方GPG密钥

  1. sudo apt-get update
  2. sudo apt-get install ca-certificates curl gnupg
  3. sudo install -m 0755 -d /etc/apt/keyrings
  4. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  5. sudo chmod a+r /etc/apt/keyrings/docker.gpg

执行过程中出现“sudo: unable to resolve host XXX”的解决方法参考自https://blog.csdn.net/yuzhiyuxia/article/details/19998665,修改/etc/hosts文件,在127.0.0.1后补充自己的OS名称

添加host

然后执行以下代码(已经将官网代码中的$VERSION_CODENAME替换为了bookworm)

  1. echo \
  2. "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  3. $(. /etc/os-release && echo "bookworm") stable" | \
  4. sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

完成之后执行apt-get update

sudo apt-get update

然后执行下方代码

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

完成之后可以使用以下命令来验证是否完成了安装

sudo docker run hello-world
测试docker

 2、安装Docker Compose plugin

执行下方指令

sudo apt-get install docker-compose-plugin

完成之后可以使用下方指令进行测试

docker compose version
测试docker compose

(二)安装HASS Container

HASS官方安装HASS Container教程https://www.home-assistant.io/installation/linux#docker-compose

首先新建/hass目录并在其中新建compose.yml文件和config文件夹

  1. mkdir /hass
  2. cd /hass
  3. touch compose.yml
  4. mkdir config

将下方内容粘贴到compose.yml中,已经将官网的/PATH_TO_YOUR_CONFIG更改为之前创建的/hass/config

  1. version: '3'
  2. services:
  3. homeassistant:
  4. container_name: homeassistant
  5. image: "ghcr.io/home-assistant/home-assistant:stable"
  6. volumes:
  7. - /hass/config:/config
  8. - /etc/localtime:/etc/localtime:ro
  9. - /run/dbus:/run/dbus:ro
  10. restart: unless-stopped
  11. privileged: true
  12. network_mode: host
compose.yml

通过宝塔面板设置加速URL,设置之后记得按要求重启docker。没有安装宝塔的话请自行搜索怎么给docker pull加速,其实就是改个配置文件

通过宝塔设置加速URL

在/hass目录下执行“docker compose up -d”,请至少留出1h的时间让镜像拉取完成(一般1h够用了),如果时间不足,可以执行“nohup docker compose up -d &”使其转为后台运行

docker compose up -d
正在拉取hass文件

可以通过宝塔首页的流量监控看下下载速度(特意挑了个速度起来的时候截,哈哈)

宝塔首页的流量监控

我总共拉了23分钟才拉完(经反复尝试,拉取时间也不太稳定,有一次我用了2000多秒)

耗时1424.4s

完成之后,在浏览器输入http://<ip>:8123即可访问HASS(记得在宝塔安全界面放行8123端口),<ip>替换为你树莓派的ip。

(三)HASS初始设置

接下来的教程替换为https://www.home-assistant.io/getting-started/onboarding/

HASS首次部署完毕
创建账户

不知道为啥我搜索功能不能用,但是点击下图的定位(前提是输入框什么都不要有)却可以粗略定位一下。 大致定位之后拖动蓝色标标到正确位置后点下一步

设置家庭位置

如果那个定位也用不了的话就得自己拖了,默认初始标点在接近世界地图的尺度上在下图位置,自己拖到你家然后慢慢放大再定位就行

默认起点与中国相对位置
共享信息设置,可勾可不勾
姑且称之为自动寻路
成功进入系统

四、安装HACS极速版

HACS极速版链接https://gitee.com/hacs-china

我试了下命令行自动安装,但是好像没连上服务器,于是改为手动安装

首先点击上方注释链接中的方法4给出的链接下载hacs.zip,然后在终端执行下方命令创建/hass/config/custom_components文件夹和/hass/config/custom_components/hacs文件夹

mkdir -p /hass/config/custom_components/hacs

随后将下载的hacs.zip传到/hass/config/custom_components/hacs(使用宝塔的文件页面或其他方法)

完成之后执行下方指令进入/hass/config/custom_components/hacs目录并解压hacs.zip

  1. cd /hass/config/custom_components/hacs
  2. unzip hacs.zip

执行完毕后重启HASS

重启HASS

在配置->设备与服务->添加集成中搜索HACS

标题

 把前面选项都打上勾后点击提交

启用HACS

 如果你足够幸运在这时可以裸连github,那么恭喜你完成了本文全部内容,可以退出本文了。等下,先点个赞再走!


好了,那帮子幸运儿走了,剩下我们这些倒霉蛋开会,下面我将使用科学的方法使HACS可以连接到github。至于本机是使用科学还是魔法就看个人喜好了。

UsbEAm Hosts Editor下载地址https://www.dogfight360.com/blog/475/

 首先在上述链接下载UsbEAm Hosts Editor,完成之后在个人电脑运行该程序

运行UsbEAm Hosts Editor

测试github各ip延迟

选中github.com规则
检测延迟

IP从上到下依次尝试应用选中,会有两种结果,如下两图。应应用一个理论可用的ip后在自己的主机上尝试裸连github,如果无法连接就继续换ip,直到能裸连为止,记下可以裸连的ip

理论不可用
理论可用

然后设置树莓派,编辑/etc/hosts文件

nano /etc/hosts

在顶上(防止有文件结尾问题)新增一条“<ip> github.com”,ip是你刚才可裸连的ip

编辑hosts

然后在宝塔面板Docker选项卡的容器界面单独重启homeassistant

重启homeassistant容器

完成之后便可再次尝试添加HACS了,出现下图就说明成功了!

成功了!

ok,散会!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/480581
推荐阅读
  

闽ICP备14008679号