Files
Symcon_Belevo_Energiemanage…/Manager/README.md
2025-06-12 15:58:11 +02:00

125 lines
6.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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. [Status­variablen & 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 SollIst-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 ManagerKommunikation |
| **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. Status­variablen & 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 SollIst-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)
---