找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

676

积分

0

好友

100

主题
发表于 昨天 07:13 | 查看: 2| 回复: 0

树莓派CM0(Compute Module Zero)是一款基于Raspberry Pi Zero 2 W核心的系统级模块,以其紧凑的尺寸和出色的性价比,成为嵌入式开发的理想选择。本文将指导您在这块仅有512MB内存的开发板上,完成Home Assistant Core的完整部署,实现家庭智能化控制。

在树莓派CM0开发板上,部署完整的Home Assistant会有些挑战,但经实测,在DietPi系统上部署Home Assistant Core可以稳定运行。

尽管官方不再推荐手动安装Core版本,但这正是深入了解其机制的好机会。Home Assistant Core软件本身仍在积极维护,是整套系统的核心。

一、环境准备

1.1 设置启动模式

为给Home Assistant预留足够资源,建议将DietPi设置为默认以终端模式启动,避免图形界面服务的额外开销。

执行以下命令进行设置:

dietpi-autostart

选择 “Manual login (default)”,然后 “Exit” 退出。

或使用快捷命令:

dietpi-autostart 0

设置完成后,重启树莓派CM0:

sudo reboot
1.2 开启zram支持

为优化有限内存的使用效率,建议开启zram交换空间:

/boot/dietpi/func/dietpi-set_swapfile 1 zram swapon

执行后,输出信息中若出现 /dev/zram0,即表示开启成功。

1.3 安装系统工具支持包

安装必要的系统工具包:

sudo apt install curl libffi-dev libssl-dev ffmpeg build-essential libturbojpeg0

其中 ffmpeg 用于媒体支持, libturbojpeg0 用于JPEG图像支持。

1.4 安装Python包

Home Assistant Core需要Python环境支持:

sudo apt install python-is-python3
sudo apt install pip3
sudo apt install python3.13-venv
1.5 设置pip源

设置pip使用国内源以加速下载:

sudo nano ~/.pip/pip.conf

在打开的文件中添加以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 10
trusted-host = pypi.tuna.tsinghua.edu.cn
1.6 安装蓝牙支持包
sudo apt install bluez libbluetooth-dev libcap2-bin
sudo apt install libpcap0.8t64
1.7 安装其他工具

安装git和unzip工具:

sudo apt install git
sudo apt install unzip
1.8 设置命令行代理(可选)

安装过程可能需要访问GitHub等外网服务,可设置代理以确保网络通畅:

export http_proxy=http://192.168.1.15:7890
export https_proxy=http://192.168.1.15:7890

请将示例IP和端口替换为您自己的代理服务器地址。

二、SD卡准备(扩展存储,建议执行)

虽然树莓派CM0的eMMC空间可能足够,但使用SD卡能提供更充裕的存储空间。

2.1 连接并初始化SD卡

通过USB读卡器连接SD卡后,执行 lsusb 确认设备。假设设备为 /dev/sda,进行初始化(警告:此操作将永久擦除该设备所有数据):

sudo mkfs.ext4 /dev/sda
2.2 挂载SD卡
# 设置挂载目录
sudo mkdir /mnt/data
sudo mount /dev/sda /mnt/data
# 查看挂载情况
mount | grep sda
df -h
2.3 设置工作目录
sudo mkdir /mnt/data/HomeAssistant-All
sudo chown dietpi:dietpi /mnt/data/HomeAssistant-All
ln -s /mnt/data/HomeAssistant-All ~/

三、获取Home Assistant Core源码

3.1 首次安装

获取特定版本(以2025.11.3为例)的源码:

cd ~/HomeAssistant-All
git clone https://github.com/home-assistant/core.git home-assistant-core
cd home-assistant-core
git checkout -b 2025.11.3 2025.11.3
git branch
3.2 更新安装(可选)

访问 GitHub Tags页面 查看最新版本。例如切换到测试版:

# 更新索引库
git fetch origin --force
# 切换到指定版本
git checkout -b 2025.12.0b2 2025.12.0b2

若更新版本,可能需要同步更新Python依赖:

git diff 2025.11.3 2025.12.0b2 requirements_all.txt 2>&1 | awk -F'+' 'BEGIN{i=0;}{ if(/^\+[a-zA-Z]/) {i++;printf "echo %d:%s;pip install %s\n",i,$NF,$NF}}' | sh

四、安装Home Assistant Core

以下安装过程可能耗时较长,请耐心操作。

4.1 创建Python虚拟环境并安装依赖
cd ~/HomeAssistant-All
cd home-assistant-core
python -m venv ~/.venv
source ~/.venv/bin/activate

