5.9 KiB
5.9 KiB
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 definierteLeistung(Ein). - Direkte Aktor-Steuerung: Schaltet eine hinterlegte IP-Symcon Variable (
Schaltkontakt1) direkt auftrueoderfalse. - 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_Zustandswechselnblockiert 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
DailyOnTimeund Energieberechnung zu berücksichtigen.