# Enelix Manager Dieses Modul steuert in festgelegten Intervallen die Leistungsverteilung auf Verbraucher-Instanzen, wählt zwischen Solarladen und Peak-Shaving und verteilt die Leistung in definierten Schritten an die Verbraucher. --- ## Inhaltsverzeichnis 1. [Funktionsumfang](#1-funktionsumfang) 2. [Voraussetzungen](#2-voraussetzungen) 3. [Installation](#3-installation) 4. [Instanz anlegen & Konfiguration](#4-instanz-anlegen--konfiguration) 5. [Statusvariablen](#5-statusvariablen) 6. [WebFront / Bedienung](#6-webfront--bedienung) 7. [Mapping auf Code-Komponenten](#7-mapping-auf-code-komponenten) 8. [Zukünftige Erweiterungen](#8-zukünftige-erweiterungen) --- ## 1. Funktionsumfang - **Zyklische Steuerung:** In konfigurierbaren Intervallen (`Interval`) wird die Energieverteilung über den Timer `Timer_DistributeEnergy` ausgelöst. - **Betriebsmodus:** Automatische oder statische Umschaltung zwischen Solarladen (`Is_Peak_Shaving = false`) und Peak-Shaving (`Is_Peak_Shaving = true`), abhängig vom `Netzbezug` und den parametrierten Schwellwerten. - **Priorisierung:** Sortierung der Verbraucher nach `PV_Prio` (Solarmodus) oder `Sperre_Prio` (Peak-Shaving). Bei gleicher Priorität entscheidet die `Bezogene_Energie`. - **Energieverteilung:** Die verbleibende Leistung wird basierend auf den `PowerSteps` der Verbraucher abgearbeitet und zugeteilt. - **Externe Steuerung (Hauptmanager):** Integration in übergeordnete Managementsysteme (z.B. V-ZEV, LEG) über die Variablen `DatenHoch` und `DatenZuruck`, Funktion ist in der aktuellen Version erst beschränkt verfügbar. --- ## 2. Voraussetzungen - IP-Symcon **≥ 8.0** - Modul-URL: `https://git.belevo.ch/dh/enelix.git` - Zuweisung der Verbraucher-Instanzen in der `Verbraucher_Liste` --- ## 3. Installation 1. In IP-Symcon **Module Control** öffnen 2. **Hinzufügen → Git-Repository** 3. URL eintragen: https://git.belevo.ch/dh/enelix.git 4. Modul installieren --- ## 4. Instanz anlegen & Konfiguration ### 4.1 Instanz anlegen - Rechtsklick **Instanzen** → **Instanz hinzufügen** - Filter: **Belevo** - Auswahl: **Manager** ### 4.2 Properties | Name | Typ | Beschreibung | |---|---|---| | **Peakleistung** | Integer | Sollwert-Vorgabe für Peak-Shaving (Watt) | | **Ueberschussleistung** | Integer | Sollwert-Vorgabe für Solarladen (Watt) | | **Netzbezug** | Integer | Objekt-ID der Variable mit dem aktuellen Netzbezug | | **Verbraucher_Liste** | String | JSON-Liste aller zu steuernden Verbraucher-Instanzen | | **UmschaltpunktStatisch** | Boolean | Aktiviert statische Umschaltpunkte (Ignoriert dynamische Mittelwertberechnung) | | **Umschalt_Solarladen** | Integer | Schwellwert für den Wechsel in den Solarladen-Modus (bei statischer Umschaltung) | | **Umschalt_Peakshaving** | Integer | Schwellwert für den Wechsel in den Peak-Shaving-Modus (bei statischer Umschaltung) | | **HauptmanagerAktiv** | Boolean | Aktiviert die externe Steuerung durch einen übergeordneten Manager | | **ManagerID** | Integer | Eindeutige ID für die externe Manager-Kommunikation | | **DatenHoch** | Integer | Objekt-ID der Variable zum Senden von JSON-Daten an den Hauptmanager | | **DatenZuruck** | Integer | Objekt-ID der Variable zum Empfangen von JSON-Daten vom Hauptmanager | | **Interval** | Integer | Berechnungsintervall für den Timer und die neuverteilung der Leistungsdaten in Sekunden | --- ## 5. Statusvariablen | Ident | Typ | Beschreibung | |---|---|---| | **Is_Peak_Shaving** | Boolean | Modusanzeige (`false` = Solarladen, `true` = Peak-Shaving) | --- ## 6. WebFront / Bedienung Dem Managermodul müssen bei Erstinbetriebnahme eine Variable mit dem zu regelnden Netzbezug sowie die zu Steuernden Verbraucher konfiguriert werden. Anschliessend läuft das Modul autononom gemäss [Funktionsumfang](#1-funktionsumfang). Einzig wird im WebFront der aktuelle Modus über die Statusvariable `Is_Peak_Shaving` visualisiert. --- ## 7. Mapping auf Code-Komponenten | Komponente | Funktion im Code (`module.php`) | |---|---| | **Timer-Registrierung** | `ApplyChanges()` setzt das Intervall für `Timer_DistributeEnergy`. | | **Zyklischer Aufruf** | Timer löst `RequestAction()` mit dem Ident `DistributeEnergy` aus. | | **Mode-Entscheidlogik** | Dynamisch: Abgleich von `$Netzbezug` mit Mittelwert aus Peak und Überschuss.
Statisch: Schwellwertprüfung über Properties `Umschalt_Solarladen` / `Umschalt_Peakshaving`. | | **Leistungszuteilung** | Funktion `DistributeEnergy()` berechnet die Schritte und steuert Verbraucher via `IPS_RequestAction(..., "SetAktuelle_Leistung", ...)`. | | **Externe Kommunikation** | Funktion `DistributeEnergy_Extern()` liest/schreibt Arrays über die festgelegten Variablen-IDs. | --- ## 8. Zukünftige Erweiterungen - **Automatische Registrierung** neuer Verbraucher (ohne manuelles Eintragen, Eingetragen auf Verbruacherseite)