MENU

树莓派HA+MQTT

2024 年 01 月 22 日 • 阅读: 2017 • 学习笔记

前言

树莓派 安装Home Assistant Supervised + 安装MQTT 实现ESP自己开发设备连接HA

温湿度传感器 人体存在传感器 空气质量传感器 空调开关 灯开关等...

树莓派

换源

第一个文件:

sudo nano /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
 
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

第二个文件:

sudo nano /etc/apt/sources.list.d/raspi.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bookworm main ui

更新一下软件源:

sudo apt update
sudo apt upgrade

NetworkManager

HomeAssistantSupervised 需要 NetworkManager 的支持,树莓派官方使用的是 ModemManager、openresolv 和 dhcpcd5。

原本的配置可以不动,但是需要固定 Mac 地址并禁用 ModemManger。

因为 NetworkManager 一旦安装就会开始工作。所以我们先创建一个 NetworkManager 的配置文件来固定 Mac 地址,防止我们后续操作重启时候,树莓派的 Mac 地址频繁变更。

固定 Mac 地址

预编写 NetworkManager 的配置:

# 创建配置目录和文件
sudo mkdir -p /etc/NetworkManager/conf.d/
# 对文件追加内容
sudo nano /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf
BASH

追加的内容:

[connection]
wifi.mac-address-randomization=1

[device]
wifi.scan-rand-mac-address=no

之后就可以安装 network-manager 了。

安装 Network-Manager

提示

安装完Network-Manager后,网络可能会出现短暂的丢包。这个时候多等一下就好,并且在完成ModemManager的禁用前,请勿重启树莓派系统!!!

安装:

sudo apt install -y network-manager
禁用 ModemManager

有些教程会让你卸载 dhcpcd5,但是这样重启后需要重新配置网络,并且不能用树莓派的方法配置,这让我这没有显示器的用户很苦恼……所以这里我们就不卸载 dhcpcd5,直接禁用 ModemManager 即可。

# 停止ModemManager
sudo systemctl stop ModemManager
# 禁止ModemManager开机自启
sudo systemctl disable ModemManager

到此,NetworkManager 部分就准备好了。

Apparmor

AppArmor 是一个高效和易于使用的 Linux 系统安全应用程序。AppArmor 对操作系统和应用程序所受到的威胁进行从内到外的保护,甚至是未被发现的 0day 漏洞和未知的应用程序漏洞所导致的攻击。AppArmor 安全策略可以完全定义个别应用程序可以访问的系统资源与各自的特权。

安装 Apparmor 很简单:

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

把 Apparmor 的启动配置参数加到树莓派的启动参数内

# 使用vim打开/boot/cmdline.txt
sudo nano /boot/cmdline.txt
# 尾部添加
apparmor=1 security=apparmor

osagent

智能代理(osagent)是一个动态的分布式目录服务,该服务定位实现特定对象的有效服务器。

还需要安装 OS Agent。这个并没有在 Debian 的软件源内,所以我们需要使用 dpkg 安装。

最新 OS Agent 的下载地址:https://github.com/home-assistant/os-agent/releases

# 下载OS Agent 1.5.1
wget https://github.com/home-assistant/os-agent/releases/download/1.5.1/os-agent_1.5.1_linux_aarch64.deb
# 使用dpkg安装
sudo dpkg -i os-agent_1.5.1_linux_aarch64.deb

其他依赖

还有一些其他的依赖需要安装,参考自:https://github.com/home-assistant/supervised-installer

sudo apt-get install \
jq \
wget \
curl \
udisks2 \
libglib2.0-bin \
dbus -y

2022.11.27 后 Homeassistant 正式需要 Systemd Journal 的支持;我们同样可以使用软件包管理器进行安装:

sudo apt install systemd-journal-remote -y

Docker

提示

如果你之前有安装Docker,可以跳过本步骤。

之后,下载 Docker 官方脚本,并使用阿里源进行 Docker 的安装:

# 下载Docker安装脚本
sudo curl -fsSL https://get.docker.com -o get-docker.sh
# 使用阿里镜像源下载并安装Docker
sudo sh get-docker.sh --mirror Aliyun

把我们自带的 pi 用户添加到 docker 用户组内:

sudo usermod -aG docker admin

重启设备

上诉操作,我们已经重新配置了网络、安装了依赖和添加了启动参数,所以在正式安装 Home Assisistant Supervised 前,我们需要重启设备。

重启设备后,ping 一下设备,看看能不能有稳定的包返回。重启时候,会新增一些进程,期间 ping 的响应会是断断续续的,要等到回报稳定再开始 SSH 连接。

注意

需要注意,如果最后设备长时间Request timeout for icmp_seq,在网络没问题情况下,可能是树莓派供电不足,实在不行可以上65W的PD充电器。

Supervised

安装

现在开始安装 Home Assisistant Supervised 啦。

# 下载deb安装包 
# 加速 
# wget https://hub.fgit.cf/home-assistant/supervised-installer/releases/download/1.5.0/homeassistant-supervised.deb
wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
# 安装
sudo dpkg -i homeassistant-supervised.deb

之后,没有问题就会出现选项卡,按照自己的树莓派选择,注意多下滑点,有树莓派 raspberrypi4-64 版本。

安装过程……根据自己的网络,这一步可能会卡很久。

如果出现和我一样的情况安装:sudo apt-get install systemd-resolved 就可以解决问题。

image.png

错误

如果你出现 grub 配置错误,比如:

image.png

解决方法很简单:

# 我用的nano编辑器 可以按照vim
sudo vim /etc/default/grub

添加:systemd.unified_cgroup_hierarchy=false

sudo vim /boot/cmdline.txt

添加:systemd.unified_cgroup_hierarchy=false

之后重启系统,重新进入系统后,再次使用命令安装(sudo dpkg -i homeassistant-supervised.deb)即可安装成功:

image.png

如果并没有 Homeassistant 容器;那么等 10min~20min 再试试,期间保持树莓派运行,Homeassistant 会组建初始化完成)但是我的docker容器里面一直没有HA 于是我一直重启 一直查看都没有 树莓派一直没关机 隔夜早上来看 有了!不知道为什么~~~ 可能是网络问题?

image.png

隔夜

image.png

成功

然后就可以根据自己的树莓派ip+端口8123进入了

image.png

MQTT

安装

获取Docker

docker pull emqx/emqx:5.4.1

启动Docker容器

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.4.1

重启服务器运行mqtt

# 运行容器 start 容器名称
# 容器名称查看 sudo docker ps -a
sudo docker start emqx

python自动配置HA设备 https://www.ounoe.com/archives/416


本文作者:LiuXiaoBai
文章标题:树莓派HA+MQTT
本文地址:https://www.ounoe.com/archives/408
版权说明:若无注明,本文皆刘小白的小窝原创,转载请保留文章出处。

返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码