Verbraucher Warmwassererwaermer
Status: implementiert fuer IP-Symcon 8 und den Enelix-2-Vertrag
3.0.
Das Modul adaptiert ausschliesslich das fruehere Modul Boiler_x_Stufig.
Mehrere elektrische Leistungsstufen werden exklusiv geschaltet. Der Manager
waehlt eine der aktuell angebotenen Leistungen; Mindesttemperatur, Zeitplan und
Legionellenprogramm koennen die lokale Warmwassersicherheit priorisieren.
Sicherheit und Regelung
- Die Schaltkontakte werden mit Break-before-make geschaltet: zuerst alle aus, danach hoechstens eine Stufe ein.
- Fehlende, veraltete oder nicht numerische Temperaturwerte schalten die EMS-Verfuegbarkeit aus und fuehren zu einer Stoerung.
- Manager-Vorgaben werden nur angenommen, wenn sie im zuletzt gemeldeten
Leistungswerte_W-Angebot enthalten sind. - Nach
VorgabeTimeoutwird eine nicht erneuerte Manager-Vorgabe ungueltig. - Mindesttemperatur, vorausberechneter Zeitplan und Legionellenprogramm koennen
die maximale Stufe lokal erzwingen. Diese Phase wird mit
AenderungMoeglich=falsegemeldet. BoilertemperaturGlaettenaktiviert eine PT1-Glaettung mit konfigurierbarer Zeitkonstante.
Properties
Zu den sechs gemeinsamen Verbraucher-Properties aus
Schnittstelle.md kommen 14 Modul-Properties hinzu.
| Ident | Typ | Standard | Beschreibung |
|---|---|---|---|
LeistungsStufen |
JSON-Liste | [] |
Stufe, positive Leistung in W und Boolean-Schaltkontakt. |
ZeitKonstante |
Integer | 120 |
PT1-Zeitkonstante in Sekunden. |
Boilerfuehler_PT1 |
Integer | 0 |
Temperaturvariable. |
BoilertemperaturGlaetten |
Boolean | false |
PT1-Glaettung aktiv. |
Boilervolumen |
Integer | 300 |
Volumen in Litern fuer die Zeitplanprognose. |
Zeitplan |
JSON-Liste | [] |
Uhrzeit und Solltemperatur. |
Interval |
Integer | 5 |
Regelintervall in Sekunden. |
IdleCounterMax |
Integer | 2 |
Zyklen bis zum Idle-Status. |
TemperaturMaxAlter |
Integer | 30 |
Maximal zulaessiges Messwertalter in Sekunden. |
Hysterese |
Float | 5.0 |
Temperaturhysterese in K. |
LegionellenfunktionAktiv |
Boolean | true |
Zweistufige periodische Aufheizung aktiv. |
LegionellenMinimalintervallTage |
Integer | 4 |
Ab diesem Intervall wird die Legionellentemperatur als Maximaltemperatur angeboten. |
LegionellenMaximalintervallTage |
Integer | 7 |
Ab diesem Intervall wird die Legionellentemperatur zwingend nachgeladen. |
DiagnosevariablenAnzeigen |
Boolean | false |
Legt zehn Diagnosevariablen bei Bedarf an. |
LoggingEin aktiviert laufende Debug-Ausgaben.
Variablen
Standardmaessig sichtbar sind nur die acht Betriebsvariablen Aktiv,
Istleistung, Sollleistung, Stoerung, Stoertext, Boilertemperatur,
AktiveStufe und BezogeneEnergie.
Mit EinstellungenInVisu werden Mindesttemperatur, Maximaltemperatur und
Legionellentemperatur sichtbar und geprueft bedienbar. Die Reihenfolge
Mindesttemperatur < Maximaltemperatur <= Legionellentemperatur ist zwingend.
Mit DiagnosevariablenAnzeigen werden diese zehn Variablen eingeblendet:
LeistungsquelleSollwertGueltigVerfuegbarAenderungMoeglichTemperaturGueltigNachladenAktivLegionellenbetriebAktivLegioCounterIdleIdleCounter
Managerkommunikation
Das Modul implementiert VerbraucherSchnittstelle::ManagerdatenEmpfangen().
Der Transport erfolgt wie beim Manager ueber IPS_RequestAction mit JSON. Der
Verbraucher besitzt keine Manager-ID-Property. Er ermittelt nur Manager, in
deren VerbraucherZuordnung seine Instanz aktiv eingetragen ist.
Die Rueckmeldung erfolgt ereignisbasiert und zusaetzlich alle
Meldeintervall Sekunden. Eine Rueckmeldung nach empfangener Vorgabe wird kurz
verzoegert, damit keine synchrone Manager-Verbraucher-Endlosschleife entsteht.
Tests
WarmwasserReglerTest.php prueft Leistungsstufen, PT1, Energieberechnung,
Zeitplan, thermische Prognose und die zweistufigen Legionellengrenzen.
WarmwassererwaermerModulstrukturTest.php prueft Metadaten, Formular,
20 Properties, bedarfsgesteuerte Diagnosevariablen, Schnittstellenvertrag und
Break-before-make-Schaltung.
Migration
Die Feldzuordnung und die bewusst entfallenen Enelix-1-Kommunikationsvariablen
sind in docs/migration/Boiler-x-Stufig.md
dokumentiert.