预测 / 能耗 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_room

3.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: 22

3.3.3 进阶派 — 加日历 / 钉钉 / 12306

日历同步:Google Calendar(platform: google,OAuth 凭据) / 飞书日历 用「飞书 webhook → HA event_type」,也比 直接 OAuth 简单。

钉钉打卡:

  1. 钉钉群 → 设置 → 智能群助手 → 群机器人 → 自定义 → copy webhook
  2. n8n 或 Node-RED 接 webhook 转 HA event_type: dingtalk_clock_in
  3. 在 HA 自动化里读这个 event → 推断”今天是否在工位”

12306 出行:

  • 12306 本身不开放 webhook,用邮箱 / 12306 App 短信转发
  • 简单做法:订阅一个”火车票提醒”公众号 → 推到 Bark → HA 监听 webhook

美团外卖时段:

  1. 美团 App → 个人中心 → 订单提醒 → 加邮箱转发
  2. 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_room

3.4 购买器材清单(2026 H1,淘宝/京东)

原则:全用 Zigbee 设备 + Z2M;能用国产平替就用国产平替;不要混入 Wi-Fi 插座(数量多了会拖慢 Wi-Fi)。

3.4.1 保守派 BOM(< ¥600)

型号(淘宝 / 京东搜)个数单价小计
Zigbee 协调器SONOFF Zigbee 3.0 USB Dongle Plus-P1¥80¥80
客厅人体感应Aqara RTCZ…Q(绿米)1¥80¥80
主卧人体感应Aqara RTCZ…Q1¥80¥80
大门门磁Aqara MCCGQ11LM1¥50¥50
智能插座 ×2Aqara ZNCZ…M(国产)2¥60¥120
小计~¥410

3.4.2 平衡派 BOM(< ¥1500)

在保守派基础上,加 HA Companion App(免费)+ iCloud Find My(免费),以及更多传感器:

加件型号个数单价小计
智能插座(其余主灯回路)Aqara ZNCZ…M4¥60¥240
卫生间门窗 ×2Aqara MCCGQ11LM2¥50¥100
卫生间人体 ×2Aqara RTCZ…Q2¥80¥160
厨房人体Aqara RTCZ…Q1¥80¥80
小计(平衡派总)~¥990

3.4.3 进阶派 BOM(< ¥3500)

再加环境感知 + 全屋计量 + 应防保护:

加件型号个数单价小计
室内温湿度 ×3Aqara WSDCGQ11LM3¥80¥240
室内光照Aqara GZCGQ11LM1¥80¥80
TVOC 空气质量Aqara KTVOC01DQ1¥250¥250
水浸传感器(厨房)Aqara SJCGQ11LM1¥80¥80
中央电表(CT)PZEM-004T + ESP321¥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可视化编程,自动化复杂
AppDaemonPython 写 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 天)

  1. 第 30 天 — 部署 Z2M + 智能插座 4 个 + 主入口 sensor;HA Recorder 兜住所有变动
  2. 第 60 天 — 把数据导到 InfluxDB,Grafana 出 4 个面板:总能耗 / 实时功率 / 日用电 / 异常
  3. 第 90 天 — 上 HA Bayesian + PredictForLight;调一个 ML 模型(Prophet)做暖通预热

9. 引用