Enelix-Verbrauchermodul 1-Stufig
Dieses Modul integriert einfache, nicht-modulierende Verbraucher (Ein/Aus) wie klassische Heizstäbe, Wärmepumpen oder einfache Boiler in das Belevo Energiemanagement-System (Enelix). Es schaltet den Verbraucher basierend auf PV-Überschuss, Peak-Shaving-Vorgaben und einer garantierten Mindestlaufzeit während der Nachtstunden.
Inhaltsverzeichnis
- Funktionsumfang
- Voraussetzungen
- Installation
- Instanz anlegen & Konfiguration
- Statusvariablen
- WebFront / Bedienung
- Mapping auf Code-Komponenten
- Zukünftige Erweiterungen
1. Funktionsumfang
- 1-Stufige Steuerung: Bietet dem Enelix-Manager exakt zwei Zustände an:
0 (Aus) oder die definierte Leistung (Ein).
- Direkte Aktor-Steuerung: Schaltet eine hinterlegte IP-Symcon Variable (
Schaltkontakt1) direkt auf true oder false.
- Nacht-Mindestlaufzeit: Sichert ab, dass der Verbraucher nachts (22:00 bis 07:00 Uhr) eine definierte Mindestlaufzeit (
Mindesttlaufzeit) erreicht. Wird diese nicht über PV-Überschuss am Tag erreicht, erzwingt das Modul die Einschaltung (Netzbezug).
- Taktschutz (Verzögerungslogik): Die Einstellung
Zeit_Zwischen_Zustandswechseln blockiert für x Minuten nach einem Schaltvorgang weitere Leistungsänderungen, um das Relais oder den angeschlossenen Verbraucher vor schnellem Takten zu schützen.
- Manager-Sperrlogik (Idle): Ein Zähler (
IdleCounterMax) verzögert die Rückmeldung an den Manager, bis der Verbraucher seinen Status stabil gewechselt hat.
2. Voraussetzungen
- IP-Symcon ≥ 8.0
- Modul-URL:
https://git.belevo.ch/dh/enelix.git
- Vorhandener und eingerichteter Enelix Manager.
- Physischer Schaltaktor (z.B. Shelly, KNX Schaltaktor) zur Steuerung des Verbrauchers.
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: Verbraucher 1-Stufig
4.2 Properties
| Name |
Typ |
Beschreibung |
| BoilerLeistung |
NumberSpinner |
Leistungsaufnahme des Verbrauchers unter Volllast in Watt (z.B. 6000). |
| Mindesttlaufzeit |
NumberSpinner |
Garantierte Mindestlaufzeit in Stunden, die nachts erreicht werden muss. |
| Zeit_Zwischen_Zustandswechseln |
NumberSpinner |
Taktschutz: Sperrzeit in Minuten zwischen zwei Schaltvorgängen. |
| Schaltkontakt1 |
SelectVariable |
Objekt-ID der Variable, die den physischen Aktor schaltet (Boolean). |
| Interval |
NumberSpinner |
Berechnungsintervall in Sekunden (Standard: 5). |
| IdleCounterMax |
NumberSpinner |
Anzahl Intervall-Zyklen zwischen zwei Schaltvorgängen für die Manager-Freigabe. |
5. Statusvariablen
| Ident |
Typ |
Beschreibung |
| IstNacht |
Boolean |
Zeigt an, ob aktuell der Nacht-Modus (22:00 - 07:00) aktiv ist. |
| DailyOnTime |
Integer |
Zähler für die Laufzeit im aktuellen Zyklus (wird zu Beginn der Nacht genullt). |
| IsTimerActive |
Boolean |
Status des Taktschutzes (true = Statuswechsel aktuell blockiert). |
| Aktuelle_Leistung |
Integer |
Die aktuell vom Manager zugewiesene Soll-Leistung (0 oder BoilerLeistung). |
| PowerSteps |
String |
JSON-Array der dem Manager angebotenen Schritte (z.B. [0, 6000]). |
| Idle |
Boolean |
Status der Manager-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. |
6. WebFront / Bedienung
Im WebFront dient das Modul hauptsächlich der Visualisierung und der Prioritäten-Steuerung:
- Überwachung, ob der Nacht-Modus (
IstNacht) aktiv ist und wie lange der Verbraucher bereits lief (DailyOnTime).
- Kontrolle der aktuell zugewiesenen Leistung (
Aktuelle_Leistung) und des Taktschutzes (IsTimerActive).
- Anpassung der Steuerungsprioritäten (
PV_Prio, Sperre_Prio).
7. Mapping auf Code-Komponenten
| Komponente |
Funktion im Code (module.php) |
| Timer-Registrierung |
ApplyChanges() setzt den Haupt-Berechnungstimer Timer_Do_UserCalc_Verb. |
| Nacht-Erkennung |
ist_nachts() prüft hardcodiert die Zeitspanne 22:00 bis 07:00 Uhr. |
| Laufzeit-Überwachung |
GetCurrentData() nullt DailyOnTime beim Wechsel von Tag zu Nacht. Die Laufzeit wird in SetAktuelle_Leistung() pro Intervall hochgezählt. |
| Betriebslogik |
GetCurrentData($Peak) baut die PowerSteps. Ist es Nacht und die Mindestlaufzeit nicht erreicht, wird [BoilerLeistung] erzwungen. Am Tag oder nach Erreichen der Zeit wird [0, BoilerLeistung] für Überschussladen angeboten. |
| Taktschutz |
SetTimerOn() und ResetPowerSteps() blockieren die Modifikation der PowerSteps für die Dauer von Zeit_Zwischen_Zustandswechseln. |
| Aktorsteuerung |
SetAktuelle_Leistung($power) vergleicht die geforderte Leistung mit BoilerLeistung und setzt die Variable in Schaltkontakt1 entsprechend auf true oder false. |
8. Zukünftige Erweiterungen
- Dynamische Nachtzeiten/Stromtarife: Konfigurierbare Start- und Endzeiten für den Nacht- bzw. Niedertarifzeitraum über die Modul-Properties (statt hardcodiert 22:00 bis 07:00 Uhr).
- Externer Hardware-Status: Rücklesefunktion des Aktors, um manuelle Schaltungen am Relais in der
DailyOnTime und Energieberechnung zu berücksichtigen.