Files

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

  1. Funktionsumfang
  2. Voraussetzungen
  3. Installation
  4. Instanz anlegen & Konfiguration
  5. Statusvariablen
  6. WebFront / Bedienung
  7. Mapping auf Code-Komponenten
  8. 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

  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: 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.