Home Assistant 是一个开源的智能家居自动化平台,允许用户通过本地控制集成和管理各种智能设备,提供高度定制化和隐私保护的家庭自动化解决方案。
MQTT 是一种轻量级的发布/订阅消息传输协议,专为低带宽、不稳定网络环境下的物联网设备通信而设计。
在 docker compose 上部署 Home Assistant
确保已安装 docker 👉:docker 和 docker-compose 安装、配置、卸载(windows+linux)-CSDN博客
参考文档: Linux - Home Assistant
创建目录 home_assistant,在目录中新建 docker-compose.yml,内容如下:
services:
homeassistant:
container_name: homeassistant
image: ghcr.nju.edu.cn/home-assistant/home-assistant:stable
# image: "ghcr.io/home-assistant/home-assistant:stable"
ports:
- "8123:8123"
volumes:
- ./config:/config
- ./etc/localtime:/etc/localtime:ro
- ./run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
# network_mode: host # host 模式下无法访问 dashboard
在目录下通过命令启动 docker-compose:
docker compose up -d
在 Home Assistant 集成 MQTT

Home Assistant 在 MQTT 中相当于一个特殊的设备,它实际上监控着其他的 IoT 设备。
了解 MQTT:MQTT 核心概念 | EMQX文档
HA 通过订阅一些特定主题(假如是 /online
)的信息来获取其他设备的状态,而这些信息当然是由其他 IoT 设备发布的。用户可以设定一个 /open
主题,然后通过 HA 发布一个该主题的信息来启动某些设备。