预测 / 能耗 AI · 总论
让 HA 学习你的作息,预先调灯 / 暖通 / 热水器,而不是”人走来开开关”。同时在电费上玩分时电价,把夜间跑批/储热/储能任务智能下移到谷时。
1. 两块互相独立,但共用一个数据底座
[HA Energy + Sensor 历史]
|
+------------------+------------------+
| |
[角度 1. 作息 / 事件学习] [角度 2. 能耗预测与优化]
| |
presence + 用户历史 Grid import/export, 分时电价
"周一 7:30 出门" "22:30 关客厅灯" "洗衣 0.5 kWh → 谷时跑"
| |
HA 自动化 + 触发 Predbat / InfluxDB + Grafana
核心结论:
- 在 2026,角度 1 已经能跑得很踏实(HA 加机器可学组件 + 个人脚本即可)
- 角度 2 需要额外硬件(智能插座 / 电表 + 分时电价订阅)
- 数据底座 = HA Recorder + InfluxDB 长期存储 + Grafana 看板
2. 为什么用 AI 而不是”硬时间表”
HA 默认可以写 cron 自动化(每天 22:30 关灯),为什么需要 AI?
| 经典 cron 方案 | AI 学习方案 |
|---|---|
| 固定时间触发 | 行为模式触发(周一去了图书馆”今天出门早) |
| 异常事件全部漏(孩子临时回家 / 加班) | 异常事件被检测到(presence)再补 trigger |
| 重复写、难维护 | 自动调参,可解释的”为什么”提示 |
| 单房间单设备 | 跨设备联动的”复合意图” |
但是 — AI 不是银弹:HA cron + presence + sun-state 已经覆盖 80% 用例。AI 的真正价值在”用户行为有不可预测波动时”。
3. 学习谁、根据什么
3.1 行为数据
- 传感器:door / window / motion / occupancy
- 可穿戴:Apple Watch / 小米手环 / 国行 Android 手机 GPS(presence)
- 日历:Google Calendar / Outlook / 飞书日历 event(已知在家 / 出门时段)— QQ 邮箱日历 也可用
- 手动动作历史:用户开关灯的时点(learn preferences)
- 国产设备数据源:小米米家 HA 集成 / Aqara HA 集成 / 易微联 HA 集成
- ⭐ 绿米用户的本地化捷径:Aqara 传感器(人体 / 门磁 / 温湿 / 水浸 / TVOC)走 Z2M 接管(详见 home-ai-quickstart §2.0.1),所有事件毫秒级上 HA,是作息学习的最佳数据源
3.1.bis 国内可用的第三方接入
- Apple iCloud(国行 iPhone 也有 Find My,定位精度 5-20m)
- 小米云(用 miio / 小米账号 API)
- 钉钉打卡(如果上班打卡用钉钉,可以推断你周一到周五是否在工位)
- 12306 出行(如果经常出远门,订票后可推 12 小时回家/出门提示)
- 美团/饿了么外卖时段(如果中午 11:45 准时下单,意味着你在家)
3.2 隐私三档(看你愿意采什么)
底线:摄像头 + 录音永远不上 AI 学习,只用于人感(presence)与异常警报。
保守派(不存任何 GPS / 日历 / 通讯录)
| 项 | 内容 |
|---|---|
| 采集 | 传感器 + 手动动作历史 |
| 不采集 | GPS / 可穿戴 / 日历 / 钉钉 / 任何云依赖 |
| 学习能力 | 约 70% — 作息模式 / 暖通预热 / 异常事件 |
| 典型应用 | ”日落 ± 30 分钟开灯”、“深夜没人自动关空调” |
| 适合 | 对隐私极度敏感的家庭、有老人 / 小孩不想被追踪 |
平衡派(标准推荐,大多数家庭选这个)
| 项 | 内容 |
|---|---|
| 采集 | 保守派 + presence(本地)+ iCloud Find My(端到端加密) |
| 不采集 | 云日历同步、钉钉、12306、外卖 |
| 学习能力 | 约 88% — 出门 / 在家状态触发”外出模式” |
| 典型应用 | 出门自动关全部灯 / 暖通,回家前 30 分钟预热 |
| 适合 | 2-3 口之家 |
进阶派(全栈,牺牲一部分隐私换体验)
| 项 | 内容 |
|---|---|
| 采集 | 平衡派 + 日历同步 + 钉钉打卡 + 12306 + 外卖时段 |
| 不采集 | 录音 / 摄像头人脸 / 对话内容(默认都不开) |
| 学习能力 | 约 95% — 提前预测你哪天不在家、提前开热水器 |
| 典型应用 | 你订了高铁 19 点回家,17:30 自动预热空调 |
| 适合 | 独居、合租户、单身高知、想偷懒不想手动开热水器的 |
3.3 数据采集操作步骤(分档)
所有 yaml 写到
~/hass/config/configuration.yaml,改完 → Developer Tools → Restart。
3.3.1 保守派 — 3 步上手
步骤 1:HA → Developer Tools → Services → 找 light.toggle 测试设备 → 看到绿灯 → OK。
步骤 2:装 Z2M + 几个传感器(详见 home-ai-quickstart §2)。
步骤 3:configuration.yaml 加:
automation:
- alias: "客厅日落开灯"
trigger:
platform: sun
event: sunset
offset: "-00:30:00"
action:
service: light.turn_on
target:
entity_id: light.living_room_main
data:
brightness: 200
kelvin: 2700 # 暖色调晚间
- alias: "深夜无人自动关空调"
trigger:
platform: numeric_state
entity_id: sensor.living_room_motion
below: 1
for:
minutes: 30
condition:
condition: time
after: "23:00:00"
before: "06:00:00"
action:
service: climate.turn_off
target:
entity_id: climate.living_room3.3.2 平衡派 — 保守派基础上加 presence
步骤 1:装 HA Companion App 到你的手机(iOS / Android 都有)→ 登录 HA → 勾选”位置共享”。
步骤 2:iPhone 还要去 设置 → 隐私 → 定位服务 → Home Assistant Companion → 始终,且勾选”精确位置”。
步骤 3:configuration.yaml 加:
person:
- name: 你
id: you
device_trackers:
- device_tracker.your_iphone
- device_tracker.your_apple_watch # 可选
# 离家 → 关全部灯 + 暖通待机(空调不关,断电 = 重启慢)
automation:
- alias: "全家出门自动节能"
trigger:
platform: state
entity_id: person.you
from: "home"
to: "not_home"
for:
minutes: 5
action:
- service: light.turn_off
target:
entity_id: all
- service: climate.set_hvac_mode
target:
entity_id: climate.living_room
data:
hvac_mode: "off"
- alias: "回家前自动预热"
trigger:
platform: numeric_state
entity_id: proximity.you_home
below: 2000 # 2km 内
action:
service: climate.turn_on
target:
entity_id: climate.living_room
data:
hvac_mode: heat
temperature: 223.3.3 进阶派 — 加日历 / 钉钉 / 12306
日历同步:Google Calendar(platform: google,OAuth 凭据) / 飞书日历 用「飞书 webhook → HA event_type」,也比 直接 OAuth 简单。
钉钉打卡:
- 钉钉群 → 设置 → 智能群助手 → 群机器人 → 自定义 → copy webhook
- 用
n8n或 Node-RED 接 webhook 转 HAevent_type: dingtalk_clock_in - 在 HA 自动化里读这个 event → 推断”今天是否在工位”
12306 出行:
- 12306 本身不开放 webhook,用邮箱 / 12306 App 短信转发
- 简单做法:订阅一个”火车票提醒”公众号 → 推到 Bark → HA 监听 webhook
美团外卖时段:
- 美团 App → 个人中心 → 订单提醒 → 加邮箱转发
- HA 邮件 integration 监听到 11:45 / 18:00 的”订单成功”邮件 → 推断”中午在家”
configuration.yaml:
calendar:
- platform: google
client_id: !secret google_client_id
client_secret: !secret google_client_secret
calendar_id: primary
# 通过 webhook 推过来 -> HA event
automation:
- alias: "日历显示外出就关暖通"
trigger:
platform: calendar
event: start
entity_id: calendar.primary
offset: "00:30:00"
condition:
condition: state
entity_id: person.you
state: "not_home"
action:
service: climate.turn_off
target:
entity_id: climate.living_room3.4 购买器材清单(2026 H1,淘宝/京东)
原则:全用 Zigbee 设备 + Z2M;能用国产平替就用国产平替;不要混入 Wi-Fi 插座(数量多了会拖慢 Wi-Fi)。
3.4.1 保守派 BOM(< ¥600)
| 件 | 型号(淘宝 / 京东搜) | 个数 | 单价 | 小计 |
|---|---|---|---|---|
| Zigbee 协调器 | SONOFF Zigbee 3.0 USB Dongle Plus-P | 1 | ¥80 | ¥80 |
| 客厅人体感应 | Aqara RTCZ…Q(绿米) | 1 | ¥80 | ¥80 |
| 主卧人体感应 | Aqara RTCZ…Q | 1 | ¥80 | ¥80 |
| 大门门磁 | Aqara MCCGQ11LM | 1 | ¥50 | ¥50 |
| 智能插座 ×2 | Aqara ZNCZ…M(国产) | 2 | ¥60 | ¥120 |
| 小计 | ~¥410 |
3.4.2 平衡派 BOM(< ¥1500)
在保守派基础上,加 HA Companion App(免费)+ iCloud Find My(免费),以及更多传感器:
| 加件 | 型号 | 个数 | 单价 | 小计 |
|---|---|---|---|---|
| 智能插座(其余主灯回路) | Aqara ZNCZ…M | 4 | ¥60 | ¥240 |
| 卫生间门窗 ×2 | Aqara MCCGQ11LM | 2 | ¥50 | ¥100 |
| 卫生间人体 ×2 | Aqara RTCZ…Q | 2 | ¥80 | ¥160 |
| 厨房人体 | Aqara RTCZ…Q | 1 | ¥80 | ¥80 |
| 小计(平衡派总) | ~¥990 |
3.4.3 进阶派 BOM(< ¥3500)
再加环境感知 + 全屋计量 + 应防保护:
| 加件 | 型号 | 个数 | 单价 | 小计 |
|---|---|---|---|---|
| 室内温湿度 ×3 | Aqara WSDCGQ11LM | 3 | ¥80 | ¥240 |
| 室内光照 | Aqara GZCGQ11LM | 1 | ¥80 | ¥80 |
| TVOC 空气质量 | Aqara KTVOC01DQ | 1 | ¥250 | ¥250 |
| 水浸传感器(厨房) | Aqara SJCGQ11LM | 1 | ¥80 | ¥80 |
| 中央电表(CT) | PZEM-004T + ESP32 | 1 | ¥180 | ¥180 |
| 大电流互感器(主入户) | 国产 + 5% 精度 | 1 | ¥150 | ¥150 |
| 全屋窗帘电机 | Aqara ZNCLDJ11LM(按窗数) | 4 | ¥380 | ¥1520 |
| 小计(进阶派总) | ~¥3490 |
进阶派的窗帘电机是最大开销,如果家里已经有现成电动窗帘,可以省下。
3.5 关键技术(2026 现实清单)
- HA Presence Detection:内置整合手机 GPS / iCloud / Bluetooth
- 万能 AppDaemon:HA 的 Python add-on,装 trigger / action 自动化
- HA Bayesian Sensor:基于历史概率的”我现在在家吗”概率传感器
- HA Templating:Jinja2 模板做条件判断
- Predictive ML(本人自托管):
ha-predcalc(HA 官方预热计算器)- 第三方:Scheduler Component / Predict For Light(基于太阳预测 / 时段的灯预测)
- 集成 Node-RED + 自训练 model
3.6 工具选择
| 工具 | 适用 |
|---|---|
| HA Automations + Templates | 默认路径,80% 用例 |
| Node-RED | 可视化编程,自动化复杂 |
| AppDaemon | Python 写 automation,debug 易 |
| PredictForLight | 灯预测(基于用户历史开灯时段 + 节气) |
| HA Bayesian Sensor | 不确定事件(在被检测窗口里我是不是”在家”) |
| ML 训练(regression / time-series) | 在 InfluxDB 长期数据上跑 Prophet / sklearn |
4. 暖通(HVAC)预测 — 与 NAS 教程里的 HVAC 知识碰撞
如果你之前看了 nas-playbook 知道 Immich / 自己写了一个小 HA add-on,你也可以让 ML 帮你预测暖通:
- 收集历史:室内温湿度 / 设定温度 / 室外温度 / 暖气工况
- 训练 scikit-learn 简单回归:“现在设定 21°C,室外 -5°C,要多久达到?”(数据足够后 1 天就能 train)
- 把模型导出 PMML,放 HA 自定义 Sensor
⏳ 未核:HA 自带的”Blueprint”框架是否能直接接 PMML 模型 / 自训练 Scikit-learn 模型;研究内未拿到现成实践蓝图。
5. 数据采集 — 没有传感器就是空气
做”AI 学你”的前置成本 = 传感。下表给一个 3 档推荐(均为国内淘宝/京东可买到):
| 档 | 设备 | 价位 |
|---|---|---|
| 最小档 | 几个 Zigbee 智能插座(小米 / Aqara / 涂鸦 / Nous)+ 主入口接触传感器 | ¥200-500 |
| 标准档 | 上面 + 12 个插座 + 6 个门窗 + 4 个 motion | ¥1000-2000 |
| 完整档 | 上面 + 室内外温湿度 + 照明 + 空气质量 + 电表 + 水表 | ¥2500-5000 |
Zigbee 推荐 Z2M(Zigbee2MQTT),不绑死单一厂商品牌。国产 Zigbee 设备要注意”米家/Zigbee 2MQTT”有时需要重烧固件,社区里 “tuya-convert” 项目通用。
6. 与上面 NAS 教程的对接
预测 / 能耗 AI 对存储和算力都有要求,所以这部分躺回 NAS:
- 数据存储:InfluxDB 容器 + 1-2 年历史(见 home-ai-energy)
- ML 训练:PyOD / Prophet / 自训练 Scikit-learn 短期任务用 N100 跑
- 推理服务(实时):HA 加 trigger 时用 NAS 上 Ollama(
{{pred_energy_next_hour}}这类 Sensor) - 告警通道:Grafana → webhook → Telegram / Bark / IMAP
7. 什么时候不该做
| 你的情况 | 建议 |
|---|---|
| 你家只有 3 个 Zigbee 设备 | 不用 AI,直接 HA Automation |
| 你经常不在家 | AI 模型没数据;要做先攒 1-2 个月数据 |
| 你不接受采集位置 + 行为数据 | AI 学不下来,老实不做好 |
| 你想用 ML 实现”自动关空调” | ML 模型解释性差,出错代价高,先用 cron + 温度阈值 |
8. 落地路径(30-60-90 天)
- 第 30 天 — 部署 Z2M + 智能插座 4 个 + 主入口 sensor;HA Recorder 兜住所有变动
- 第 60 天 — 把数据导到 InfluxDB,Grafana 出 4 个面板:总能耗 / 实时功率 / 日用电 / 异常
- 第 90 天 — 上 HA Bayesian + PredictForLight;调一个 ML 模型(Prophet)做暖通预热
9. 引用
- ✓ https://www.home-assistant.io/docs/energy/ — Energy Dashboard 一手文档
- ✓ https://www.home-assistant.io/integrations/influxdb/ — InfluxDB 集成
- ✓ https://github.com/springfall/predbat — 404(在 web search 期间曾检测过;Predbat 在 GitHub 上的可访问性待人工核)
- ⏳ 中文社区具体案例(NAS 玩家走 HA 自动化的) = 未深挖