
图1:基于树莓派的智能家居控制中心,集成了多种智能设备。
本文介绍如何使用 Home Assistant (HA) 集成小米米家智能家居设备,实现基于 Prometheus Alertmanager 的自动化米家开关控制,并结合 HomeKit Bridge,实现 iPhone 位置感知驱动的自动化。
缘起
对于许多开发者而言,编码的魅力在于在数字世界中构建可控、可预测的逻辑系统。智能家居作为物联网(IoT)的重要应用,其理想状态应是开放与互联的。然而现实是,各大厂商往往倾向于构建封闭的生态系统,将用户锁定其中。
小米作为国内 IoT 领域的代表,其米家生态拥有丰富的设备选择,但系统的封闭性也限制了与其他平台或自定义程序的联动能力。Home Assistant 作为一个开源的智能家居中枢平台,恰好能解决这一问题,它能够整合不同品牌的设备,并提供开放的 API 用于创建复杂的自动化逻辑。
动机
笔者自入住新家以来,便逐步部署了以小米设备为主的智能家居系统。尽管使用了小米中枢网关,但其可编程性和开放接口仍然有限,例如无法简单地通过 webhook 接收事件或控制设备。早期虽有非官方的 hass-xiaomi-miot 插件,但配置较为繁琐。
直到发现小米官方推出了针对 Home Assistant 的 ha_xiaomi_home 插件,安装和未来维护都更有保障,这重新点燃了笔者深入折腾 Home Assistant 的热情。当前正值空档期,将专业知识学习与“折腾”爱好结合,探索如何用开放的智能家居平台整合现有设备,并接入像 LLM 这样的新技术,不失为一种兼顾学习与实用的方式。
需求分析
现状
家庭 Home Lab 中的一台 Raspberry Pi 运行着包括 Prometheus 在内的多种自托管服务,用于监控 Pi 本身的温度,并时常触发高温告警(约80°C)。在不额外加装散热风扇的前提下,笔者希望利用现有的智能家居设备实现自动化温控。
目标
- 通过 Home Assistant 集成小米米家设备,获得统一的开放控制接口。
- 基于开放接口,实现跨数据源的智能自动化,例如:
- Prometheus Alertmanager 告警时,自动开关连接风扇的小米智能插座。
- 利用人员离家状态作为事件源,触发如启动安防监控推送等自动化。
- 基于手机地理位置,实现如“到家前提前开启空气净化器”的场景。
方案设计

图2:基于Home Assistant的智能家居系统架构示意图,连接了小米设备、本地服务与苹果HomeKit。
核心思路是使用 Home Assistant 作为中枢:一方面通过官方插件接入小米设备;另一方面暴露 Webhook 等接口,接受来自 Prometheus 等外部系统的触发;同时,通过 HomeKit Bridge 将设备接入苹果生态,利用 iPhone 的传感器实现地理围栏功能。
实现
Prometheus 告警控制小米开关风扇
首先,需要在 Prometheus 中配置告警规则,例如当树莓派温度超过70°C持续2分钟时触发:
groups:
- name: node_exporter_alerts
rules:
- alert: HostPhysicalComponentTooHot
expr: node_hwmon_temp_celsius * on(chip,instance,job) group_left(chip_name) node_hwmon_chip_names > 70
for: 2m
labels:
severity: warning
annotations:
summary: Host physical component too hot (instance {{ $labels.instance }})
description: 🔥 Physical hardware {{ $labels.instance }}/{{ $labels.chip_name }}/{{ $labels.sensor }} too hot {{ $value }}°C
Alertmanager 需要配置将告警发送至 Home Assistant 的 Webhook。以下是一个简化的 Webhook 报文示例:
{
"receiver": "webhook_receiver",
"status": "firing",
"alerts": [ ... ],
"groupLabels": {},
"commonLabels": {
"alertname": "HostPhysicalComponentTooHot",
"instance": "192.168.1.68:9100",
"job": "192.168.16.130",
"severity": "warning"
},
"commonAnnotations": {...}
}
接下来,在 Home Assistant 中创建自动化。通过 UI 可以直观地设置触发条件(Webhook)、判断逻辑(解析告警状态与实例)和执行动作(控制小米智能开关)。

