Files
Symcon_Belevo_Energiemanage…/README.md
T
2025-06-12 15:58:11 +02:00

142 lines
6.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 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 SollIst-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 SollIst-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