# Symcon Belevo Energiemanagement Modul Dieses Modul implementiert das neuartige Energiemanagementsystem der Belevo AG in IP-Symcon. Es verteilt elektrische Leistung auf mehrere Verbraucher (z. B. Elektroauto-Ladestationen, Boiler, Speicher) dynamisch nach Priorität und Fairness. Unterstützt werden: - **Einzel­haus-Anschlüsse** - **ZEV/V-ZEV-Verbundsysteme** - **Lasten­management-Gemeinschaften (LEG)** --- ## Besonderheiten & Vorteile - **Vollständige Skalierbarkeit** von Einfamilienhaus über ZEV/V-ZEV bis LEG - **Standardisierte Schnittstelle** für Manager ↔ Verbraucher (kein ständiges Nachkonfigurieren) - **Fairness** bei gleicher Priorität durch Round-Robin-Verteilung der Leistungsschritte - **Bidirektionaler Betrieb** (z. B. Batteriespeicher, bidirektionale Ladestationen) - **Dynamische Tarif­gestaltung** über Prioritätsklassen - **Automatisches Peak-Shaving** ohne teure Netzspitzen - **Einfaches Hinzufügen/Entfernen** von Verbrauchern (aktuell manuell, später automatisch möglich) --- ## Voraussetzungen - IP-Symcon **≥ 8.0** - Zugriff auf das Git-Repository --- ## Installation 1. In IP-Symcon **Module Control** öffnen 2. **Hinzufügen → Git-Repository** 3. URL eintragen: https://git.belevo.ch/dh/Symcon_Belevo_Energiemanagement_testing.git 4. Modul installieren und IP-Symcon neu starten --- ## 1. Manager-Instanz anlegen 1. Rechtsklick auf **Instanzen** → **Instanz hinzufügen** 2. Filter: **Belevo** 3. **„Manager“** auswählen und Instanz erstellen ### Manager-Eigenschaften | Property | Typ | Beschreibung | |------------------------------------|-----------------|------------------------------------------------------------------------------| | **Zeit_Zwischen_Zustandswechseln** | Integer (Sek.) | Dauer zwischen zwei Zyklen (Default: 5 s) | | **Interval** | Integer (Sek.) | Haupt-Timerintervall zur Neuberechnung | | **Sollleistung_Max** | Float (Watt) | Maximale erlaubte Gesamtleistung am Netzanschluss | | **Ueberschussleistung** | Float (Watt) | Untergrenze für Solarlade-Mode (z. B. 0 W) | | **HauptmanagerAktiv** | Boolean | Schaltet die gesamte Manager-Logik ein/aus | | **Verbraucher_Liste** | InstanceList | Liste aller Verbraucher-Instanzen, die der Manager steuern soll | ### Manager-Statusvariablen | Ident | Typ | Beschreibung | |-------------------------|-----------|------------------------------------------------------------------------------| | **Is_Peak_Shaving** | Boolean | `true` = Peak-Shaving-Mode; `false` = Solarlade-Mode | | **LetzteBerechnung** | DateTime | Zeitstempel der letzten Ausführung | | **Aktuelle_Differenz** | Float (W) | Zuletzt berechnete Soll–Ist-Differenz | --- ## 2. Verbraucher-Instanzen anlegen Für jedes zu steuernde Gerät: 1. Rechtsklick auf **Instanzen** → **Instanz hinzufügen** 2. Filter: **Belevo** 3. **„Belevo EMS Verbraucher“** auswählen und Instanz erstellen ### Verbraucher-Eigenschaften | Property | Typ | Beschreibung | |-----------------|------------|----------------------------------------------------------------------------| | **PV_Prio** | Integer | Priorität im Solarlade-Mode (niedriger = höhere Priorität) | | **Sperre_Prio** | Integer | Priorität im Peak-Shaving-Mode (niedriger = höhere Priorität) | | **PowerSteps** | String | JSON-Array möglicher Leistungsstufen in Watt, z. B. `[0,1000,2000]` | ### Automatisch angelegte Variablen | Ident | Typ | Profil | Beschreibung | |----------------------|----------|--------------|-----------------------------------------------------------------------| | **Power** | Float | ~Watt~~W~ | Aktuell angeforderte Leistung (W) | | **Aktuelle_Leistung**| Float | ~Watt~~W~ | Vom Manager zugewiesene Leistung im aktuellen Zyklus (W) | | **Bezogene_Energie** | Float | Wh | Kumulierte Energieabnahme seit Zyklusstart (Wh) | | **Leistung_Delta** | Float | ~Watt~~W~ | Differenz zwischen `Power` und `Aktuelle_Leistung` (W) | | **Idle** | Boolean | — | `true`, wenn Verbraucher gerade keine Änderung benötigt | --- ## 3. Funktionsweise ### 3.1 Mode-Entscheid - In jedem Zyklus liest der Manager den **aktuellen Ist-Netzanschlusswert** (Summe aller `Aktuelle_Leistung`). - Er berechnet den **Schwellwert** als Threshold = (Sollleistung_Max + Ueberschussleistung) / 2 markdown Kopieren Bearbeiten - Ist der Ist-Wert **> Threshold**, setzt er **Peak-Shaving** (`Is_Peak_Shaving = true`), sonst **Solarladen** (`false`). - Diese Boolean teilt er allen Verbrauchern mit, damit sie ihre `PowerSteps`-Arrays entsprechend vorbereiten. ### 3.2 Soll–Ist-Berechnung - Differenz **D** = `Sollleistung_Max` − Ist-Wert - **D > 0**: Bedarf → Solarlade-Zuteilung - **D < 0**: Überschuss → Peak-Shaving-Reduktion ### 3.3 Leistungszuweisung - Für jeden Verbraucher wählt der Manager die **höchste** Stufe aus `PowerSteps`, die die verbleibende Differenz |D| **nicht überschreitet**. - Er durchläuft die Verbraucher nacheinander (Round-Robin), bis |D| annähernd erschöpft ist. **Beispiel:** - Verbraucher A: `[0,1000,2000]` - Verbraucher B: `[0,500,1500,2000]` - Differenz D = 3000 W 1. A erhält 1000 W → Rest 2000 W 2. B erhält 1500 W → Rest 500 W 3. Nächster Zyklus oder weitere Verteilschritte mit Rest 500 W --- ## 4. Registrierung der Verbraucher - **Aktuell müssen alle Verbraucher manuell** in `Verbraucher_Liste` eingetragen werden. - **Zukünftige Versionen** werden eine automatische Geräteerkennung unterstützen, so dass neue Verbraucher ohne Konfigurationsaufwand hinzukommen können. --- ## 5. Support & Entwicklung - **Issues & Feature-Requests** bitte im Git-Repository eröffnen. - **Entwickler**: Belevo AG