Regulace-vetyl (192.168.100.31)
Shelly Pro 4PM / Pro (Sklep) – Centrální mozek vytápění celého domu, řízení směšovacího servopohonu, elektrického dohřevu akumulační nádrže (AKU) a koordinace požadavků ze všech zón.
Seznam skriptů
1_topeni.js– Centrální ekvitermní regulace, příjem požadavků z TRV a řízení oběhového čerpadla ÚT2_el_dotapeni.js– Řízení elektrických topných patron AKU nádrže a centrální správa blokací3_smesovac.js– Servopohon 3cestného směšovacího ventilu topné vody s prediktivní regulací
1. 1_topeni.js (Centrála vytápění ÚT)
Funkce a účel
- Sběr požadavků na vytápění z celého domu:
- Poskytuje HTTP endpoint
/script/1/trv?id=<room>&state=1|0. - Přijímá žádosti z termostatů a TRV hlavic (Eliška, Koupelna, Kuchyně, Ložnice, Obývák).
- Poskytuje HTTP endpoint
- Výpočet ekvitermní teploty náběhu:
- Podle venkovní teploty a strmosti topné křivky počítá požadovanou teplotu vody pro dům (
tFlowMin = 25 °C,tFlowMax = 55 °C). - Poskytuje komfortní časové okno pro koupelnu (
heat_bath_*, např. 18:00–20:00 cíl 40 °C).
- Podle venkovní teploty a strmosti topné křivky počítá požadovanou teplotu vody pro dům (
- Spínání oběhového čerpadla ÚT:
- Pokud je požadavek z alespoň jedné zóny (
heatRequired = true), spíná čerpadlo topného okruhu na vzdálené Shelly192.168.100.32(switch:0) a obnovuje příkaz každých 60 s.
- Pokud je požadavek z alespoň jedné zóny (
- Předávání do směšovače:
- Zapisuje žádanou náběhovou teplotu do virtuální komponenty
Number:200a stav požadavku doBoolean:200, které přímo čte skript3_smesovac.js.
- Zapisuje žádanou náběhovou teplotu do virtuální komponenty
Ochrany při výpadku a nedostupnosti
- Výpadek lokální meteostanice WS90 (Online Weather Fallback):
- Přijímá venkovní teplotu na
/script/1/extTemp?t=.... - Pokud data z WS90 nepřijdou po dobu 45 minut (
ws90TimeoutSec: 2700), skript se automaticky přepne na záložní stahování předpovědi z internetu (Open-Meteo REST API) každých 30 minut.
- Přijímá venkovní teplotu na
- Odpojení nebo vybití TRV hlavice (Watchdog 12 minut):
- Každá registrovaná zóna má timeout 12 minut (
trvTimeoutSec: 720). - Pokud zóna neobnoví keep-alive (např. vybitá baterie hlavice), je automaticky vyřazena. Pokud netopí žádná jiná zóna, čerpadlo ÚT se po 12 minutách samo zastaví.
- Každá registrovaná zóna má timeout 12 minut (
- Výpadek vzdálené Shelly s čerpadlem (
192.168.100.32):- Příkazy na sepnutí/vypnutí čerpadla mají HTTP timeout a retry logiku každých 60 s.
2. 2_el_dotapeni.js (Elektrický dohřev AKU & Správce blokací)
Funkce a účel
- Řízení topných patron v akumulační nádrži:
- Horní patrona 4 kW (
heaterTop, na192.168.100.32switch:1). - Střední patrona 7.5 kW (
heaterMid, na192.168.100.32switch:2).
- Horní patrona 4 kW (
- Udržování teploty a časová okna:
- TUV okno: V čase 18:00–18:45 nahřívá horní část AKU na 60 °C (
aku_tuv_target). - Mimo TUV okno: Udržuje minimální pohotovostní teplotu nádrže podle ekvitermy (
aku_heat_min = 45 °C). - Prediktivní solární blok ranního dohřevu (05:00–15:00):
- Vyčítá denní předpověď osvitu z
192.168.100.40(number:200z PVForecast) a přijímá okamžitý osvit (Lux) přes HTTP push z meteostanice WS90 (/script/2/ws90?lux=...). - Pokud je předpověď ≥ 2,500 Wh/m² (
aku_solar_forecast_min) NEBO okamžitý osvit z WS90 ≥ 20,000 Lux (aku_solar_lux_min):- Střední patrona 7.5 kW je striktně zablokována (
solar_predikce), aby v nádrži zůstala maximální chladná kapacita pro 8 m² fototermických kolektorů. - Horní patrona 4 kW udržuje pouze komfortní ranní minimum pro sprchu 40 °C (
aku_solar_shower_min), sepne pouze pokud horní zóna klesne pod 37.5 °C.
- Střední patrona 7.5 kW je striktně zablokována (
- Při zataženém počasí (< 2,500 Wh/m² a < 20,000 Lux) běží běžný pohotovostní dohřev bez omezení.
- Vyčítá denní předpověď osvitu z
- TUV okno: V čase 18:00–18:45 nahřívá horní část AKU na 60 °C (
- Centrální sběrnice blokací (Block Server):
- Poskytuje HTTP endpointy:
/script/2/block?source=...&target=...&state=1|0,/block4kw,/block7kw,/script/2/ws90?lux=.... - Přijímá blokace od:
- Grid Guard 3EM (
192.168.100.251): Hlídání domovního jističe 3x25A. - Sauna 3EM (
192.168.100.78): Chod saunových kamen. - Kotel 2PM (
192.168.100.74): Chod kotle na tuhá paliva. - Podlahová topení (
.76,.213,.222): Chod podlahovek v pokojích.
- Grid Guard 3EM (
- Pokud je aktivní jakákoliv blokace pro danou patronu, patrona nesmí sepnout (a pokud běží, okamžitě se vypne).
- Poskytuje HTTP endpointy:
Ochrany při výpadku a nedostupnosti
- Kritická havarijní tepelná ochrana nádrže (Ochrana proti přehřátí):
- Pokud teplota v horní nebo střední části AKU nádrže překročí 85 °C (
aku_safety_max), obě patrony se okamžitě a bezpodmínečně odepnou.
- Pokud teplota v horní nebo střední části AKU nádrže překročí 85 °C (
- Bezpečnostní Watchdog blokací (300 sekund):
- Každý blokovací požadavek od externích klientů (Sauna, Grid Guard, Podlahovka) expiruje po 300 sekundách (5 minutách) (
aku_block_timeout: 300). - Pokud některé klientské zařízení vypadne, ztratí napájení nebo Wi-Fi spojení a přestane posílat keep-alive, blokace po 5 minutách samočinně vyprší, aby nádrž nezůstala trvale studená.
- Každý blokovací požadavek od externích klientů (Sauna, Grid Guard, Podlahovka) expiruje po 300 sekundách (5 minutách) (
- Výpadek čidel teploty nádrže:
- Pokud selžou lokální čidla
tempTopId(100) nebotempMidId(101), skript patrony nespustí.
- Pokud selžou lokální čidla
3. 3_smesovac.js (Směšovací servopohon)
Funkce a účel
- Přesné řízení servopohonu směšovače (Shelly Cover:0):
- Směšuje horkou vodu z AKU / kotle se zpátečkou z radiátorů tak, aby náběhová teplota do domu přesně odpovídala žádané ekvitermní teplotě z
1_topeni.js.
- Směšuje horkou vodu z AKU / kotle se zpátečkou z radiátorů tak, aby náběhová teplota do domu přesně odpovídala žádané ekvitermní teplotě z
- Prediktivní výpočet polohy ventilu:
- Na základě fyzikálního modelu směšování počítá teoretickou polohu ventilu ještě předtím, než se projeví transportní zpoždění v potrubí:
Pos = \frac{T_target - T_return}{T_hot - T_return} × 100 %
- Dynamický výběr zdroje tepla:
- Průběžně porovnává teplotu z kotle na tuhá paliva (
/kotelTemp), horní části nádrže (AKU1H) a přívodního potrubí (temperature:105), a jako horký zdroj volí aktuálně nejteplejší médium.
- Průběžně porovnává teplotu z kotle na tuhá paliva (
- Rychlý rozběh a stabilizace:
- Při startu topení provede přednastavení na predikovanou polohu a vyčká na prohřátí náběhového potrubí.
Ochrany při výpadku a nedostupnosti
- Kritický výpadek čidla náběhové teploty (Havarijní poloha 50 %):
- Pokud selže čidlo teploty náběhové vody
temperature:103(SYSTEM.actualTemp === null), skript okamžitě přestaví servopohon do bezpečnostní polohy 50 % (CONFIG.failSafePos = 50). Zabraňuje zavedení plné neochlazené teploty do topného systému domu.
- Pokud selže čidlo teploty náběhové vody
- Automatické zavření při vypnutém topení:
- Pokud netrvá žádný požadavek na topení (
heatRequired = false), servopohon se přestaví do polohy 0 % (úplně zavřeno), čímž brání samotížnému ochlazování AKU nádrže.
- Pokud netrvá žádný požadavek na topení (
- Výpadek přenosu teploty kotle (
/kotelTemp):- Údaj o teplotě kotle má timeout 180 sekund (
boiler.timeoutSec: 180). Pokud kotel přestane posílat teplotu, skript jej přestane uvažovat jako zdroj horké vody a plynule přejde na čidlo AKU nádržeAKU1H.
- Údaj o teplotě kotle má timeout 180 sekund (
- Mechanická ochrana servopohonu (Anti-hunting):
- Minimální rozestup mezi přestaveními ventilu je 55 sekund, minimální krok změny je 1.5 % a necitlivost (deadband) 0.5 °C, což zabraňuje neustálému kmitání a mechanickému opotřebení servopohonu.