Files

Enelix-Verbrauchermodul Warmwasser (Boiler)

Dieses Modul integriert elektrische Warmwasserboiler mit geschalteten Heizstäben mit variablen Heizstufen in das Belevo Energiemanagement-System (Enelix). Es steuert die Leistungsstufen dynamisch nach PV-Überschuss, Peak-Shaving-Vorgaben, Temperaturvorgaben sowie Zeitplänen und integriert einen automatischen Legionellenschutz.


Inhaltsverzeichnis

  1. Funktionsumfang
  2. Voraussetzungen
  3. Installation
  4. Instanz anlegen & Konfiguration
  5. Statusvariablen & Profile
  6. WebFront / Bedienung
  7. Mapping auf Code-Komponenten
  8. Zukünftige Erweiterungen

1. Funktionsumfang

  • Stufensteuerung (LeistungsStufen): Definition beliebiger Leistungsschritte (Watt) mit direkter Zuweisung von IP-Symcon Schaltkontakten (Variablen-IDs).
  • Temperaturüberwachung & Glättung: Auswertung eines Temperaturfühlers mit optionaler PT1-Glättung (Tiefpassfilter über ZeitKonstante), um Messrauschen zu minimieren.
  • Betriebsmodi (PV vs. Peak):
    • Peak-Shaving: Heizen nur bei Unterschreitung der Mindesttemperatur (Zwangsaufheizung), optional auch ganz deaktivierbar.
    • Solarladen: Stufenweise Aufheizung bis zur Maximaltemperatur mit überschüssiger PV-Leistung. Fällt die Temperatur unter Mindesttemperatur, wird mit maximaler Leistung geheizt.
  • Legionellenschutz: Ein interner Zähler (LegioCounter) überwacht die Zeit seit der letzten Hochtemperaturphase. Wird ein Grenzwert überschritten, wird die Maximaltemperatur (bzw. später auch die Mindesttemperatur im Nachtbetrieb) automatisch auf die Legionellentemperatur angehoben.
  • Vorausschauende Zeitpläne (Landwirtschaft): Über einen JSON-Zeitplan können Zieltemperaturen zu bestimmten Uhrzeiten definiert werden. Das Modul berechnet über die physikalische Wärmekapazität (Volumen, Delta-T) vorausschauend, ob und wann die Heizung aktiviert werden muss, um das Ziel rechtzeitig zu erreichen.
  • Taktschutz (Idle-Logik): Ein einstellbarer Zähler (IdleCounterMax) verhindert ein zu häufiges Schalten der Heizstäbe sowie eine Mindestlaufzeit.

2. Voraussetzungen

  • IP-Symcon ≥ 8.0
  • Modul-URL: https://git.belevo.ch/dh/enelix.git
  • Vorhandener und eingerichteter Enelix Manager.
  • Physische Schaltaktoren für die Boiler-Heizstäbe.
  • Temperaturfühler im Boiler mit Fühlerwert als Variable in Symcon.

3. Installation

  1. In IP-Symcon Module Control öffnen.
  2. Hinzufügen → Git-Repository.
  3. URL eingeben und Installieren.
  4. IP-Symcon neu starten.

4. Instanz anlegen & Konfiguration

4.1 Instanz anlegen

  • Rechtsklick InstanzenInstanz hinzufügen
  • Filter: Belevo
  • Auswahl: Warmwasser (Verbraucher)

4.2 Properties

Name Typ Beschreibung
LeistungsStufen String (JSON) Konfiguration der Leistungsschritte und der verknüpften Aktor-Variablen-IDs.
Boilerfuehler_PT1 SelectVariable Variablen-ID des Hardware-Temperaturfühlers.
Boilertemperatur_glätten Boolean Aktiviert das Software-Tiefpassfilter für den Fühlerwert.
ZeitKonstante NumberSpinner Zeitkonstante für die Temperatur-Glättung.
Boilervolumen NumberSpinner Boilervolumen in Litern (Basis für die thermodynamische Berechnung im Zeitplan).
Zeitplan String (JSON) Optionaler Zeitplan für Zieltemperaturen (Format: [{"Uhrzeit":"06:00","Solltemperatur":55}]).
Interval NumberSpinner Berechnungsintervall in Sekunden.
IdleCounterMax NumberSpinner Anzahl Intervall-Zyklen zwischen zwei Schaltvorgängen (Verzögerung).

