102 lines
4.8 KiB
Markdown
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) |