Enelix-Verbrauchermodul Ansteuerung Askoheat
Dieses Modul integriert einen Askoheat-Heizstab als steuerbaren Boiler-Verbraucher in das Belevo Energiemanagement-System (Enelix). Es berechnet dynamisch verfügbare Leistungsstufen, kommuniziert mit dem übergeordneten Manager und steuert die Askoheat-Leistungsvariable anhand von Boilertemperatur, Zeitplan, Legionellenschutz, 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. - Askoheat-Leistungsansteuerung: Die vom Manager zugewiesene Leistung wird auf eine Heizstufe von
0bis7umgerechnet und an die konfigurierte Leistungsvariable (Variable_Leistung) gesendet. - PowerSteps-Generierung: Das Modul meldet dem Enelix-Manager ein Array an möglichen Leistungsschritten (
PowerSteps), basierend auf Boilertemperatur, Betriebsmodus und Boilergrenzen. - Peak-Shaving vs. PV-Überschuss: Im Peak-Shaving-Modus werden Leistungsschritte nur zur Sicherstellung der Mindesttemperatur angeboten. Im PV-Modus können zusätzliche Leistungsschritte bis zur Maximaltemperatur angeboten werden.
- Temperaturüberwachung: Berücksichtigung von Mindesttemperatur (
Mindesttemperatur), Maximaltemperatur (Maximaltemperatur) und Legionellentemperatur (Legionellentemperatur). - Temperaturglättung: Optional kann die gemessene Boilertemperatur über eine PT1-Filterung geglättet werden.
- Zeitplan: Über einen Solltemperatur-Zeitplan kann das Modul prüfen, ob die nächste Zieltemperatur mit der verfügbaren Leistung rechtzeitig erreichbar ist.
- Legionellenschutz: Wird die Legionellentemperatur längere Zeit nicht erreicht, erhöht das Modul temporär die Temperaturanforderung.
- 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.
- Askoheat- oder Heizstab-Steuerung mit einer schaltbaren Leistungsstufenvariable.
- Temperaturfühler als Variable in IP-Symcon.
- Aktivierte Aktion auf der Leistungsstufenvariable (
Variable_Leistung).
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: Ansteuerung_Askoheat
4.2 Properties
| Name | Typ | Beschreibung |
|---|---|---|
| IdleCounterMax | NumberSpinner | Anzahl der Intervall-Zyklen zwischen zwei Leistungsänderungen. |
| Interval | NumberSpinner | Berechnungsintervall in Sekunden. |
| BoilerLeistung | NumberSpinner | Maximale Askoheat-Leistung in Watt. |
| Variable_Leistung | SelectVariable | Variable, an welche die Askoheat-Heizstufe 0 bis 7 gesendet wird. |
| Variable_Temperatur_Ist | SelectVariable | Variable mit der aktuellen Boilertemperatur. |
| Boilertemperatur_glätten | Select | Aktiviert die PT1-Glättung der gemessenen Boilertemperatur. |
| ZeitKonstante | NumberSpinner | Zeitkonstante des PT1-Filters in Sekunden. |
| Boilervolumen | NumberSpinner | Boilervolumen in Litern für die Berechnung der benötigten Wärmemenge. |
| Zeitplan | List | Liste aus Uhrzeit und Solltemperatur für geplante Boiler-Zielwerte. |
5. Statusvariablen & Profile
| Ident | Typ | Beschreibung |
|---|---|---|
| PowerSteps | String | JSON-Array der dem Manager angebotenen Leistungsschritte. |
| Aktuelle_Leistung | Integer | Die aktuell geschaltete Soll-Leistung in Watt. |
| 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 x 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. |
| Boilertemperatur | Float | Aktuelle Boilertemperatur, roh oder geglättet. |
| Mindesttemperatur | Integer | Untere Temperaturgrenze für den Boiler. |
| Maximaltemperatur | Integer | Obere Temperaturgrenze für PV-Überschussnutzung. |
| Legionellentemperatur | Integer | Zieltemperatur für den Legionellenschutz. |
| LegioCounter | Integer | Interner Zähler für die Legionellenschutzlogik. |
| IdleCounter | Integer | Interner Zähler für die Sperrzeit. |
| Leistung_Delta | Integer | Interne Variable für Leistungsdifferenzen. |
Es werden keine eigenen Variablenprofile angelegt.
6. WebFront / Bedienung
Die Temperaturgrenzen sowie die Prioritäten werden über folgende Variablen eingestellt:
Mindesttemperatur - Temperatur, unter welcher der Boiler zwingend freigegeben wird.
Maximaltemperatur - Temperatur, bis zu welcher PV-Überschüsse zur Warmwassererzeugung genutzt werden dürfen.
Legionellentemperatur - Zieltemperatur für die Legionellenschutzfunktion.
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.
Boilertemperatur - Aktuelle Temperatur des Boilers.
7. Mapping auf Code-Komponenten
| Komponente | Funktion im Code (module.php) |
|---|---|
| Timer-Registrierung | ApplyChanges() setzt Timer_Do_UserCalc_Verb basierend auf Interval. |
| Leistungszuteilung | SetAktuelle_Leistung($power) setzt Power, Aktuelle_Leistung, Bezogene_Energie und Idle. |
| Askoheat-Stufenumrechnung | SetAktuelle_Leistung($power) rechnet Watt auf eine Heizstufe von 0 bis 7 um. |
| PowerSteps-Berechnung | GetCurrentData($Peak) erstellt die verfügbaren Leistungsstufen abhängig vom Betriebsmodus. |
| 7-Stufen-Berechnung | Calc_Seven_Steps($power) erzeugt Leistungsschritte von 0 bis zur maximalen Boilerleistung. |
| Temperaturglättung | GetCurrentData($Peak) berechnet optional die PT1-gefilterte Boilertemperatur. |
| Zeitplanprüfung | getNextTimeAndTemperature(), calculateRemainingTime() und canBoilerReachTemperature(). |
| Wärmemengenberechnung | calculateRequiredHeat() berechnet die benötigte Energie für eine Temperaturdifferenz. |
| Legionellenschutz | GetCurrentData($Peak) verwaltet LegioCounter, Maximaltemperatur und Mindesttemperatur. |
| Idle-Logik | ProcessIdleCounter() verwaltet die Sperrzeit zwischen Leistungsänderungen. |
| Nachtprüfung | ist_nachts() prüft den Zeitraum von 22:00 bis 07:00 Uhr. |