# 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 中文

风暴储备:预先充满电池并让非必要负载让路

检测到大风预警或电网频率偏移时,电池充到 95 %,非必要负载让路,并把备用下限从 20 % 提到 60 %,使 6 小时停电不会让房子陷入黑暗。

协议 · matter 延迟 · 300000 ms 供电 · mains 发布 · 2026-11-04 3 devices
自动化 YAML energy-storm-battery-reserve.yaml
# HearthNodes recipe 20 - storm reserve
alias: "Energy - storm reserve arms and sheds"
id: hn_energy_storm_reserve
description: "Raise the reserve floor to 60 percent, shed discretionary loads"
mode: restart
max_exceeded: silent

trigger:
  - platform: state
    entity_id: binary_sensor.storm_warning
    to: "on"
  - platform: numeric_state
    entity_id: sensor.grid_frequency
    below: 49.8
    for: "00:00:30"
    id: freq_low
  - platform: numeric_state
    entity_id: sensor.grid_frequency
    above: 50.2
    for: "00:00:30"
    id: freq_high

variables:
  reserve_floor_pct: 60
  charge_target_pct: 95
  shed_order:
    - switch.pool_pump
    - number.ev_charger_current
    - switch.immersion_element
    - climate.heating

condition:
  - condition: state
    entity_id: binary_sensor.grid_connected
    state: "on"
  - condition: numeric_state
    entity_id: sensor.battery_soc
    above: 30
  - condition: state
    entity_id: input_boolean.inverter_maintenance
    state: "off"

action:
  - service: number.set_value
    target:
      entity_id: number.battery_reserve_floor
    data:
      value: "{{ reserve_floor_pct }}"
  - service: switch.turn_off
    target:
      entity_id:
        - switch.pool_pump
        - switch.immersion_element
  - service: number.set_value
    target:
      entity_id: number.ev_charger_current
    data:
      value: 6
  - service: switch.turn_on
    target:
      entity_id: switch.battery_grid_charge
    data:
      power_w: 3000
      until_soc: "{{ charge_target_pct }}"
  - service: light.turn_on
    target:
      entity_id:
        - light.stair_emergency
        - light.hall_emergency
    data:
      brightness_pct: 15
  - service: script.arm_emergency_circuit
    data:
      circuits: [light.stair_emergency, light.hall_emergency]

# Disarm when the warning expires and either 24 hours have passed or the grid
# frequency has been nominal for 6 hours. A brief frequency dip alone must not
# change the house's operating mode for a day, hence the 30 second confirmation.
触发器 · state

binary_sensor.storm_warning

本地区发布恶劣天气预警,或电网频率超出 49.8–50.2 Hz 并持续 30 秒以上。

风暴储备:预先充满电池并让非必要负载让路 topology

分步说明

  1. number.battery_reserve_floor把备用下限从 20 % 提到 60 %,使逆变器在下限达成之前充电而非放电。 set 60 %
  2. switch.water_heater · number.ev_charger_current · switch.pool_pump让浸没加热器、电动车充电与泳池泵让路——这三项是在停电时最快耗空电池的负载。 shed
  3. switch.battery_grid_charge在便宜的夜间窗口以 3 kW 从电网充电,而不是等第二天早上的光伏。 turn_on · 3 kW until 95 %
  4. light.stair_emergency · light.hall_emergency将应急照明回路置为布防,使电网断电时它由电池后备回路供电。 arm · on battery only
分步说明
提高下限,而不只是充满

充到 95 % 却把下限留在 20 %,意味着太阳一落山房子就开始放电,等 22:00 风暴来临时电池又回到了 40 %。把下限提到 60 % 才是真正把电量留住的办法,它也能避免之后不必要的深度放电。

按固定顺序让路,并把它写下来

比预期更长的停电需要一个既定顺序,而不是临场发挥。先泳池泵(无影响),再电动车,再浸没加热器,再供暖,绝不切冰箱、冷柜、网络或医疗回路。把这份顺序写成家人能读到的文档。

每季度刻意测一次储备

把下限设为 60 %,断开电网,看哪些回路真的还在供电。每个季度都会发现有新设备被接到了后备回路上、而它本不该在那里——新冰柜、第二台交换机、电暖器。从未测试过的储备只是猜测。

硬件

型号协议连接在本链路中的作用
Hybrid inverter with a settable reserve floor matter 有线 备用下限是本配方的关键杠杆;不支持设置下限的逆变器根本无法实现本配方。
Grid frequency sensor (or inverter-reported frequency) modbus · wired 有线 频率偏移是电网承压的早期信号,通常比该区域供电中断早 30–90 秒。
Severe weather warning feed wifi 有线 为大风与洪水预警提供 6–12 小时的提前量,比仅靠频率偏移有用得多。

失效时怎么办

如果天气数据源不可用,基于频率的触发仍会启用储备,只是提前量更少。如果风暴到来前电池没能达到 60 % 下限,配方会按既定顺序让负载让路——泳池泵、电动车、浸没加热器、供暖——让关键回路尽可能长时间保持供电。

同一触发源的配方

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