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 发布一个该主题的信息来启动某些设备。

推荐阅读: 智能家居之旅,第二站:设备接入HomeAssistant的方法 » 智能家居技术论坛

文档(不推荐):MQTT - Home Assistant — MQTT - Home Assistant