123 lines
6.8 KiB
Markdown
123 lines
6.8 KiB
Markdown
# 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.
|