Files
Enelix-EMS/docs/module/Wassererwaermer/README.md
T
dh 4514ccb557
Tests / test (push) Successful in 46s
Wassererwaermer-Konfiguration vereinfachen
2026-09-17 08:29:49 +00:00

4.3 KiB

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 VorgabeTimeout wird eine nicht erneuerte Manager-Vorgabe ungueltig.
  • Mindesttemperatur, vorausberechneter Zeitplan und Legionellenprogramm koennen die maximale Stufe lokal erzwingen. Diese Phase wird mit AenderungMoeglich=false gemeldet.
  • BoilertemperaturGlaetten aktiviert 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:

  • Leistungsquelle
  • SollwertGueltig
  • Verfuegbar
  • AenderungMoeglich
  • TemperaturGueltig
  • NachladenAktiv
  • LegionellenbetriebAktiv
  • LegioCounter
  • Idle
  • IdleCounter

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.