Enelix-Verbrauchermodul Heizung x-stufig
Dieses Modul integriert mehrstufige Heizungen als steuerbare Verbraucher in das Belevo Energiemanagement-System (Enelix). Es berechnet dynamisch verfügbare Leistungsstufen, kommuniziert mit dem übergeordneten Manager und schaltet die hinterlegten Heizstufen anhand von Temperatur, PV-Überschuss und Peak-Shaving-Anforderungen.
Inhaltsverzeichnis
- Funktionsumfang
- Voraussetzungen
- Installation
- Instanz anlegen & Konfiguration
- Statusvariablen & Profile
- WebFront / Bedienung
- Mapping auf Code-Komponenten
- Zukünftige Erweiterungen
1. Funktionsumfang
- Zyklische Steuerung: In konfigurierbaren Intervallen (
Interval) berechnet das Modul die aktuell verfügbaren Leistungsschritte und aktualisiert den Status. - Mehrstufige Heizungssteuerung: Beliebig viele Leistungsstufen können mit Leistung und zugehörigem Schaltkontakt definiert werden.
- PowerSteps-Generierung: Das Modul meldet dem Enelix-Manager ein Array an möglichen Leistungsschritten (
PowerSteps), basierend auf Temperatur, Betriebsmodus und den konfigurierten Heizstufen. - Peak-Shaving vs. PV-Überschuss: Automatische Anpassung der angebotenen
PowerStepsbasierend auf dem vom Manager vorgegebenen Modus (Is_Peak_Shaving). Im Peak-Shaving-Modus wird nur die Mindesttemperatur sichergestellt, im PV-Modus wird zusätzlicher Überschuss zur Wärmeerzeugung genutzt. - Temperaturüberwachung: Berücksichtigung von Mindesttemperatur (
Mindesttemperatur), Maximaltemperatur (Maximaltemperatur) und Hysterese zur Vermeidung unnötiger Schaltvorgänge. - Temperaturglättung: Optional kann die gemessene Temperatur über eine PT1-Filterung geglättet werden um Temperatursprünge und Messrauschen zu reduzieren.
- Idle-Schutz: Nach einer Leistungsänderung kann eine konfigurierbare Sperrzeit (
IdleCounterMax) berücksichtigt werden bevor weitere Leistungsänderungen erfolgen.
2. Voraussetzungen
- IP-Symcon ≥ 8.0
- Modul-URL:
https://git.belevo.ch/dh/enelix.git - Vorhandener und eingerichteter Enelix Manager.
- Temperaturfühler als Variable in IP-Symcon.
- Schaltbare Kontakte mit aktivierter Aktion für die einzelnen Heizstufen.
3. Installation
- In IP-Symcon Module Control öffnen.
- Hinzufügen → Git-Repository.
- URL eingeben und Installieren.
- IP-Symcon neu starten.
4. Instanz anlegen & Konfiguration
4.1 Instanz anlegen
- Rechtsklick Instanzen → Instanz hinzufügen
- Filter: Belevo
- Auswahl: Heizung x-stufig
4.2 Properties
| Name | Typ | Beschreibung |
|---|---|---|
| Heizungstemperatur_glätten | Select | Aktiviert die PT1-Glättung der gemessenen Temperatur. |
| ZeitKonstante | NumberSpinner | Zeitkonstante des PT1-Filters in Sekunden. |
| Interval | NumberSpinner | Berechnungsintervall in Sekunden. |
| IdleCounterMax | NumberSpinner | Anzahl der Intervall-Zyklen zwischen zwei Leistungsänderungen. |
| Hysterese | NumberSpinner | Temperatur-Hysterese in °C. |
| LeistungsStufen | List | Liste der verfügbaren Heizstufen mit Leistung und Schaltkontakt. |
| Heizungsfuehler | SelectVariable | Variable mit der aktuellen Temperatur. |
5. Statusvariablen & Profile
| Ident | Typ | Beschreibung |
|---|---|---|
| PowerSteps | String | JSON-Array der dem Manager angebotenen Leistungsschritte. |
| Aktuelle_Leistung | Integer | Die aktuell geschaltete Heizleistung. |
| Power | Integer | Die aktuell vom Manager zugewiesene Soll-Leistung. |
| Idle | Boolean | Status der Sperrzeit (true = bereit für neue Werte, false = gesperrt). |
| Bezogene_Energie | Float | Rechnerisch aufsummierte Energie (Leistung × Zeit). |
| PV_Prio | Integer | Priorität des Verbrauchers für PV-Optimierung, Tiefe Nummer = Hohe Priorität |
| Sperre_Prio | Integer | Priorität des Verbrauchers für Peak-Optimierung, Tiefe Nummer = Hohe Priorität |
| Is_Peak_Shaving | Boolean | Vom Manager übermittelter aktueller Betriebsmodus. |
| Heizungstemperatur | Float | Aktuelle Heiztemperatur (roh oder geglättet). |
| Mindesttemperatur | Integer | Untere Temperaturgrenze. |
| Maximaltemperatur | Integer | Obere Temperaturgrenze. |
| Disable | Boolean | Freigabe des Verbrauchers. |
| IdleCounter | Integer | Interner Zähler für die Sperrzeit. |
| Leistung_Delta | Integer | Interne Variable für Leistungsdifferenzen. |
6. WebFront / Bedienung
Die Temperaturgrenzen sowie die Prioritäten werden über folgende Variablen eingestellt:
Mindesttemperatur - Temperatur unter welcher die Heizung zwingend freigegeben wird.
Maximaltemperatur - Temperatur bis zu welcher PV-Überschüsse zur Wärmeerzeugung genutzt werden dürfen.
Disable - Freigabe des Verbrauchers.
PV_Prio - Priorität des Verbrauchers für PV-Optimierung, Tiefe Nummer = Hohe Priorität.
Sperre_Prio - Priorität des Verbrauchers für Peak-Optimierung, Tiefe Nummer = Hohe Priorität.
PowerSteps - Dem Manager angebotene mögliche Leistungsstufen.
Aktuelle_Leistung - Tatsächlich geschaltete Leistung.
Heizungstemperatur - Aktuelle Temperatur des Speichers oder Boilers.
7. Mapping auf Code-Komponenten
| Komponente | Funktion im Code (module.php) |
|---|---|
| Timer-Registrierung | ApplyChanges() setzt Timer_Do_UserCalc_Heizung basierend auf Interval. |
| Leistungsstufen laden | LadeUndSortiereLeistungen() liest und sortiert die konfigurierten Leistungsstufen. |
| PowerSteps Generierung | GetCurrentData($Peak) erstellt die verfügbaren Leistungsstufen abhängig von Temperatur und Betriebsmodus. |
| Temperaturglättung | GetCurrentData($Peak) berechnet optional die PT1-gefilterte Temperatur. |
| Aktive Stufenerkennung | IstEineStufeAktiv() prüft ob aktuell mindestens eine Heizstufe aktiv ist. |
| Leistungszuteilung | SetAktuelle_Leistung($power) schaltet den zugehörigen Schaltkontakt der angeforderten Leistung. |
| Kontaktzuordnung | GetKontaktIDZuLeistung($leistung) ermittelt den passenden Schaltkontakt einer Leistungsstufe. |
| Idle-Logik | ProcessIdleCounter() verwaltet die Sperrzeit zwischen Leistungsänderungen. |