no message
This commit is contained in:
143
README.md
143
README.md
@@ -1,3 +1,142 @@
|
|||||||
# Energiemanager_Symconmodule_Demo
|
# Symcon Belevo Energiemanagement Modul
|
||||||
|
|
||||||
Module zum Managen und Optimieren von Solarstrom und Lastmanagement innerhalb eines Symconservers
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user