Files
Symcon_Belevo_Energiemanage…/README.md
2025-06-12 15:21:39 +02:00

143 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
# Symcon Belevo Energiemanagement Modul
Dieses Modul implementiert das neuartige Energiemanagementsystem von Belevo in IP-Symcon. Es verteilt elektrische Leistung auf mehrere Verbraucher (z. B. Elektroauto-Ladestationen, Boiler, Speicher) dynamisch nach Priorität und Fairness und unterstützt sowohl Solarlade- als auch Peak-Shaving-Betrieb.
---
## Übersicht
- **Manager-Instanz**
Zentrale Logik für Soll-Ist-Vergleich, Priorisierung und Leistungsverteilung.
- **Verbraucher-Instanzen**
Jedes ansteuerbare Gerät (Ladestation, Boiler etc.) ist eine eigene Instanz, die ihre Leistungswünsche über standardisierte Variablen meldet.
---
## Voraussetzungen
- IP-Symcon **≥ 8.0**
- Zugriff auf Git-Repository
---
## Installation
1. In IP-Symcon → **Module Control** öffnen.
2. Auf **“Hinzufügen”** → **“Git-Repository”** klicken.
3. URL eintragen: https://git.belevo.ch/dh/Symcon_Belevo_Energiemanagement_testing.git
4. Modul installieren und neu laden.
---
## 1. Manager-Instanz anlegen
1. Rechtsklick auf **Instanzen****Instanz hinzufügen**
2. Filter: „Belevo EMS Manager“
3. Instanz erstellen und aufrufen
### Manager-Eigenschaften
| Property | Typ | Beschreibung |
|-----------------------------------|-----------|--------------------------------------------------------------------------------------------------|
| **Zeit_Zwischen_Zustandswechseln**| Integer | Dauer (Sekunden) zwischen zwei Zustandswechsel-Zyklen (Default: 5 s) |
| **Interval** | Integer | Haupt-Timer-Intervall zur Neuberechnung und Leistungsverteilung (Sekunden) |
| **Sollleistung_Max** | Float | Maximale Gesamtleistung am Netzanschluss (Watt) |
| **Ueberschussleistung** | Float | Untergrenze (Watt) für PV-Überschuss-Mode (→ Solarladen) |
| **HauptmanagerAktiv** | Boolean | Schaltet die Manager-Logik global ein/aus |
| **Verbraucher_Liste** | InstanceList | Liste aller Verbraucher-Instanzen, die der Manager steuern soll |
### Manager-Statusvariablen
| Ident | Typ | Beschreibung |
|------------------------|---------|-------------------------------------------------------------------|
| **Is_Peak_Shaving** | Boolean | `false` = Solarladen-Mode; `true` = Peak-Shaving-Mode |
| **LetzteBerechnung** | DateTime| Zeitstempel der letzten Zyklus-Ausführung |
| **Aktuelle_Differenz** | Float | Letzte Soll-Ist-Leistungsdifferenz (Watt) |
---
## 2. Verbraucher-Instanzen anlegen
Für jedes zu steuernde Gerät:
1. Rechtsklick auf **Instanzen****Instanz hinzufügen**
2. Filter: „Belevo EMS Verbraucher“
3. Instanz erstellen und aufrufen
### Verbraucher-Eigenschaften
| Property | Typ | Beschreibung |
|-----------------------|-----------|---------------------------------------------------------------------------|
| **PV_Prio** | Integer | Prioritätsstufe beim Solarladen (niedriger Wert = höhere Priorität) |
| **Sperre_Prio** | Integer | Prioritätsstufe im Peak-Shaving (niedriger Wert = höhere Priorität) |
| **PowerSteps** | String | JSON-Array möglicher Leistungsstufen (z. B. `[2000,4000,6000]` in Watt) |
### Verbraucher-Variablen (automatisch angelegt)
| 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 keine Anpassung erforderlich war |
---
## 3. Funktionsweise
1. **Zyklischer Aufruf**
— Der Manager-Timer (Interval s) startet den Verteilungszyklus.
2. **Soll-Ist-Berechnung**
— Manager liest `Sollleistung_Max` und summiert alle `Aktuelle_Leistung` der Verbraucher → Istwert I.
— D = Soll I → erforderliche Zuteilung oder Reduktion.
3. **Modus-Entscheid**
- **Solarladen (Is_Peak_Shaving = false):**
• Füllt PV-Überschuss auf bis `Ueberschussleistung`.
• Nutzt `PV_Prio` für Priorisierung.
- **Peak-Shaving (Is_Peak_Shaving = true):**
• D > 0 → reduziert Verbraucher-Leistung nach `Sperre_Prio`.
4. **Priorisierung & Fairness**
- Sortierung nach Priorität (niedrigerer Wert zuerst).
- Bei Gleichpriorität: Verbraucher mit geringerem `Bezogene_Energie` zuerst.
5. **Leistungszuweisung**
- Jeder Verbraucher erhält seine nächsthöhere Stufe aus `PowerSteps`, die ≤ D ist.
- `Aktuelle_Leistung` wird gesetzt, `Bezogene_Energie` und `Leistung_Delta` aktualisiert.
6. **Kommunikation**
- Manager schreibt neue `Aktuelle_Leistung` direkt in die Verbraucher-Variable.
- Verbraucher regeln ihre Hardware (z. B. Ladestrom) entsprechend.
---
## 4. Beispiel-Workflow
1. **Manager**:
- `Sollleistung_Max` = 11 000 W
- `Ueberschussleistung` = 0 W
- `Interval` = 5 s
2. **Verbraucher A (E-Auto):**
- `PV_Prio` = 2, `Sperre_Prio` = 3
- `PowerSteps` = `[6000, 4000, 2000]`
3. **Verbraucher B (Boiler):**
- `PV_Prio` = 3, `Sperre_Prio` = 2
- `PowerSteps` = `[6000]`
| Zyklus | Modus | Reihenfolge | Zuteilung A (W) | Zuteilung B (W) |
|--------|----------------|----------------|-----------------|-----------------|
| 1 | Solarladen | A → B | 6000 | 4000 |
| 2 | Solarladen | A → B | 6000 | 4000 |
| … | … | … | … | … |
| Peak | Peak-Shaving | B → A | 6000 (Reduktion)| 4000 (Reduktion)|
---
## 5. Support & Feedback
Bei Problemen oder Feature-Wünschen öffne bitte ein Issue im Git-Repository oder kontaktiere das Entwickler-Team.
---
© 2025 Belevo AG