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