图3:Home Assistant自动化编辑器界面,用于配置由Prometheus告警触发的开关动作。
对应的自动化 YAML 配置如下:
alias: Toggle Switch When Alert Firing/Resolved
description: Handle Prometheus Alertmanager webhook
triggers:
- webhook_id: prometheus_alert
allowed_methods:
- POST
local_only: true
trigger: webhook
conditions: []
actions:
- variables:
alert_status: "{{ trigger.json.status }}"
alert_name: "{{ trigger.json.commonLabels.alertname }}"
alert_instance: "{{ trigger.json.commonLabels.instance }}"
- choose:
- conditions:
- condition: template
value_template: "{{ alert_name == 'HostPhysicalComponentTooHot' }}"
- condition: template
value_template: "{{ alert_instance == '192.168.1.68:9100' }}"
sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ alert_status == 'firing' }}"
sequence:
- target:
entity_id: switch.qmi_cn_9083433944_psv3_on_p_2_1
action: switch.turn_on
- conditions:
- condition: template
value_template: "{{ alert_status == 'resolved' }}"
sequence:
- target:
entity_id: switch.qmi_cn_9083433944_psv3_on_p_2_1
action: switch.turn_off
mode: single
这样,就实现了当指定树莓派温度过高时自动打开风扇散热,温度恢复后自动关闭的闭环 运维监控。
手机地理位置驱动的自动化
通过手机上的 Home Assistant App,我们可以将手机变成一个强大的传感器,实时获取 Wi-Fi SSID、精确地理位置等数据,用以驱动自动化。
一个简单的场景是:当手机离开家庭 Wi-Fi 网络一段时间后,触发某种通知或设备状态变更。

图4:在Home Assistant中设置基于手机Wi-Fi SSID变化的自动化触发条件。
对应的自动化配置示例如下:
alias: SSID
description: ""
triggers:
- trigger: state
entity_id:
- sensor.markiphone_ssid
from:
- MY_WIFI_SSID_Name
to: null
for:
hours: 0
minutes: 0
seconds: 10
conditions: []
actions:
- device_id: 01538aafdaf38599d12dd5c039aabb6b
domain: mobile_app
type: notify
message: SSID Updated 1
title: SSID Updated 2
mode: single

图5:自动化触发后,手机锁屏界面显示的自定义通知。
基于更精确的 GPS 地理位置,则可以实现更复杂的场景,例如在通勤路上提前开启家中的空调或空气净化器。
米家接入 Apple HomeKit 让 iPhone Siri 控制家电
Home Assistant 的另一个强大功能是充当桥梁。安装并配置 “HomeKit Bridge” 集成后,可以将已接入 Home Assistant 的小米设备(或其他任何支持设备)反向暴露给苹果的 HomeKit 生态系统。
这意味着,你可以在 iPhone 的“家庭”App 中直接控制这些设备,或者使用 Siri 进行语音控制。对于习惯苹果生态或多设备用户来说,这极大地提升了便利性和统一性。

图6:通过Home Assistant界面统一控制所有接入的智能设备。
结语
智能家居早已脱离“华而不实”的标签,在开放平台如 Home Assistant 的助力下,其可玩性和实用性都达到了新的高度。通过打通小米设备、本地监控系统(Prometheus)和移动端(iPhone),我们能够创造出高度定制化、真正服务于个人需求的自动化场景。
未来,AI 与智能家居的融合或许能带来更主动、更具情感交互的体验,例如基于家庭活动记忆的提醒或调解。虽然对各大平台的彻底开放不抱过高期望,但小米官方推出 Home Assistant 集成这样的举动,无疑是一个积极的信号。
技术人的乐趣,往往就在这不断的探索与整合之中,将不同系统连接,让它们协同工作,创造出独属于自己的高效数字生活。如果你也对这类 开发者 的 DIY 项目感兴趣,欢迎在云栈社区交流分享你的心得。