# Analytics snippet placeholder — HearthNodes (gatherer.top) # Paste the measurement snippet here (server.js inlines any content that contains # a markup tag into on every page). No GA4 property is assigned to this # site yet, so leave this file as comments only and the build emits no tracking # code.
HearthNodesgatherer.top 已发布 27/28 EN 中文

在花粉计数飙升前抢先关窗的花粉锁定

结合本地花粉传感器与 3 小时预报,自动化在预测峰值到来前 40 分钟关闭窗户,把通风交给 HEPA 送风机组,待室外计数降至 20 粒/m³ 以下并持续 30 分钟后再开窗。

协议 · wifi 延迟 · 2400000 ms 供电 · mains 发布 · 2026-11-01 3 devices
自动化 YAML climate-pollen-window-lock.yaml
# HearthNodes recipe 15 - pollen lockout
alias: "Climate - pollen lockout with lead time"
id: hn_climate_pollen_lockout
description: "Close 40 minutes before a predicted spike, HEPA supplies positive pressure"
mode: restart
max_exceeded: silent

trigger:
  - platform: numeric_state
    entity_id: sensor.outdoor_pollen_grains
    above: 50
  - platform: numeric_state
    entity_id: sensor.pollen_forecast_3h_peak
    above: 80
  - platform: event
    event_type: mobile_app_notification_action
    event_data:
      action: HAY_FEVER_BUTTON

variables:
  all_windows: "{{ states.cover | selectattr('entity_id','search','_window$') | map(attribute='entity_id') | list }}"
  saved_positions: "{{ dict(all_windows | zip(all_windows | map('state_attr','current_position'))) }}"

condition:
  - condition: state
    entity_id: input_boolean.pollen_sensitivity
    state: "on"
  - condition: numeric_state
    entity_id: sensor.hepa_filter_life
    above: 10

action:
  - service: input_text.set_value
    target:
      entity_id: input_text.window_positions_before_lockout
    data:
      value: "{{ saved_positions | to_json }}"
  - service: cover.close_cover
    target:
      entity_id: "{{ all_windows }}"
  - service: fan.turn_on
    target:
      entity_id: fan.hepa_supply
    data:
      percentage: 60
  - service: input_boolean.turn_on
    target:
      entity_id: input_boolean.pollen_lockout
  - wait_for_trigger:
      - platform: numeric_state
        entity_id: sensor.outdoor_pollen_grains
        below: 20
        for: "00:30:00"
    timeout: "24:00:00"
    continue_on_timeout: true
  - service: script.restore_window_positions
    data:
      saved: "{{ states('input_text.window_positions_before_lockout') }}"
      quiet_hours_defer: true

# Pollen sensor offline -> falls back to the coarser cloud forecast rather than
# dropping the lockout. HEPA exhausted -> partial unlock, bedrooms only, because
# a flat with neither ventilation nor filtration is worse than pollen.
触发器 · numeric_state

sensor.outdoor_pollen_grains

室外花粉计数超过 50 粒/m³,或 3 小时预报显示 40 分钟内将出现高于 80 粒/m³ 的峰值。

在花粉计数飙升前抢先关窗的花粉锁定 topology

分步说明

  1. cover.*_window关闭所有由执行器控制的窗户;手动窗不做处理,但发送通知并明确列出是哪几扇。 set_cover_position · 0
  2. fan.hepa_supply把 HEPA 送风机组切到中档,让全屋保持正压,花粉就不会从缝隙渗入。 turn_on · speed medium · filter class H13
  3. cover.*_window重新开启时恢复到锁定前记录的位置,而不是固定值。 return to previous position when outdoor < 20 grains/m³ for 30 min
  4. input_boolean.pollen_lockout用单个布尔量表示锁定状态,让其他配方(卧室夜间降温)直接让位,而不必各自实现一套检查。 keep on until 30 quiet minutes
分步说明
在峰值之前锁定,而不是峰值之中

已经进入室内的花粉会在空气中悬浮 30–60 分钟。在计数达到峰值时才关窗,全屋其实已经「装满」了。预报给出的 40 分钟提前量,正是舒适下午与症状发作下午之间的差别。

正压,而不只是过滤

循环式净化器清洁了空气,但对从窗缝渗入的 0.4 次/小时未过滤空气毫无办法。让 HEPA 送风机组以中档运行,可把全屋维持在 +5 Pa,从而让这股渗入气流反向。对花粉症家庭来说,这是最有效的一步。

恢复之前的位置,而不是全开

解除锁定后把所有窗都开到最大,会丢弃全家人此前设定好的百叶与窗户位置。锁定前记录位置、解除后恢复;只需四行代码,就能消掉一整类烦人问题。

硬件

型号协议连接在本链路中的作用
Laser particle counter configured for pollen-sized fractions wifi 无线 上报 PM2.5 与 10–40 µm 粒径段;粗粒径段才是与花粉相关、而非与交通相关的部分。
HEPA supply unit with a motorised damper wifi 有线 维持正压;循环式净化器无法像正压那样把花粉挡在漏风的公寓之外。
Window actuators (same as the night-cooling recipe) wifi 有线 与夜间降温配方共用硬件;锁定布尔量是两者之间的仲裁者。

失效时怎么办

如果花粉传感器离线,自动化回退到云端预报——精度更粗,但锁定仍能工作;通知会说明使用的是哪个来源。如果 HEPA 机组停机或滤网耗尽,锁定会部分解除——只保持卧室窗关闭,因为一个既无通风又无过滤的公寓比花粉更糟。

同一触发源的配方

条款 仅供参考。这些配方会控制市电、水路与物理门禁。当地电气与给排水规范、熔断与隔离措施、以及每一处失效保护的实际测试,都需要你自己负责。本页内容不构成专业工程、法律或安全建议。