1. 从零开始:为什么我把树莓派选作智能家居的“大脑”
先说结论:如果你想搞一套真正属于自己的智能家居系统,而不是被各家厂商的App和云平台绑死,树莓派搭配 HomeAssistant 几乎是绕不开的经典组合。这个组合能解决的核心痛点就一个——把小米、Aqara、涂鸦、Sonoff这些不同品牌、不同协议的设备,全部统一到一个本地化的控制界面里,不用再为了一个灯装三个App,也不用担心哪天厂商服务器一关,你的智能家居直接变“智障家居”。
我最早接触 HA 是在树莓派 3B 时代,那会儿还是 hassbian 这种比较折腾的安装方式,系统、依赖、容器全靠自己一点点弄。现在 HomeAssistant 官方已经提供了非常成熟的 HA-OS 镜像,树莓派 4B、5 都有对应版本,烧录完插网线就能用,整个安装过程比早期至少省了两个小时的折腾时间。这篇教程我会把 HA-OS 和 Core 两种方案的完整部署流程都写清楚,包括镜像烧录、初始配置、存储分区、备份恢复这些细节,以及我实际踩过的坑,尽量让你一步到位。
这篇内容适合谁看?想入坑智能家居但不知道怎么选硬件的新手,家里有一堆杂牌设备想统一管理的老手,还有打算用树莓派做低成本家庭服务器的玩家。整个过程我会保证小白也能跟着操作,但一些涉及 Linux 命令和网络配置的基础知识,我会尽量解释得通俗一点,毕竟这东西踩坑的时候往往就是卡在那些“默认你会”的地方。
2. 版本选型:HA-OS 和 Core 到底怎么选,别一上来就装错
2.1 三个版本的本质区别
很多人第一次接触 HA 都会被什么 HA-OS、HomeAssistant Core、Supervised、Container 这些名词搞晕。我直接用一张表说清楚:
| 版本 | 安装方式 | 适合谁 | 优势 | 劣势 |
|---|---|---|---|---|
| HA-OS | 整卡镜像烧录,自带系统 | 绝大多数家庭用户 | 开箱即用,支持所有官方插件和 Add-ons,自动更新 | 独占整块 SD 卡/硬盘,不适合在同一台设备上跑其他服务 |
| Core | Python 虚拟环境手动安装 | 已经有 Linux 服务器的人 | 灵活,和现有服务共存 | 没有 Add-ons,升级维护比较手动 |
| Supervised | 在已有 Debian 系统上装完整版 | 想在现有系统上获得完整 HA 体验的人 | 兼顾灵活性和完整性 | 依赖官方维护的操作系统版本,容易出兼容问题 |
| Container | Docker 容器 | Docker 玩家 | 环境隔离,部署快 | 和 Core 一样没有 Add-ons,需要自己管理容器 |
我的建议很直接:如果你就是用树莓派专门当智能家居网关,不要犹豫,直接上 HA-OS。官方对 HA-OS 的维护和优化是最上心的,更新最及时,Add-ons 商店里那些 MQTT 代理、Zigbee 协调器、Samba 备份之类的扩展组件也是完整可用的。Core 版本更适合那些“我不想用树莓派专门干这个,我要在同一个 Debian 服务器上同时跑 HA、雷达监控、下载机”的场景。
2.2 硬件选型与兼容性提醒
树莓派 4B 是目前最稳妥的选择,2GB 内存版能做到基本可用,但如果你计划接入摄像头、大量虚拟设备或者跑语音助手,建议直接上 4GB 或 8GB 版本。5 代树莓派如今也完全能跑 HA-OS,性能更好,但要注意 5 代只能用 SD 卡或者 NVMe SSD 引导,部分早期外壳的散热片会挡住 SSD 排线口。
配件方面有几个容易被忽视的点:电源必须是 5V/3A 以上的官方电源,劣质电源会导致 SD 卡文件系统损坏,这是最容易导致 HA 崩溃的第一大原因;SD 卡建议优先选择 SanDisk Extreme 或 Samsung EVO Plus 这类 A2 标称的高速卡,读写速度直接影响系统响应和数据库写入寿命。有条件的话,最好用 SSD 移动硬盘引导系统,SD 卡在频繁写入下几个月就可能报废,这是长期使用的经验之谈。
3. 烧录与首次启动:最容易翻车的环节,细节全在这里
3.1 镜像烧录的两种姿势
先说最简单的办法:用官方的 Raspberry Pi Imager。这个工具不仅能烧录 HA-OS 镜像,还内置了预配置功能,可以在烧录时直接设置 Wi-Fi 和 SSH,非常省心。
# 树莓派官方烧录工具(Windows / macOS / Linux 通用) # 1. 选择 Raspberry Pi Device -> 选择你的树莓派型号 # 2. 选择 Operating System -> Other specific-purpose OS -> Home Assistant OS # 3. 选择存储卡 -> 开始烧录烧录前有个设置菜单:长按 Ctrl+Shift+X 可以打开高级选项。强烈建议在这里就填好 Wi-Fi 名称和密码,还能设置 hostname、开启 SSH。这一步不是必须的——HA-OS 启动后连接网线也可以通过路由器后台直接访问——但提前把 SSH 开了,后面调试会方便很多。
如果你手上已经有一个 HA-OS 的 .img.xz 镜像文件,也可以用命令行方式烧录,尤其是 Linux 或者 macOS 用户:
# Linux 环境下烧录(macOS 用法基本一致) diskutil list # 先找到 SD 卡的设备编号,务必确认不能是系统盘 sudo dd if=haos_rpi4-12.x.img.xz of=/dev/rdiskX bs=4M status=progress sync这里唯一要提醒的就是:/dev/rdiskX这个路径一定要确认对,写错盘符的后果代价非常惨重,我身边就有人把移动硬盘给整盘覆盖了。所以用 Imager 最稳妥,它有自动识别 SD 卡的功能。
3.2 首次启动与 IP 地址发现
树莓派插上电源后,第一次启动需要 3~5 分钟初始化系统。这段时间不要断电,也别拔卡。等待期间可以通过路由器管理后台查看新设备的 IP 地址,推荐在路由器里给树莓派设置固定 IP 或 DHCP 保留地址,这样以后每次访问都不用重新查。
启动完成后访问http://<你的树莓派IP>:8123,如果页面能正常打开,说明 HA 已经起来了。这时候会看到一个初始化界面,创建管理员账户、设置家庭名称和时区,时区记得选 Asia/Shanghai,否则自动化脚本里的时间全部会错乱。
首次开启会询问是否开启“分享数据”之类的选项,去掉就行。主要的集成安装向导会提示你发现小米网关、Sonoff 设备等,先跳过不着急,等系统稳定了再挨个接入。
4. HA-OS 核心配置:从基础设置到目录权限,理解这套系统的运行逻辑
4.1 配置目录与文件结构
HA-OS 在底层是一个定制 Linux 系统,HA 应用跑在 Docker 容器里,但用户配置一般不需要频繁用命令行改。所有配置通过网页就能编辑,不过了解底层目录结构能帮你更省力地解决问题。
在 HA 网页里打开“配置 -> 系统 -> 存储”,可以看到系统其实是分层的:HA-OS 负责底层系统,容器层跑的是 HA Core,而你的配置文件configuration.yaml存放在容器内的/config目录下,对应到物理机是一块由 HA-OS 管理的数据分区。
我实际经验中最常用到的目录操作是通过 Samba 共享:在“配置 -> 加载项(Add-ons)-> 内置插件”里找到 Samba Share,安装后就能在电脑的文件管理器里直接访问树莓派的/config目录。这对于批量编辑configuration.yaml、上传自定义卡片文件、或者备份配置是极其方便的。
4.2 configuration.yaml 的核心玩法
configuration.yaml是整个 HA 的“神经中枢”,所有自定义设备接入、自动化、自定义开关都靠它。举个典型场景——接入一个串口传感器:
# 传统方式:直接在 configuration.yaml 中定义传感器 sensor: - platform: serial serial_port: /dev/ttyUSB0 name: "Environment Sensor" unit_of_measurement: "°C" value_template: "{{ value.split(',')[0] }}"不过现在官方越来越推荐用 UI 集成的方式,也就是在“配置 -> 设备与服务”里图形化添加,因为新版 Home Assistant 很多集成都不会自动加载自定义的 YAML 配置了,需要在配置里显式声明标签。比较稳妥的做法是:能用界面配置的就用界面,configuration.yaml只保留那些没有图形化界面的能力。
每次改完配置文件,都要去“开发者工具 -> YAML”页面重新加载配置,或者直接重启 HA。最常犯的错是 YAML 缩进不对,这个语法和 Python 类似,空格数量不对直接导致配置加载失败,错误信息里会显示哪一行有问题。
4.3 存储盘符与 SD 卡寿命的博弈
HA-OS 默认把数据写在一块由系统管理的分区上,那些经常被写坏 SD 卡的文件主要是两个:home-assistant_v2.db数据库文件和日志文件。数据库会在磁盘里持续累加,SD 卡的写入放大效应最终会让它提前退休。
比较实用的优化策略有两个:一是把 Recorder 组件的提交间隔调大,可以在配置里控制不怎么重要的记录但每 5 分钟才写入一次:
recorder: commit_interval: 300二是把数据库目录挪到外置 SSD 或网络硬盘上,通过 NAS 挂载后映射到/config外面的数据目录,这需要一定的底层 Linux 知识。日常家用如果不折腾大数据量,先用好第一个方案,配合定期清理历史数据(“系统 -> 日志 -> 清理”),一般能延长一年以上的卡寿命。
5. 设备接入实操:从 WiFi 插座到 Zigbee 传感器,手把手教你接入真实设备
5.1 WiFi 设备的接入方式
大多数入门设备,比如常见的涂鸦系智能插座、小米系设备,都能直接在 HA 的“配置 -> 设备与服务”里发现并添加。如果是涂鸦系设备,需要先在涂鸦 IoT 平台注册开发者账号,创建项目后拿到 Client ID 和 Client Secret,然后在 HA 里添加 Tuya 集成,输入这两个凭证即可导入云端或局域网中的设备。
整个过程的关键在于搞清楚设备厂商的“接入模式”。有些设备支持本地局域网 API(比如 Yeelight、小米局域网协议),局域网模式下响应速度更快,断网了也能正常工作,这是比云端接入体验好的地方。我在实际配置中会优先看设备是否同时支持两种模式,能用本地就用本地。
5.2 Zigbee 与 CC2652P 协调器配置
如果你计划用 Zigbee 协议接温度传感器、门窗传感器,需要一个 USB Zigbee 协调器插在树莓派上。我建议选 CC2652P 芯片的协调器,兼容性在 HA 里是最省心的,安装 ZHA 集成时只需要把串口路径选择正确,其他基本可以自动识别。
# 查串口设备路径的方法(SSH 进入 HA-OS 终端) ls /dev/serial/by-id/这一步会显示类似usb-TI_CC2652P_...-if00的路径,在 HA 的 ZHA 配置界面里选这个设备就行。需要注意的坑是 USB 设备的权限:HA-OS 默认已经给了容器足够的访问权限,但如果你用的是第三方杂牌 USB 协调器,可能会遇到容器里看不到 USB 设备的情况,这时候八成是设备没有遵循标准的 USB 转串口协议,需要买之前先查一下兼容性列表。
5.3 外壳场景扩展:把树莓派当成多协议网关
很多小白以为 HA 只做网关,其实它还能做环境感知中心。比如给树莓派加一个 OV5647 摄像头模块,可以直接用 HA 的 Generic Camera 集成把 MJPG 流接进来,配合人体传感器实现自动化。
具体做法:给树莓派安装 rpicam 或兼容的 MJPG-Streamer 服务,然后在 HA 配置里添加一个摄像头平台:
camera: - platform: generic still_image_url: "http://localhost:8080/photo.jpg" stream_source: "http://localhost:8080/video.mjpg" name: "Living Room Cam"这样写完之后,HA 就能在卡片中直接显示实时画面,自动化里也能用“检测到画面变化”或者配合深度学习插件做目标识别。这一套组装起来,实用价值远超单纯买个云摄像头,毕竟数据留在本地。
6. 自动化与场景联动:从“手机控制”进化到“全屋联动”
6.1 自动化引擎的规则逻辑
HA 的自动化核心是三个要素:触发器、条件、动作。这个概念和 IFTTT 是类似的,但 HA 的灵活度高出一个量级。比如“天黑了而且客厅有人,就自动开灯”这个场景,可以拆解成:
- 触发器:太阳落山(Trigger: Sun)
- 条件:客厅人体传感器检测到有人(Condition: Person detected)
- 动作:打开客厅灯(Action: Turn on light)
在 UI 里用可视化编辑器写这个是最直观的,图形界面里选好实体、状态、动作,HA 会自动生成 YAML。不过我更推荐你直接在“开发者工具 -> 模板编辑器”里调试一下自动化模板,这样能更直观理解实体的当前状态值,调试效率高很多。
一个我最常用的自动化示例是“离家自动布防”:
alias: 离家总开关 trigger: - platform: zone entity_id: person.me zone: zone.home event: leave condition: [] action: - service: switch.turn_off target: entity_id: - switch.tv_power - switch.kettle - switch.air_purifier - service: climate.set_hvac_mode target: entity_id: climate.bedroom data: hvac_mode: "off" mode: single这里面有个值得注意的心得:自动化名称千万别用没人看得懂的乱码编号,用语义化的名称可以让你半年后回来维护时不用花一下午去猜“那是干嘛的”。永远用中文或明确的英文来命名实体和自动化,强烈建议。
6.2 模板与场景的进阶技巧
HA 的模板引擎是 Jinja2,和网页开发、Flask 的模板语法一致。如果你之前帮公司做过邮件模板或者动态网页,上手会非常快。一个常见需求:用模板把光照传感器的数值换算成“白天/晚上”的状态。
binary_sensor: - platform: template sensors: daylight: friendly_name: "日照状态" value_template: "{{ states('sensor.illuminance') | float > 300 }}"这样在自动化里就能直接用binary_sensor.daylight作为条件,逻辑更清晰好维护。模板语法不熟的人,别硬啃文档,先把最简单的数字比较和字符串拼接玩熟,以后遇到复杂需求再去查函数列表。
6.3 用 Node-RED 重构复杂流程的必要性
如果你发现某个自动化需要十几个判断分支,纯 YAML 写起来会很乱。这时候我强烈推荐在 Add-ons 里安装 Node-RED,这是目前 HA 社区最主流的可视化流编排工具,能把你从 YAML 地狱里解放出来。
我自己的经验是:5 条以内的逻辑用原生自动化足够,超过 5 条分支或者涉及多个设备状态的联动,直接拖到 Node-RED 里边。它有着图形化的调试面板,每个节点都可以单独注入数据模拟运行,排查问题比 YAML 直观十倍。比如一个“回家模式”,就可以用 Node-RED 把门锁、人体、光照、温湿度、窗帘全部串在一条流里,中间用 switch 节点做条件判断,用 delay 节点做延迟缓冲,整个过程不需要写一行 YAML。
7. 网络访问与外网控制:内网穿透的坑,我替你踩过
7.1 局域网访问与安全加固
HA 启动后的默认网页已经能在局域网正常访问,但有个容易忽略的问题:它默认使用 HTTP 明文协议。在同一网络里抓包就能看到你的登录密码,这在小范围使用没什么,但如果你把 HA 暴露到公网,这一步就是高危操作。
至少要做的步骤是开启 HTTPS 与登录双因子认证。在 HA 的“配置 -> 系统 -> 安全”里设置双重验证,并给用户配置至少一个 TOTP 验证器。做这一步的成本很低,但能挡掉绝大多数粗心扫描器的撞库尝试。
7.2 安全的外网访问方案
我知道大家想要外网访问无非是为了“人不在家也能看到状态、控制设备”,这个需求很合理,但实现方式必须安全。绝对不要图省事直接路由器防火墙映射 8123 端口到公网,因为我亲眼见过有人把 HA 裸奔在公网,不到一周日志里就满是扫描尝试,甚至有人利用旧接口尝试未授权操控。
当前比较稳妥的外网访问方式有两种:一种是使用系统自带的 Nabu Casa 云服务,每月几美元,优点是配置零门槛,缺点是依赖外部服务;另一种是在树莓派上用 Cloudflare Tunnel 从头建一条加密隧道,免费且不依赖 HA 官方云,但需要有一点网络基础。
# Cloudflare Tunnel 思路(基于 Docker 运行) docker run -d --name cloudflared \ --restart=always \ -e TUNNEL_TOKEN=你的隧道Token \ cloudflare/cloudflared:latest tunnel --no-autoupdate run这种方式原理是让你的树莓派主动向外发起一条加密连接,不需要在路由器开任何入站端口,路由器上不用做任何端口映射,很多光猫用户特别适合。但用之前必须把 Cloudflare 的 Access 策略打开,加一层登录验证。公网访问这条线,我给你的建议是:小白先用 Nabu Casa 体验,进阶用户再试 Cloudflare。
7.3 处理“树莓派风扇转速”与散热问题
树莓派 4B 和 5 运行 HA 时,CPU 占用并不高,但 CPU 散热问题仍然不能忽视。官方塑料壳散热差,长期 60~70 度会让 SD 卡寿命缩短。我给自己的设备加了一个 5V PWM 温控风扇,树莓派 5 的引脚定义在 GPIO 上,想要检测转速需要把风扇转速线接在某个 GPIO 上,然后通过 HA 的 GPIO 读数显示风扇转速。
# 通过 GPIO 读出风扇转速的参考思路 sensor: - platform: command_line name: "Pi Fan Speed" command: "cat /sys/class/hwmon/hwmon0/fan1_input" unit_of_measurement: "RPM"至于引脚定义,树莓派 5 的 GPIO 总布局和 4B 差别不大但有所调整,动手改线之前先去把最新的针脚图找出来核对一下,不要凭 3B 的印象直接接线。我踩过最蠢的一个坑是把风扇供电线接到了标着 3.3V 的引脚上,转速低到像是没通电一样,查了半天才发现是电压不够。
8. 常见故障排查与解决实录(含避坑指南)
8.1 无法访问 8123 端口的排查思路
这是新手遇到最多的问题,树莓派运行着,但浏览器怎么都打不开 8123。我的排查顺序是固定的:
- 先确认树莓派 IP 是否变了——路由器 DHCP 分配可能变动,优先去路由后台查设备列表。
- 确认 HA 是否真的启动完成——第一次启动或版本升级后需要较长初始化时间,SSH 登录后运行
ha core logs看日志。 - 确认 8123 端口是否被防火墙拦截——有些路由器自带 SPI 防火墙或访客隔离网络,需要把设备放到主网段。
有一回我搞了半小时都没通,最后发现是树莓派连的 Wi-Fi 和电脑不在同一个路由器上,两台设备差点跨到了不同网络。现在我做教程都会反复强调:物理连接决定逻辑连通,先检查网络拓扑。
8.2 SD 卡损坏与系统修复
症状表现为 HA 频繁重启、页面卡死、日志疯狂报 IO 错误,多半是 SD 卡写入寿命耗尽。备有 HA-OS 备份的前提下,最直接的方案是重刷镜像再恢复备份;没有备份的同学就不得不面对配置丢失的现实了,这也是我把“定期备份”反复强调的原因。
最佳实践是启用内置的 Google Drive 备份功能,每周自动把配置与数据库备份丢到云端。HA 在较新的版本里已经有“备份”功能,可以创建到云存储。在树莓派上自己搭一个 NAS 共享,利用 Samba 把备份目录映射出来也可以。但无论如何,备份不在于多精美,在于“万一出事还能救回来”。
8.3 运行 Core 失败:“请查看提示信息”这类报错的真实成因
社区里很多人反馈“运行 Core 失败,请查看提示信息”,其实这个提示非常笼统,背后最常见的原因是目录权限不足或配置文件路径错误。如果你自己手动装过 Core,最容易踩坑的是操作系统的 Python 版本不匹配,官方要求 Python 3.12+,旧版 Debian 自带 Python 版本过低就会启动失败。
此时正确做法是:不要被这个通用提示吓到,去终端里手动启动 core 来查看真实报错:
python3 -m homeassistant --config /path/to/config这通常能把真实错误信息直接打印出来,比看网页日志更直接。我遇到过最奇葩的“失败”原因居然是磁盘空间满了——HA 的数据库和日志文件能轻松占用几十个 GB,一旦满了系统会拒绝启动任何服务。解决方法是定期清理数据库或把 recorder 配置改为只保存最近 7 天。
8.4 树莓派 5 特有的坑
如果你用的是树莓派 5,有几个特殊问题需要提前知道:一是官方 HA-OS 对 Pi 5 的 NVMe 引导支持已经很成熟,但要注意部分 SSD 硬盘盒的桥接芯片兼容性不佳,建议选 JMicron 或 RTL9210 芯片的盒子;二是 Pi 5 的官方主动散热器会占用大部分 GPIO 空间,加装 HAT 扩展板之前要确认散热片高度会不会顶到;三是 Pi 5 的 USB 供电智能协商偶尔会导致某些 5V/5A 但不是官方标准的电源适配器进入低功耗模式,表面上看是瞬间断电重启,实际排查一下电源指示灯,如果是红色常亮而不闪,基本能锁定供电问题。
8.5 摄像头模块与 GPIO 操作相关经验
如果你加装了 OV5647 摄像头模块,在 HA 里接入画面,但出现黑屏,先检查排线是否插到位,树莓派的 CSI 接口对排线插反非常敏感,反插不会烧板子但会直接识别不到设备。命令行验证方法:
# 在树莓派终端测试摄像头 libcamera-hello --list-cameras如果命令能列出摄像头,说明硬件没问题,问题多半在 HA 的摄像头 URL 或流媒体协议不匹配。如果命令报找不到设备,大概率是排线接触不良或摄像头模块本身供电不足。
至于 GPIO 控制 PWM 信号(比如舵机、风扇调速),树莓派默认的 sysfs 接口在现代内核里已经变了,建议用gpiod工具来控制,具体用法参考官方文档,不要在旧资料里抄命令。我唯一想强调的是:别用网上的万年旧教程直接复制命令,内核版本一变,路径全变,查一圈文档才找到新方法的时间比直接看官方文档久得多。
9. 备份、升级与长期维护:让它安静地跑上几年
9.1 每次升级前必做的两件事
HA 的版本更新非常勤,基本每月一次大版本。升级前请务必完成两件事:一是做一次完整备份(包括配置和数据库);二是去看一眼官方发布说明,确认没有破坏性的配置变更。很多人在大版本升级后一堆集成报错,就是因为某个老插件没跟上 API 适配。
升级时给树莓派接上稳定的网线,别用 Wi-Fi 升级,固件包动辄几百 MB,Wi-Fi 稳不稳定是一回事,断电断流扯出文件系统损坏才是真灾难。
9.2 树莓派电源与硬件状态的长期监控
长时间无人值守的智能家居设备,最怕的就是“悄悄坏了”你还在外面远程控制失败。建议在 HA 里加一个监控自动化:通过systemmonitor集成监控树莓派的 CPU 温度、磁盘使用率、内存占用,当指标超过阈值时推送到手机。
# configuration.yaml 中的 System Monitor 配置 sensor: - platform: systemmonitor resources: - type: processor_use - type: memory_use_percent - type: disk_use_percent - type: last_boot这种监控的意义在于,你能在 SD 卡彻底死亡前至少提前一两个礼拜收到预警,赶在系统宕机前做一个完整备份,换张新卡或 SSD 一劳永逸。
9.3 备份文件我应该放哪里?
我见过不少人在本地创建一个“backup”文件夹,然后把备份文件放在同一个 SD 卡上。这其实没什么作用,因为 SD 卡是整个系统挂掉的根源,备份放在同一张卡上等于把唯一的保险箱钥匙放在保险箱里。理想方案是通过 NAS、外接 SSD、或者云盘做异机异地备份。
在 HA 里,最简单有效的方式就是安装 Google Drive Backup 插件,它会自动把备份文件推到你的 Google Drive。如果你没有科学使用谷歌的条件,打开 Samba 共享后,让电脑的脚本定时从树莓派把备份同步到电脑或 NAS,也是一个等价方案。
10. 程序化玩法扩展:HA 与树莓派的更多应用组合
10.1 自制共享相册与家庭多媒体
树莓派 4B 及以上型号做家庭相册非常稳。在 Docker 里起一个 PhotoPrism 或 Piwigo,数据库放在 HA-OS 的数据盘上,配合自动上传脚本,就能在电视上滚动播放家人照片。HA 与相册可以联动,用一个门磁传感器或者人体传感器,在特定时段自动投屏播放,这是很有“家”的感觉的应用场景。
10.2 电视直播与遥控自动化场景
树莓派还可以充当电视直播和媒体播放器。Kodi 本身就有完整的 HA 集成,可以用 HA 的媒体播放器实体来控制 Kodi。如果你的场景是“按下遥控器按钮,客厅音响开始放歌、灯调暗”,这个联动在 HA 里写自动化不超过 10 分钟。
10.3 树莓派与 YOLOv5 的本地 AI 目标识别
最近很热的一个玩法是在树莓派 4B 上跑 YOLOv5 做目标检测。4B 虽然算力有限,但配合 Coral USB 加速棒可以跑得相当快。把检测结果回传给 HA,可以实现“检测到猫在外面才打开监控录像”这种智能逻辑。树莓派 5 的性能更强,跑轻量模型的时候不必非要加速棒,但功耗和发热也会相应提升。
10.4 把 HA 变成便携式环境监测站
如果你并不需要“全屋智能控制”,只想拿树莓派 + HA 做数据采集,那更简单了。接上温湿度传感器、气压传感器,用 HA 的仪表盘做可视化,再用电子邮件或 Webhook 定时推送报表。这样一套环境监测方案在低成本硬件上的体验,完全不输商用的物联网监测平台。
# 一个典型的环境监测自动化示例 automation: - alias: "定期发送环境报告" trigger: - platform: time_pattern hours: "/6" action: - service: notify.email data: title: "环境报告" message: "温度 {{ states('sensor.temperature') }}°C,湿度 {{ states('sensor.humidity') }}%"11. 最后的实战心得
跑了几年 HA,我的体会是:树莓派的硬件架构让 HA 成为了一件真正“私有化”的产品,它尊重用户的自由选择,不绑架协议、不绑架云端,但这份自由的成本在于所有维护工作都得自己做。刚开始你会觉得配置一个自动化可能要花一晚上,但当系统稳定运行一个月后,你会慢慢忘掉它,那种“无声工作”的可靠感比任何花哨的所谓智能都珍贵。
维护中最容易被忽略的一件事是“保持简单”。不要一上来就追求把所有设备全部接进去,那只会让系统臃肿得没法维护。我的建议是先从一盏灯、一个传感器、一条自动化开始,跑通再逐步扩展。智能家居的本质不是设备多,而是理解你家里的生活节奏,用规则和习惯帮你分担一些重复的事。
最后再分享一个小技巧:所有 YAML 文件里都写上注释,哪怕只是“这个传感器装在门口”,半年后维护的时候你会感谢当时的自己。我在 HA 里写自动化时,一定会为每个自动化写清楚触发条件和预期行为,并在名称里直接体现,这样不用打开编辑器就能从实体列表里知道它是干什么的。这套自我文档化的习惯,能让你的系统用得越久越顺手。