6.8 KiB
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
- Funktionsumfang
- Voraussetzungen
- Installation
- Instanz anlegen & Konfiguration
- Statusvariablen & Profile
- WebFront / Bedienung
- Mapping auf Code-Komponenten
- 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
PowerStepsbasierend 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
- In IP-Symcon Module Control öffnen.
- Hinzufügen → Git-Repository.
- URL eingeben und Installieren.
- 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 |
| 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
AufdasNachladenbasierend auf dem zu erwartenden Solarertrag, Anpassung des Parameters auf Monate umd Peak auf Monatsende zu optimieren.