Files
Symcon_Belevo_Energiemanage…/Batterie/README.md
T
2026-05-12 14:34:29 +02:00

123 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.
# Enelix-Verbrauchermodul Batterie
Dieses Modul integriert Batteriespeicher als steuerbare Verbraucher/Erzeuger in das Belevo Energiemanagement-System (Enelix). Es berechnet dynamisch Lade- und Entladevorgaben, kommuniziert mit dem übergeordneten Manager und steuert native Wechselrichter-Schnittstellen.
---
## Inhaltsverzeichnis
1. [Funktionsumfang](#1-funktionsumfang)
2. [Voraussetzungen](#2-voraussetzungen)
3. [Installation](#3-installation)
4. [Instanz anlegen & Konfiguration](#4-instanz-anlegen--konfiguration)
5. [Statusvariablen & Profile](#5-statusvariablen--profile)
6. [WebFront / Bedienung](#6-webfront--bedienung)
7. [Mapping auf Code-Komponenten](#7-mapping-auf-code-komponenten)
8. [Zukünftige Erweiterungen](#8-zukünftige-erweiterungen)
---
## 1. Funktionsumfang
- **Zyklische Steuerung:** In konfigurierbaren Intervallen (`Interval`) berechnet das Modul die aktuell verfügbaren Leistungsschritte und aktualisiert den Status.
- **Hersteller-Integration:** Native Steuerlogik für spezifische Wechselrichter (Goodwe, Solaredge, Sig Energy). Die Modus-Umschaltung (Laden/Entladen/Standby) erfolgt automatisch durch setzen der passenden Hersteller-Codes.
- **PowerSteps-Generierung:** Das Modul meldet dem Enelix-Manager ein Array an möglichen Leistungsschritten (`PowerSteps`), berechnet aus der maximalen Lade- (`MaxBatterieleistung`) und Entladeleistung (`MaxNachladen`). Dies geschieht in 250 Watt schritten, wobei zur feineren Regelung um den aktuellen Sollwert noch 50W-Schritte verteilt werden.
- **Peak-Shaving vs. PV-Überschuss:** Automatische Anpassung der angebotenen `PowerSteps` basierend auf dem vom Manager vorgegebenen Modus (`Is_Peak_Shaving`). Im Peak-Shaving-Modus arbeitet die Batterie im unteren SoC-Bereich um lastspitzen zu brechen, im Solarmodus im oberen Bereich um den Eigenverbruach zu optimieren.
- **Peak-Shaving-Reserve:** Berücksichtigung des Ladezustands (SoC). Eine einstellbare Reserve (`AufdasNachladen`) wird für das Peak-Shaving vorgehalten. Bei Unterschreitung der Minimalkapazität (`MinimumEntladen`) wird die Entladung blockiert.
---
## 2. Voraussetzungen
- IP-Symcon **≥ 8.0**
- Modul-URL: `https://git.belevo.ch/dh/enelix.git`
- Vorhandener und eingerichteter Enelix Manager.
- Anbindung der Wechselrichter-Variablen (Netzbezug, SoC, Batterieleistung) in IP-Symcon.
---
## 3. Installation
1. In IP-Symcon **Module Control** öffnen.
2. **Hinzufügen → Git-Repository**.
3. URL eingeben und **Installieren**.
4. IP-Symcon neu starten.
---
## 4. Instanz anlegen & Konfiguration
### 4.1 Instanz anlegen
- Rechtsklick **Instanzen****Instanz hinzufügen**
- Filter: **Belevo**
- Auswahl: **Batterie (Verbraucher)**
### 4.2 Properties
| Name | Typ | Beschreibung |
|---|---|---|
| **IdleCounterMax** | NumberSpinner | Anzahl der Intervall-Zyklen zwischen zwei Leistungsänderungen. |
| **Interval** | NumberSpinner | Berechnungsintervall in Sekunden. |
| **Batterietyp** | Select | Wechselrichter-Typ (0: Unabhängig, 1: Goodwe, 2: Solaredge, 3: Sig Energy). |
| **MaxBatterieleistung** | SelectVariable | Maximale Ladeleistung der Batterie (Watt). |
| **MaxNachladen** | SelectVariable | Maximalen Entladeleistung der Batterie (Watt). |
| **AufdasNachladen** | NumberSpinner | Nachladekapazität (Reserve für Peak-Shaving in %). |
| **MinimumEntladen** | NumberSpinner | Minimale Kapazität (Tiefenentladeschutz in %). |
| **Batteriemanagement** | Select | Steuerung der Batterie durch (1: Wechselrichter, 2: Manager Enelix). |
| **Batterieladezustand**| SelectVariable | Variable mit dem aktuellen Batterieladestand (SoC in %). |
| **Netzbezug** | SelectVariable | Variable mit dem zu regelnden Netzbezug (identisch mit Manager). |
| **AktuelleBatterieleistung**| SelectVariable| Variable mit der aktuellen Ist-Leistung der Batterie. |
---
## 5. Statusvariablen & Profile
| Ident | Typ | Beschreibung |
|---|---|---|
| **PowerSteps** | String | JSON-Array der dem Manager angebotenen Leistungsschritte. |
| **Aktuelle_Leistung** | Integer | Die aktuell von der Batterie erbrachte Leistung. |
| **Power** | Integer | Interner | Die aktuell vom Manager zugewiesene Soll-Leistung. |
| **Laden_Entladen** | Integer | Herstellerspezifischer Code zum Einstellen des Lademodi (z.B. Goodwe: 11=Laden, 12=Entladen). |
| **Idle** | Boolean | Status der Sperrzeit (`true` = bereit für neue Werte, `false` = gesperrt). |
| **Hysterese** | Boolean | Zeigt an, ob die Batterie aktuell in Hystere nachregelt. |
| **Bezogene_Energie** | Float | Rechnerisch aufsummierte Energie (Leistung × Zeit). |
| **PV_Prio** | Integer | Priorität des Verbrauchers für PV-Optimierung, Tiefe Nummer = Hohe Priorität |
| **Sperre_Prio** | Integer | Priorität des Verbrauchers für Peak-Optimierung, Tiefe Nummer = Hohe Priorität |
| **Bezogene_Energie** | Float | Rechnerisch aufsummierte Energie (Leistung × Zeit). |
| **Is_Peak_Shaving** | Boolean | Vom Manager übermittelter aktueller Betriebsmodus. |
| **Goodwe_EntLadeleistung** | Interner | Zusatzvariable für Steuerung der Sollleistung bei Goodwespeichern |
| **Ladeleistung** | Interner | Sollladelesistung Speicher |
| **Entladeleistung** | Interner | Sollentladeleistung Speicher |
*(Die Variabeln `Goodwe_EntLadeleistung`, `Ladeleistung` oder `Entladeleistung` werden in abhängigkeit von `Batterietyp` angelegt).*
---
## 6. WebFront / Bedienung
Die Anbindung der Batterie sowie die regelung der Prioritäten wird über folgende Variabeln eingestellt:
`Laden_Entladen`- Signalisation ob Speicher laden soll oder entladen (Herstellerunabhängig 0 = Laden, 1 = Entladen, ansonsten Herstellerabhängige Werte)
`Ladeleistung` - Soll Ladeleistung Speicher
`Entladeleistung` - Soll Entladeleistung Speicher
`Goodwe_EntLadeleistung`- Zusatzvariable Entladeleistung für Goodwe-Speicher
`PV_Prio` - Priorität des Verbrauchers für PV-Optimierung, Tiefe Nummer = Hohe Priorität
`Sperre_Prio` - Priorität des Verbrauchers für Peak-Optimierung, Tiefe Nummer = Hohe Priorität
## 7. Mapping auf Code-Komponenten
| Komponente | Funktion im Code (`module.php`) |
|---|---|
| **Timer-Registrierung** | `ApplyChanges()` setzt `Timer_Do_UserCalc_Battery` basierend auf `Interval`. Erstellt die passenden Variabeln auf basis des Batterietyps |
| **PowerSteps Generierung**| `GeneratePowerSteps()` baut das Raster aus zulässigen Werten basierend auf MaxLaden/Entladen in 250er/50er Schritten auf. |
| **Betriebslogik & Limits**| `GetCurrentData($Peak)` filtert die `PowerSteps` je nach SoC, Hysterese und Peak-Modus. |
| **Leistungszuteilung** | `SetAktuelle_Leistung($power)` übersetzt die vom Manager geforderte Leistung in herstellerspezifische Variablen und Steuercodes. |
---
## 8. Zukünftige Erweiterungen
- **Wetter- und Prognosedaten:** Dynamische Anpassung des Parameters `AufdasNachladen` basierend auf dem zu erwartenden Solarertrag, Anpassung des Parameters auf Monate umd Peak auf Monatsende zu optimieren.