管路防冻:在水温降到 2 °C 前开启远端细流并预警
最暴露管段上的管夹式温度传感器在 4 °C 预警、在 2 °C 时开启 0.4 L/min 的细流——足以让 15 毫米铜管在 -8 °C 的夜里保持流动,而整夜浪费不超过 12 升水。
# HearthNodes recipe 23 - pipe freeze guard
alias: "Water - freeze guard trickles the far tap"
id: hn_water_freeze_trickle
description: "Warn at 4 C, trickle at 2 C, close after 15 minutes above 6 C"
mode: restart
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.exposed_pipe_temperature
below: 4
id: warn
- platform: numeric_state
entity_id: sensor.exposed_pipe_temperature
below: 2
id: trickle
- platform: numeric_state
entity_id: sensor.exposed_pipe_temperature
above: 6
for: "00:15:00"
id: release
variables:
tap: valve.far_tap
trickle_lpm: 0.4
max_runtime_h: 10
wind_chill: >-
{{ states('sensor.outdoor_temperature') | float(10)
- (states('sensor.wind_speed_kmh') | float(0) * 0.12) }}
condition:
- condition: template
value_template: >-
{{ states('sensor.outdoor_temperature') | float(10) < 1
or states('sensor.forecast_overnight_min') | float(10) < -3 }}
- condition: template
value_template: >-
{{ is_state('person.primary','home') or is_state('input_boolean.away_freeze_guard','on') }}
- condition: template
value_template: >-
{{ (now() - states.sensor.exposed_pipe_temperature.last_updated).total_seconds() < 300 }}
action:
- choose:
- conditions:
- condition: trigger
id: warn
sequence:
- service: notify.mobile_app
data:
title: "Freeze risk"
message: >-
Exposed run at {{ states('sensor.exposed_pipe_temperature') }} C,
wind chill {{ wind_chill | round(1) }} C. Trickle arms at 2 C.
- conditions:
- condition: trigger
id: trickle
sequence:
- service: valve.open_valve
target:
entity_id: "{{ tap }}"
data:
flow_limit_lpm: "{{ trickle_lpm }}"
- wait_for_trigger:
- platform: numeric_state
entity_id: sensor.exposed_pipe_temperature
above: 6
for: "00:15:00"
timeout: "{{ max_runtime_h }}:00:00"
continue_on_timeout: true
- service: valve.close_valve
target:
entity_id: "{{ tap }}"
- conditions:
- condition: trigger
id: release
sequence:
- service: valve.close_valve
target:
entity_id: "{{ tap }}"
# Pipe clamp failure -> fall back to outdoor below -2 C with wind above 15 km/h.
# Tap fails to open -> escalate the notification with instructions to open a tap
# by hand. Tap fails to close -> 30 minute maximum runtime plus a notification.
触发器 · numeric_state
sensor.exposed_pipe_temperature
暴露管段温度低于 4 °C;2 °C 为第二级触发。
分步说明
- notify.mobile_app在第一级就预警,让人可以做决定,而不是早上才发现细流已经开了一夜。
send at 4 °C · 'exposed run at 4 °C, trickle arms at 2 °C' - valve.far_tap把暴露管段最远端的龙头开到能维持水流的最小流量;15 毫米铜管约需 0.3 L/min 即可抵御 -8 °C 的夜晚。
open · flow limited to 0.4 L/min - valve.far_tap只在温度高于 6 °C 持续 15 分钟后才关闭,避免短暂回暖在黎明前(最冷的时候)提前结束保护。
close when pipe temp > 6 °C for 15 min - sensor.water_used_freeze_guard记录每晚用水量,让卡在开启状态的龙头能被及时发现,而不是等水费单来了才知道。
log · litres per night
把传感器夹在最冷的点,而不是最方便的点
最冷的点通常在管道穿墙处、穿过未供暖的空腔处,或紧贴通风夹层处。第一个寒夜里拿红外测温枪沿管走一遍,把传感器夹在读数最低处。图方便安装的结果是:管道已经 2 °C,传感器还显示 8 °C。
保温层包在管夹外面,不是里面
先把管夹直接装在裸铜管上,再用保温棉把两者一起包起来。把保温层垫在管夹下面会切断热通路,传感器测到的是保温层表面。这是管夹安装中最常见的错误。
用标定过的细流,而不是全开龙头
龙头全开一夜会浪费 200–400 升,还可能冲垮化粪池系统。0.4 L/min 的细流整夜约 12 升就能让管路保持在冰点以上。请加装限流器,或使用带位置设定值的电动阀,而不是普通电磁阀。
硬件
| 型号 | 协议 | 连接 | 在本链路中的作用 |
|---|---|---|---|
| Pipe-clamp temperature sensor, insulated over the clamp | thread |
无线 | 夹在铜管上并覆盖保温层;未保温的管夹读的是空气温度,预警会晚得多。 |
| Thread motorised tap or valve on the far end of the run | thread |
有线 | 开启到标定好的细流;普通电磁阀是全流量,一夜会浪费 200 升以上。 |
| Outdoor temperature and wind sensor | thread |
无线 | 提供寒风效应输入,正是它使朝北外墙管段在 4 °C 气温下就会冻结。 |
失效时怎么办
如果管夹传感器失效,防护回退为「室外温度低于 -2 °C 且风速高于 15 km/h」,精度差一些但偏保守。如果龙头无法开启,通知会升级并提示家庭当晚手动打开一个水龙头。如果龙头无法关闭,30 分钟的最大运行时长会强制关闭并发出通知。