Files
Symcon_Belevo_Energiemanage…/Manager/README.md
T
2026-05-12 14:34:29 +02:00

102 lines
4.8 KiB
Markdown

# 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. <br>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)