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:
- Einzelhaus-Anschlüsse
- ZEV/V-ZEV-Verbundsysteme
- Lastenmanagement-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 Tarifgestaltung ü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
- In IP-Symcon Module Control öffnen
- Hinzufügen → Git-Repository
- URL eintragen: https://git.belevo.ch/dh/Symcon_Belevo_Energiemanagement_testing.git
- Modul installieren und IP-Symcon neu starten
1. Manager-Instanz anlegen
- Rechtsklick auf Instanzen → Instanz hinzufügen
- Filter: Belevo
- „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:
- Rechtsklick auf Instanzen → Instanz hinzufügen
- Filter: Belevo
- „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 | Aktuell angeforderte Leistung (W) | |
| Aktuelle_Leistung | Float | Vom Manager zugewiesene Leistung im aktuellen Zyklus (W) | |
| Bezogene_Energie | Float | Wh | Kumulierte Energieabnahme seit Zyklusstart (Wh) |
| Leistung_Delta | Float | 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
- Zunächst ermittelt der Manager die Soll–Ist-Differenz
D = Sollleistung_Max − Ist-Netzbezug
Dann addiert er alle aktuell zugeteilten Verbraucherleistungen zum Sollwert:
text Kopieren Bearbeiten GesamtVerteilbareLeistung = D + ∑(bereits zugeteilte Leistungen) Die Verbraucher werden nach Priorität und Fairness sortiert:
Aufsteigend nach PV_Prio (niedrig = höher)
Bei gleicher Priorität Round-Robin anhand Bezogene_Energie (weniger Energie → zuerst)
Innerhalb jeder Prioritätsstufe wird ein „Stufen-Array“ aufgebaut, das alle möglichen Leistungsstufen aller Verbraucher enthält, sortiert nach der Reihenfolge, in der sie zugeteilt werden dürfen.
Beispiel
Gegeben
Sollleistung_Max = 0 W, Ist-Netzbezug = –5000 W → D = 5000 W
Bereits zugeteilte Leistungen: A=2000 W, B=500 W → GesamtVerteilbareLeistung = 5000 + 2000 + 500 = 7500 W
Verbraucher
yaml
Kopieren
Bearbeiten
A: [0,1000,2000], Prio 1, Bezogene_Energie 5 kWh, aktuell 2000 W
B: [0,500,1500,2500], Prio 2, Bezogene_Energie 0 kWh, aktuell 500 W
C: [0,500,1500,4000], Prio 2, Bezogene_Energie 10 kWh, aktuell 0 W
D: [0,500,1200,2500], Prio 2, Bezogene_Energie 15 kWh, aktuell 0 W
E: [0,200,1500], Prio 3, Bezogene_Energie 15 kWh, aktuell 0 W
Stufen-Array pro Prio
yaml
Kopieren
Bearbeiten
Prio 1: A0, A1000, A2000
Prio 2: B0, C0, D0, B500, C500, D500, D1200, B1500, C1500, B2500, D2500, C4000
Prio 3: E0, E200, E1500
Verteilung
Prio 1
7500 W − 0 W (A0) = 7500 W
7500 W − 1000 W (A1000) = 6500 W
6500 W − 2000 W (A2000) = 4500 W → A erhält 2000 W
Prio 2
4500 W − 0 W (B0) = 4500 W
4500 W − 0 W (C0) = 4500 W
4500 W − 0 W (D0) = 4500 W
4500 W − 500 W (B500) = 4000 W
4000 W − 500 W (C500) = 3500 W
3500 W − 500 W (D500) = 3000 W
3000 W − 1200 W (D1200)= 1800 W
1800 W − 1500 W (B1500)= 300 W
300 W − 1500 W (C1500)= (negativ) → nicht möglich → B erhält 2500 W, C 1500 W, D 1200 W
Prio 3
Rest 300 W
300 W − 0 W (E0) = 300 W
300 W − 200 W (E200) = 100 W → E erhält 200 W (Rest 100 W ungenutzt)
Fazit: Durch Aufaddieren der bereits verteilten Leistungen vor der Neuverteilung und das schrittweise Abarbeiten der Stufen-Arrays in Prioritäts- und Fairness-Reihenfolge wird die verfügbare Gesamtleistung optimal und gerecht auf alle Verbraucher verteilt.
4. Registrierung der Verbraucher
- Aktuell müssen alle Verbraucher manuell in
Verbraucher_Listeeingetragen 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