安装所有依赖包(可能因内存不足中断):

pip install -r requirements_all.txt

若安装失败,可尝试分批安装:

awk 'BEGIN{i=0;}{ if(/^[a-z]/) {i++;printf "echo %d:%s;pip install %s\n",i,$NF,$NF}}' requirements_all.txt | bash 2>&1 | tee -a install.log

安装后检查日志:

grep -Ei '^[0-9]+|Success|fail|error' ~/HomeAssistant-All/home-assistant-core/install.log
4.2 设置设备权限

为普通用户 dietpi 运行的程序赋予必要的网络权限:

readlink -f "$(which python3)"
sudo setcap 'cap_net_admin,cap_net_raw+eip' $(readlink -f "$(which python3)")
4.3 首次运行Hass

运行前可再次设置代理环境变量。首先生成翻译文件:

python -m script.translations develop --all

确保命令执行无报错后,启动Home Assistant:

./.venv/bin/hass

首次运行会创建配置文件目录 /home/dietpi/.homeassistant。确保运行无错误后,即可进行下一步。

4.4 在线初始化

在浏览器中访问 http://[树莓派IP地址]:8123,按照网页向导完成初始用户创建、家庭位置设置等步骤。此过程可能需要一些时间,若网页卡顿,可尝试重启Hass服务(在终端按 Ctrl+C 停止,再重新运行 ./.venv/bin/hass)。

4.5 设置开机自启

创建系统服务文件以实现开机自动运行:

sudo bash -c ‘cat << EOF > /etc/systemd/system/home-assistant.service
[Unit]
Description=Home Assistant
After=network-online.target
Requires=network-online.target

[Service]
Type=simple
User=dietpi
WorkingDirectory=/home/dietpi/HomeAssistant-All/home-assistant-core
ExecStart=/home/dietpi/HomeAssistant-All/home-assistant-core/.venv/bin/hass
Environment=“HOME=/home/dietpi”
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF’

配置并启动服务:

sudo chmod 644 /etc/systemd/system/home-assistant.service
sudo systemctl daemon-reload
sudo systemctl enable home-assistant.service
sudo systemctl start home-assistant.service

检查服务状态:

systemctl status home-assistant.service

查看实时日志:

sudo journalctl -u home-assistant.service -f

五、安装HACS(Home Assistant社区商店)

HACS提供了便捷的非官方插件安装方式。

5.1 安装HACS

停止正在运行的Hass服务,执行一键安装脚本:

wget -O - https://get.hacs.xyz | bash -

等待安装完成后,再次启动Hass服务(systemctl start home-assistant.service 或直接运行 ./.venv/bin/hass)。

5.2 集成HACS

在Home Assistant网页界面中,进入“设置”->“设备与服务”->“添加集成”,搜索并添加“HACS”。按照向导完成GitHub设备授权流程,即可在侧边栏看到HACS入口。

5.3 通过HACS安装插件(以SSH插件为例)

在HACS中搜索“SSH”,找到“Terminal & SSH”插件,点击下载。下载完成后,根据提示重启Home Assistant。重启后,再次进入“添加集成”,搜索并配置“SSH”集成,填入树莓派的连接信息即可。

六、连接小米智能设备

6.1 安装Xiaomi Miot Auto插件

在HACS中搜索“Xiaomi Miot Auto”并安装。安装后重启Home Assistant。

6.2 添加集成并认证

在“添加集成”中搜索“Xiaomi Miot Auto”。同意风险提示后,在配置向导中,确保用于访问Home Assistant的电脑能够通过 http://homeassistant.local:8123 地址正常登录(若不能,需在电脑的hosts文件中绑定树莓派的IP地址)。

按照页面提示,点击打开小米账号认证页面,登录并授权。

6.3 添加与控制设备

授权成功后,在集成配置中选择需要添加的设备区域和类型。系统将自动发现并添加账号下的小米设备。添加完成后,即可在Home Assistant概览页面查看和控制这些设备。

七、总结

通过以上步骤,我们成功在内存仅512MB的树莓派CM0上部署并运行了Home Assistant Core。通过DietPi系统的精细调优(如使用终端模式、开启zram)和手动部署方式,有效控制了资源占用。实践表明,树莓派CM0完全有能力作为一个稳定、可控的家庭智能中枢,展现了开源硬件与软件生态的灵活性与强大潜力。




上一篇:微服务私有化部署场景下的统一门户设计:基于轻量SSO整合多后台系统
下一篇:Linux Pinctrl子系统原理与实践:嵌入式开发中的设备树配置与引脚管理
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-12 08:27 , Processed in 0.096658 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表