125 lines
6.0 KiB
Markdown
125 lines
6.0 KiB
Markdown
# Belevo EMS Manager
|
||
|
||
Dieses Modul ist das Herzstück des Belevo Energiemanagement-Systems. Es steuert in festgelegten Intervallen die Leistungsverteilung auf Ihre Verbraucher-Instanzen, trifft den Solarlade- vs. Peak-Shaving-Entscheid und verteilt entsprechend die Leistungen 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 & Profile](#5-statusvariablen--profile)
|
||
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 Methode `DistributeEnergy()` ausgelöst.
|
||
- **Mode-Entscheid**
|
||
Basierend auf der aktuellen Netz-Sollleistung (`Sollleistung_Max`) und der PV-Überschuss-Grenze (`Ueberschussleistung`) wählt der Manager automatisch zwischen
|
||
- **Solarlade-Mode** (`Is_Peak_Shaving = false`)
|
||
- **Peak-Shaving-Mode** (`Is_Peak_Shaving = true`)
|
||
- **Leistungskonten**
|
||
Jeder Verbraucher meldet über seine Instanzvariablen (`Power`, `Bezogene_Energie`, `PowerSteps`, `PV_Prio` / `Sperre_Prio`) seinen Bedarf bzw. Reduktions- oder Einspeise-Potential.
|
||
- **Priorisierung & Fairness**
|
||
1. Sortierung der Verbraucher nach Priorität (`PV_Prio` im Solarmode, `Sperre_Prio` im Shaving-Mode)
|
||
2. Bei Gleichpriorität abwechselnde Zuteilung nach bisher bezogener Energie (`Bezogene_Energie`)
|
||
- **Differenz-Verteilung**
|
||
Die verbleibende Soll–Ist-Differenz D wird in Stufen (je Verbraucher aus `PowerSteps`) abgearbeitet, bis D ≃ 0.
|
||
- **Externe Kommunikation**
|
||
Über die Properties `DatenHoch` und `DatenZuruck` (Variable-IDs) können mehrere Manager zu einem Übergeordneten Hauptmanager zusammengefasst werden (V-ZEV, LEG).
|
||
|
||
---
|
||
|
||
## 2. Voraussetzungen
|
||
|
||
- IP-Symcon **≥ 8.0**
|
||
- Modul-URL:
|
||
https://git.belevo.ch/dh/Symcon_Belevo_Energiemanagement_testing.git
|
||
|
||
yaml
|
||
Kopieren
|
||
Bearbeiten
|
||
- Einmalige manuelle Anmeldung aller Verbraucher in `Verbraucher_Liste`
|
||
|
||
---
|
||
|
||
## 3. Installation
|
||
|
||
1. In IP-Symcon **Module Control** öffnen
|
||
2. **Hinzufügen → Git-Repository**
|
||
3. URL eingeben (oben) und **Installieren**
|
||
4. IP-Symcon neu starten
|
||
|
||
---
|
||
|
||
## 4. Instanz anlegen & Konfiguration
|
||
|
||
### 4.1 Instanz anlegen
|
||
|
||
- Rechtsklick **Instanzen** → **Instanz hinzufügen**
|
||
- Filter: **Belevo**
|
||
- Auswahl: **Manager**
|
||
|
||
### 4.2 Properties
|
||
|
||
| Name | Typ | Beschreibung |
|
||
|--------------------------|-----------------|----------------------------------------------------------------------------|
|
||
| **Peakleistung** | NumberSpinner | Sollwert-Vorgabe für Peak-Shaving (Watt) |
|
||
| **Ueberschussleistung** | NumberSpinner | Sollwert-Vorgabe für Solarladen (Watt) |
|
||
| **Netzbezug** | SelectVariable | Variable mit dem aktuellen Netz-Ist-Wert (Watt) |
|
||
| **HauptmanagerAktiv** | CheckBox | Schaltet die Ünergeordnete Manager-Logik global ein/aus |
|
||
| **ManagerID** | NumberSpinner | Eindeutige ID für externe Manager‐Kommunikation |
|
||
| **DatenHoch** | SelectVariable | Variable, in die Manager-Statistiken oder Statusdaten geschrieben werden |
|
||
| **DatenZuruck** | SelectVariable | Variable, aus der Verbraucherdaten importiert werden |
|
||
| **Interval** | NumberSpinner | Intervall für Neuberechnung der Werte (Sekunden) |
|
||
| **Verbraucher_Liste** | List | Auswahl aller Verbraucher-Instanzen, die gesteuert werden sollen |
|
||
|
||
---
|
||
|
||
## 5. Statusvariablen & Profile
|
||
|
||
| Ident | Typ | Profil | Beschreibung |
|
||
|-------------------------|------------|----------------|-------------------------------------------------------------------|
|
||
| **Is_Peak_Shaving** | Boolean | — | Modusanzeige (false = Solarladen, true = Peak-Shaving) |
|
||
| **LetzteBerechnung** | DateTime | — | Zeitpunkt der letzten Zyklus-Ausführung |
|
||
| **Aktuelle_Differenz** | Float | ~Watt~~W~ | Zuletzt berechnete Soll–Ist-Differenz |
|
||
|
||
---
|
||
|
||
## 6. WebFront / Bedienung
|
||
|
||
Im WebFront können Sie
|
||
- den **aktuellen Modus** (`Is_Peak_Shaving`) beobachten
|
||
|
||
---
|
||
|
||
## 7. Mapping auf Code-Komponenten
|
||
|
||
| Komponente | Modul-Datei | Funktion |
|
||
|---------------------------|-----------------------------|------------------------------------------------------------|
|
||
| **Timer-Registrierung** | `Manager/module.php` | `ApplyChanges()` → `SetTimerInterval('Interval', …)` |
|
||
| **Zyklischer Aufruf** | `Manager/module.php` | `ManageTimer()` ruft `DistributeEnergy()` auf |
|
||
| **Mode-Entscheidlogik** | `Manager/module.php` | Berechnung:
|
||
```php
|
||
$isPeak = $ist > (($peak + $solar) / 2);
|
||
$this->SetValue('Is_Peak_Shaving', $isPeak);
|
||
``` |
|
||
| **Datenzugriff** | `Manager/module.php` | `$this->ReadPropertyInteger('Peakleistung')` usw. |
|
||
| **Verbraucher-Schleife** | `Manager/module.php` | `$this->ReadPropertyArray('Verbraucher_Liste')` |
|
||
| **Leistungszuteilung** | `Manager/module.php` | `DistributeEnergy()` → Round-Robin über `PowerSteps` |
|
||
| **Externe Schnittstelle** | `Manager/module.php` | Verwendung von `DatenHoch` / `DatenZuruck` Variablen-IDs |
|
||
|
||
---
|
||
|
||
## 8. Zukünftige Erweiterungen
|
||
|
||
- **Automatische Registrierung** neuer Verbraucher (ohne manuelles Eintragen)
|
||
|
||
--- |