Home Assistant:开源智能家居平台,打造全屋智能的中枢神经
背景
智能家居时代,设备越来越多,但问题也随之而来:
- 不同品牌的设备无法互联互通
- 米家、华为、苹果 HomeKit 各成体系
- 云端控制延迟高,依赖网络
- 隐私数据上传到厂商服务器
- 设备联动自动化功能弱
- 想本地控制但设备不支持
- 添加新设备时需要安装多个 App
今天介绍一款开源智能家居利器——Home Assistant,它是智能家居的中枢神经,支持 1900+ 设备集成。
什么是 Home Assistant?
Home Assistant 是一款开源的智能家居平台,采用 Python 开发,旨在将所有智能设备统一管理,实现本地化控制和自动化。
核心理念: "Open source home automation platform focusing on privacy and local control"——专注于隐私和本地控制的开源智能家居平台。
核心特性:
| 特性 | 说明 |
|---|---|
| 1900+ 集成 | 支持主流品牌设备 |
| 本地控制 | 无需云端,本地响应快 |
| 隐私优先 | 数据存储在本地 |
| 自动化 | 强大的自动化规则引擎 |
| 可视化面板 | 直观美观的 UI 界面 |
| 开源免费 | Apache 2.0 许可证 |
| 多平台 | 支持 Docker、树莓派、NAS |
| 插件扩展 | 通过 HACS 安装社区插件 |
GitHub 地址: github.com/home-assist…
Star 数量: 70K+
Home Assistant vs 其他方案
| 对比项 | Home Assistant | 米家 | Apple HomeKit | openHAB |
|---|---|---|---|---|
| 价格 | 免费 | 免费 | 需要苹果设备 | 免费 |
| 开源 | ✅ 完全开源 | ❌ 闭源 | ❌ 闭源 | ✅ 开源 |
| 本地控制 | ✅ 完全支持 | ❌ 需要云端 | ⚠️ 部分支持 | ✅ 支持 |
| 设备支持 | 1900+ | 仅米家 | 仅 HomeKit | 600+ |
| 隐私 | 数据本地 | 数据在云端 | 数据在云端 | 数据本地 |
| UI 美观度 | 现代美观 | 一般 | 现代 | 较陈旧 |
| 自动化 | 强大灵活 | 一般 | 一般 | 较复杂 |
| 学习曲线 | 中等 | 简单 | 简单 | 较陡峭 |
Home Assistant 的独特优势:
- 支持 1900+ 设备,打通所有品牌
- 完全本地化控制,响应快且稳定
- 隐私优先,数据完全自主
- 自动化引擎强大灵活
- 社区活跃,插件丰富
- 支持树莓派、Docker、NAS 等多种部署方式
工作原理
Home Assistant 采用模块化架构:
┌─────────────────────────────────────────────────────────────────┐
│ Home Assistant 核心 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 设备 │ │ 自动化 │ │ UI │ │ 集成 │ │
│ │ 状态 │ │ 引擎 │ │ 面板 │ │ 管理 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │ │
│ └──────────────┴──────────────┴──────────────┘ │
│ │ │
│ ┌─────────┴─────────┐ │
│ │ 事件总线 │ │
│ │ (Event Bus) │ │
│ └─────────┬─────────┘ │
└────────────────────────────┼────────────────────────────────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 设备 │ │ 设备 │ │ 设备 │
│ A │ │ B │ │ C │
│ (小米) │ │ (Yeelight)│ │ (飞利浦)│
└─────────┘ └─────────┘ └─────────┘
核心组件:
| 组件 | 说明 |
|---|---|
| 设备状态 | 管理所有设备状态 |
| 自动化引擎 | 根据触发条件执行动作 |
| UI 面板 | 可视化设备控制 |
| 事件总线 | 各组件间通信 |
| 集成 | 连接各种设备和服务 |
快速上手
Docker 部署(推荐)
系统要求:
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核 |
| 内存 | 2GB | 4GB+ |
| 存储 | 16GB | 32GB+ |
| 系统 | Linux | Linux/Docker |
创建目录:
mkdir -p ~/homeassistant && cd ~/homeassistant
创建 docker-compose.yml:
version: '3'
services:
homeassistant:
container_name: homeassistant
image: homeassistant/home-assistant:latest
restart: unless-stopped
ports:
- "8123:8123"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
environment:
- TZ=Asia/Shanghai
privileged: true
network_mode: host
启动服务:
# 启动服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 实时查看日志
docker-compose logs -f homeassistant
访问 Web 界面:
http://your-server-ip:8123
首次访问需要创建管理员账号
树莓派部署
官方镜像安装:
1. 下载树莓派镜像
https://github.com/home-assistant/operating-system/releases
2. 使用 Balena Etcher 烧录 SD 卡
3. 插入树莓派启动
4. 访问 http://homeassistant.local:8123
Docker 方式:
# 在树莓派上运行
docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-v /path/to/config:/config \
-v /run/dbus:/run/dbus:ro \
--network=host \
homeassistant/home-assistant:latest
初始配置
创建管理员账号:
1. 访问 http://your-server-ip:8123
2. 输入姓名、用户名、密码
3. 选择经纬度(用于日出日落)
4. 选择时区
5. 完成初始设置
配置中文界面:
1. 进入 Configuration → General
2. 点击 Configure
3. Language 选择 Chinese (Simplified)
4. 保存后界面自动切换中文
核心功能详解
1. 设备集成
热门集成:
| 品牌/平台 | 说明 | 配置难度 |
|---|---|---|
| 小米/米家 | 空调、灯具、传感器 | ⭐⭐ |
| Yeelight | 智能灯具 | ⭐ |
| 飞利浦 Hue | 智能灯具 | ⭐⭐ |
| 涂鸦 | 多种设备 | ⭐⭐ |
| IKEA Trådfri | 宜家智能灯具 | ⭐⭐ |
| HomeKit | 苹果设备 | ⭐⭐ |
| Google Assistant | 谷歌生态 | ⭐⭐ |
| MQTT | 通用物联网协议 | ⭐⭐⭐ |
添加集成:
步骤:
1. Configuration → Integrations
2. 点击"+ ADD INTEGRATION"
3. 选择要添加的设备/平台
4. 按照提示完成配置
5. 设备自动出现在 UI 面板
2. 自动化
自动化组成:
自动化 = 触发器 + 条件 + 动作
示例:当有人在门口移动时,如果天黑了就开灯
触发器:门口传感器检测到移动
条件:当前时间在日落之后
动作:打开客厅灯
自动化配置示例(YAML):
automation:
- alias: "晚间有人开灯"
trigger:
- platform: state
entity_id: binary_sensor.door_motion
to: 'on'
condition:
- condition: sun
after: sunset
action:
- service: light.turn_on
target:
entity_id: light.living_room
data:
brightness: 80
可视化自动化编辑器:
1. 进入 Configuration → Automations
2. 点击"+ CREATE AUTOMATION"
3. 使用可视化编辑器或 YAML 编辑
4. 设置触发器、条件、动作
5. 保存并启用
3. 场景和脚本
场景配置:
scene:
- name: "观影模式"
entities:
light.living_room:
state: on
brightness: 30
color_temp: 500
light.tv_back:
state: on
brightness: 10
media_player.tv:
state: on
source: HDMI 1
脚本配置:
script:
goodnight:
sequence:
- service: light.turn_off
target:
entity_id: light.bedroom
- service: climate.set_temperature
target:
entity_id: climate.bedroom_ac
data:
temperature: 26
- service: cover.close_cover
target:
entity_id: cover.bedroom_curtain
4. UI 面板
概览面板配置:
UI 组件类型:
- 卡片:设备控制、状态显示
- 区块:分组显示
- 视图:多个页面切换
常用卡片:
- 灯光卡片:控制灯具
- 空调卡片:温控设备
- 传感器卡片:显示数据
- 地图卡片:设备位置
- 能源卡片:用电统计
卡片配置示例:
type: entities
entities:
- light.living_room
- light.bedroom
- switch.ac
title: 灯光与空调
5. HACS 插件商店
HACS 安装:
1. 通过 SSH 连接到 Home Assistant
2. 下载 HACS:
wget -q -O - https://get.hacs.xyz | bash -
3. 重启 Home Assistant
4. 在集成页面添加 HACS
常用 HACS 插件:
| 插件 | 说明 |
|---|---|
| Mini Media Player | 美化媒体播放器 |
| Bar Card | 横向柱状图卡片 |
| Slider Button Card | 滑动按钮卡片 |
| Xiaomi Miot Auto | 米家设备集成 |
| HACS | 社区插件管理器 |
6. 能源管理
电费统计:
能源面板功能:
- 实时用电量显示
- 电费计算
- 历史用电曲线
- 设备用电排行
- 太阳能发电统计
配置电费:
homeassistant:
energy:
- supplier: 当地电力公司
tariff_data:
- name: "尖时"
price: 0.6
- name: "谷时"
price: 0.3
高级配置
添加设备
小米设备配置:
# configuration.yaml
xiaomi_aqara:
gateways:
- key: your_gateway_key
Yeelight 配置:
# configuration.yaml
yeelight:
devices:
192.168.1.100:
name: living_room
MQTT 配置:
# configuration.yaml
mqtt:
broker: 192.168.1.200
port: 1883
username: mqtt_user
password: mqtt_password
语音控制
配置 Alexa:
1. 在 Amazon Developer Console 创建 Alexa Skill
2. 获取 Alexa Smart Home API OAuth ID
3. 在 Home Assistant 配置:
# configuration.yaml
alexa:
smart_home:
entity_config:
light.living_room:
name: "客厅灯"
description: "客厅主灯"
配置 Google Assistant:
# configuration.yaml
google_assistant:
project_id: your-project-id
service_account: >
{...}
report_state: true
远程访问
配置 DuckDNS + Let's Encrypt:
# configuration.yaml
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
duckdns:
domain: your-subdomain
access_token: your-token
备份策略
自动备份脚本:
#!/bin/bash
# backup_homeassistant.sh
BACKUP_DIR=/path/to/backups
DATE=$(date +%Y%m%d%H%M%S)
# 停止容器
docker-compose stop
# 打包配置
tar -czvf $BACKUP_DIR/ha-config-$DATE.tar.gz ./config
# 启动容器
docker-compose start
# 删除 7 天前的备份
find $BACKUP_DIR -name "ha-config-*.tar.gz" -mtime +7 -delete
使用 Samba 备份:
# configuration.yaml
backup:
days_to_keep: 7
use_samba: true
smtp:
host: 192.168.1.100
username: backup
password: backup_password
常见问题
Q:Home Assistant 和 HomeBridge 有什么区别?
A:
- Home Assistant 是智能家居平台,支持多种协议
- HomeBridge 主要是将 HomeKit 设备桥接到其他平台
- Home Assistant 功能更全面,本地控制更强
- HomeBridge 专注于 HomeKit 兼容
Q:需要多少服务器资源?
A:
- 最低配置:树莓派 3B+(2GB 内存)
- 推荐配置:4GB+ 内存
- Docker 部署建议 4 核 4GB
- 设备越多需要的资源越多
Q:数据隐私有保障吗?
A:
- 所有数据存储在本地
- 不需要云端即可工作
- 可配置仅本地网络访问
- 支持禁用所有云服务
Q:支持哪些设备?
A:
- 官方支持 1900+ 集成
- 涵盖主流智能家居品牌
- 通过 HACS 安装社区插件
- 支持 ESP8266/ESP32 自制设备
Q:如何更新 Home Assistant?
A:
# Docker 更新
docker-compose pull
docker-compose up -d
# 或使用命令更新
ha supervisor update
ha core update
Q:支持多用户吗?
A:
- 支持添加家庭成员
- 可设置不同角色权限
- 支持访客模式
- 可以配置 PIN 码保护
适用场景
推荐使用:
- 全屋智能家居统一管理
- 多品牌设备互联互通
- 本地化控制保护隐私
- 复杂自动化场景
- 替代各品牌官方 App
- 树莓派/NAS 智能家居方案
不推荐使用:
- 仅有一两个简单设备
- 完全不懂技术的用户
- 需要厂商保修的场景
总结
Home Assistant 以"1900+ 设备支持 + 本地控制 + 隐私优先 + 强大自动化"的组合,成为了智能家居领域的最佳开源选择。
核心优势回顾:
- 1900+ 设备支持:打通所有品牌设备
- 本地控制:响应快,不依赖云端
- 隐私优先:数据完全自主
- 自动化强大:灵活的自动化规则引擎
- 可视化 UI:美观直观的控制面板
- 开源免费:无任何功能限制
对于追求全屋智能、品牌互通、隐私保护的智能家居爱好者,Home Assistant 是最佳选择。
本文由无边界科技技术团队分享,专注软件开发与技术解决方案。
官网:wubianj.com
© 版权归无边界科技所有,版权所有。