Rekuperace řízená CO2 a teplotou – 5 Node-RED flows pro automatické větrání
Rekuperační jednotky v ložnici a dětském pokoji mám připojené přes Zigbee do Home Assistantu. Místo abych musel ručně nastavovat rychlost a režim, dělá to za mě Node-RED – automaticky podle CO2, venkovní teploty a denní doby. Tady popisuju všech 5 flows s konkrétním kódem.
Entity a helpery v Home Assistantu
Nejdřív si vytvoř potřebné helpery v HA (Nastavení → Pomocníci → + Vytvořit → Přepínač):
# Rekuperační jednotky (entity z Zigbee/Z2M)
switch.rekuperace_loznice_power # zapnutí/vypnutí
select.rekuperace_loznice_rezim # hodnoty: "Rekuperace" | "Přívod vzduchu"
select.rekuperace_loznice_rychlost # hodnoty: Silence | Low | Medium | High
switch.rekuperace_detsky_pokoj_power
select.rekuperace_detsky_pokoj_rezim
select.rekuperace_detsky_pokoj_rychlost
# CO2 senzory (Netatmo)
sensor.loznice_netatmo_co2 # ppm
sensor.detsky_pokoj_netatmo_co2
# Venkovní teplota
sensor.weather_station_sws_12500_teplota_senzoru_2
# Helpery (vytvoř ručně v HA)
input_boolean.helper_rekuperace_automatika_loznice_on_off
input_boolean.helper_rekuperace_automatika_detsky_on_off
input_boolean.helper_rekuperace_away_mode
input_boolean.helper_jdu_spat_vetrej_lozice
input_boolean.helper_jdu_spat_vetrej_detsky
timer.helper_jdu_spat_vetrej_lozice_timer # timer na 10 min
timer.helper_jdu_spat_vetrej_detsky_timer
# Kontaktní senzory oken
binary_sensor.senzor_okno_loznice_contact
binary_sensor.senzor_okno_detsky_pokoj_contact
# Čistička vzduchu (Xiaomi)
fan.zhimi_v6_13f6_air_purifier # režimy: Auto | Favorite
Flow 1: Režim rekuperace podle venkovní teploty
Sleduje venkovní teplotu a přepíná mezi režimy. Práh je 10 °C.
[server-state-changed: teplota venku] → [switch node: = 10] → [api-call-service: set_value]
server-state-changed: Entita sensor.weather_station_sws_12500_teplota_senzoru_2.
switch node – 2 výstupy:
Výstup 1: msg.payload 10 → api-call-service: select.select_option
entity: select.rekuperace_loznice_rezim
option: "Přívod vzduchu"
Zduplikuj pro select.rekuperace_detsky_pokoj_rezim.
Flow 2: Rychlost větráku podle CO2
Nejdůležitější flow. Sleduje CO2 a nastavuje rychlost – jinak přes den, jinak v noci (aby nerušil spánek).
[server-state-changed: CO2] → [api-current-state: helper automatika] → [switch: on/off] → [time-range-switch] → [function: CO2 → rychlost] → [api-call-service]
function node – CO2 pásma:
const co2 = parseFloat(msg.payload) || 0;
const isNight = msg.isNight; // true = noční čas (z time-range-switch)
let rychlost;
if (isNight) {
// Noční pásma - ložnice 22:00-08:00 / dětský 20:30-08:00
if (co2 < 800) rychlost = 'Silence';
else if (co2 <= 1000) rychlost = 'Low';
else rychlost = 'Medium'; // max v noci
} else {
// Denní pásma
if (co2 < 800) return null; // nečinnost - nic nenastavuj
else rychlost = 'Low';
}
msg.payload = { option: rychlost };
return msg;
time-range-switch pro ložnici: noční čas 22:00 – 08:00. Pro dětský pokoj: 20:30 – 08:00 (dítě jde spát dříve).
Před celým flow zkontroluj helper automatiky pomocí api-current-state nodu. Pokud je input_boolean.helper_rekuperace_automatika_loznice_on_off = off, zprávu zastav (switch node: stav = off → [link: stop]).
Flow 3: Nouzové větrání při nebezpečném CO2
Pojistka pro případ, že je automatika vypnutá ale CO2 stoupne na nebezpečnou úroveň.
[server-state-changed: helper CO2 high] → [api-current-state: okno] → [switch: okno open/closed] → [api-call-service: zapni rekuperaci Low]
Pokud je okno otevřené → flow skončí bez akce (přirozené větrání probíhá). Pokud je okno zavřené → zapni rekuperaci na Low bez ohledu na stav helperu automatiky.
Flow 4: Cílené větrání před spaním
[server-state-changed: helper jdu_spat = on]
→ [api-call-service: rekuperace High]
→ [api-call-service: čistička Favorite] (jen ložnice)
→ [api-call-service: timer start 10 min]
[server-state-changed: timer finished]
→ [api-call-service: rekuperace zpět na auto]
→ [api-call-service: čistička Auto]
Helper input_boolean.helper_jdu_spat_vetrej_lozice přidej na dashboard jako tlačítko nebo použij fyzické tlačítko. Timer timer.helper_jdu_spat_vetrej_lozice_timer vytvoř v HA (Pomocníci → + Vytvořit → Časovač), nastav výchozí dobu na 10 minut.
Flow 5: Away mode
[server-state-changed: helper away_mode = on]
→ [api-call-service: rekuperace_loznice rychlost Low]
→ [api-call-service: rekuperace_detsky rychlost Low]
[server-state-changed: helper away_mode = off]
→ přepni zpět na automatiku (nastav helper automatiky = on)
Helper input_boolean.helper_rekuperace_away_mode aktivuj ručně z dashboardu nebo automaticky z Presence flow (přítomnost osob).
Proč nevypínat: rekuperační motory jsou konstruované pro 24/7 provoz, spotřeba na Low je minimální (~5-10 W) a trvalé lehké větrání udržuje lepší kvalitu vzduchu než zapínání/vypínání.
Jak flows spolupracují
| Flow | Spouštěč | Blokováno když |
|---|---|---|
| Flow 1 (teplota → režim) | Změna venkovní teploty | Nikdy – běží vždy |
| Flow 2 (CO2 → rychlost) | Změna CO2 | Helper automatiky = off, nebo away mode |
| Flow 3 (nouzový) | CO2 high helper = on | Okno otevřené |
| Flow 4 (cílené větrání) | Manuální tlačítko | Nic – přepíše automatiku dočasně |
| Flow 5 (away) | Helper away = on/off | Nikdy |