入门之后还差什么

入门篇讲了怎么接设备、怎么写第一条"有人来就开灯"的自动化。真用起来你会发现:这条自动化太死板——晚上 12 点有人也开灯、白天光线够也开灯、客人来也触发。进阶要解决的就是"怎么让自动化更聪明":加条件、加延时、加状态判断、跨设备联动。

自动化的本质是"状态机":谁触发、在什么条件下、做什么动作、持续多久。把这四件事写清楚,自动化就稳了。
HA 进阶配图:中央发光节点,周围圆角方块以光线连线组成流程图
节点 + 连线 = 一张自动化地图

这篇从触发、条件、Node-RED 一直讲到 Blueprint 分享。

自动化的五种触发方式

HA 自动化的 trigger(触发)有这几类:

  • state实体状态变化(人来了、门开了)。
  • time定时(每天 22 点关窗帘)。
  • template模板触发(当客厅温度 >28 且有人)。
  • event事件触发(手机 App 通知、语音助手)。
  • webhook外部 HTTP 调用。
automation:
  - alias: 人来开灯
    trigger:
      - platform: state
        entity_id: binary_sensor.hall_motion
        to: "on"

条件与模板

trigger 是"什么时候",condition 是"什么情况下才执行"。比如上面"人来开灯"加两个条件:

    condition:
      - condition: state
        entity_id: sun.sun
        state: "below_horizon"   # 只在天黑后
      - condition: numeric_state
        entity_id: sensor.hall_illuminance
        below: 50                 # 且光线够暗
    action:
      - service: light.turn_on
        target: { entity_id: light.hall }

模板(template)Jinja 语法可以在自动化里读任意实体状态,做复杂判断。

Node-RED 入门

原生 YAML 自动化适合简单规则,复杂流程(多分支、循环、调用 API)就吃力了。Node-RED 是 HA 官方推荐的可视化流程编辑器:拖节点、连连线,比写 YAML 直观。

// 典型流程:
// [MQTT 入] -> [HA 节点:读客厅温度] -> [Switch 节点:>28?]
//    是 -> [HA 节点:开空调]
//    否 -> [HA 节点:关空调]
//
// Node-RED 节点即插即用,调试时可以看到每步的 msg 数据
什么时候用 Node-RED
  • 多分支逻辑超过 3 个 if。
  • 调用外部 API天气、股票、Webhook。
  • 复杂数据转换MQTT 报文解析。
  • 可视化调试看到每一步数据流。