5. Statusvariablen & Profile

Ident Typ Beschreibung
Mindesttemperatur Integer Unteres Limit. Wird dieser Wert unterschritten, wird immer geheizt (Netzbezug).
Maximaltemperatur Integer Oberes Limit für PV-Überschussladung.
Legionellentemperatur Integer Zieltemperatur für den automatischen Legionellenzyklus (z.B. 65°C).
Boilertemperatur Float Aktuelle, ggf. geglättete Ist-Temperatur des Boilers.
LegioCounter Integer Interner Zähler für die Laufzeit seit der letzten Legionellen-Desinfektion.
Aktuelle_Leistung Integer Die aktuell vom Manager zugewiesene Soll-Leistung in Watt.
PowerSteps String JSON-Array der dem Manager aktuell angebotenen möglichen Leistungsschritte.
Idle Boolean Status der Sperrzeit (true = bereit für neue Werte, false = gesperrt).
Sperre_Prio Integer Priorität für die Leistungszuteilung im Peak-Shaving-Modus.
PV_Prio Integer Priorität für die Leistungszuteilung im Solarlade-Modus.
Bezogene_Energie Float Rechnerisch aufsummierte Energie (Leistung × Zeit).
Is_Peak_Shaving Boolean Vom Manager übermittelter aktueller Betriebsmodus.

Für alle Sollwerte wird jeweils eine Hysterese von 5 °C miteingehalten.

6. WebFront / Bedienung

Im WebFront dient die Instanz zur Kontrolle und Anpassung der Temperaturvorgaben:

  • Einstellen von Mindesttemperatur, Maximaltemperatur und Legionellentemperatur.
  • Überwachung der aktuellen Boilertemperatur.
  • Visualisierung der vom Manager freigegebenen Aktuelle_Leistung.
  • Die Anpassung von Prioritäten (PV_Prio, Sperre_Prio).

7. Mapping auf Code-Komponenten

Komponente Funktion im Code (module.php)
Datenaufbereitung LadeUndSortiereLeistungen() decodiert das JSON-Array LeistungsStufen und sortiert die Watt-Werte aufsteigend.
Temperaturberechnung GetCurrentData() liest den PT1-Fühler aus und berechnet abhängig von Boilertemperatur_glätten den gleitenden Durchschnitt.
Zeitplan & Thermodynamik calculateRequiredHeat() und canBoilerReachTemperature() berechnen über Masse, Temperaturdifferenz und spezifische Wärmekapazität, ob die Restzeit zur Zielerreichung ausreicht.
Betriebslogik & Limits GetCurrentData($Peak) wertet Temperaturen, Legionellen-Zähler und Peak-Shaving-Status aus und passt die angebotenen PowerSteps an.
Leistungszuteilung SetAktuelle_Leistung($power) ermittelt über GetKontaktIDZuLeistung() die passende Aktor-ID und schaltet exakt den geforderten Heizstab ein (und alle anderen aus).
Legionellenschutz Erhöht LegioCounter zyklisch. Bei Überschreiten definierter Grenzen (z.B. > 69120 Zyklen) wird MaxTemp = LegioTemp gesetzt. Priorisierter Nachtbetrieb via ist_nachts().
Taktschutz (Idle) CheckIdle() und ProcessIdleCounter() setzen bei Leistungsänderungen den Timer, um erneute Schaltvorgänge temporär zu blockieren.

8. Zukünftige Erweiterungen

  • Temperaturschichtung: Unterstützung für zwei Fühler (Boiler Oben / Boiler Unten) zur präziseren Erkennung der durchgeladenen Energie.