Enelix-Verbrauchermodul Ladestation (EV Charger)
Dieses Modul integriert smarte Ladestationen (Wallboxen) für Elektroautos als steuerbare Verbraucher in das Belevo Energiemanagement-System (Enelix). Es regelt die Ladeleistung dynamisch, unterstützt verschiedene Hersteller-APIs und optimiert das Laden nach PV-Überschuss oder Peak-Shaving-Vorgaben.
Inhaltsverzeichnis
- Funktionsumfang
- Voraussetzungen
- Installation
- Instanz anlegen & Konfiguration
- Statusvariablen & Profile
- WebFront / Bedienung
- Mapping auf Code-Komponenten
- Zukünftige Erweiterungen
1. Funktionsumfang
- Hersteller-Integration: Native Unterstützung verschiedener Ladestationen und Cloud-APIs (z.B. Smart-me Pico, Easee, eCarUp, generisches MQTT / REST-API).
- Phasenerkennung: Das Modul erkennt automatisch (über Leistungsschwellen, z.B. > 7500W), ob das Fahrzeug 1-phasig oder 3-phasig lädt, und passt die internen Strom-zu-Leistung-Umrechnungen an.
- PowerSteps-Generierung: Übersetzt die zulässigen Ladeströme (Ampere) in Watt-Schritte (
PowerSteps), die dem Enelix-Manager für die Energieverteilung angeboten werden (abhängig vom definiertenMindestaldestrom, minimal 6A). - Verzögerungs- und Schutzlogiken:
Ein_Zeit/Aus_Zeit: Mindestlaufzeiten und Pausenzeiten, um den Schütz im Auto und in der Wallbox vor zu häufigem Schalten zu schützen (Taktschutz).Zeit_Zwischen_Zustandswechseln: Dämpfung von Leistungssprüngen.
- Betriebsmodi:
- Solarladen: Automatische Regelung nach PV-Überschuss.
- Sperr-Priorität: Regelung nach Peak-Shaving (Netzbezugsgrenzen).
- Fahrzeugerkennung: Freigabe der Ladeleistung nur, wenn ein Auto gesteckt (
Car_detected) und nicht voll (Car_is_full) ist.
- Token-Management: Automatischer Login und Token-Refresh für Cloud-basierte Systeme (wie Easee, E-Car-Up).
- Tarifabhängiges Solarladen Nutzerbasiertes Solarladen mit unterschiedlichen Tarifen für Solar- und Netzladen. Dieese Funktion ist nur über spezielle Token und kostenpflichtigen Konten von drittfirmen aktivierbar. Für weitere Informationen bitte die Belevo AG kontaktieren.
2. Voraussetzungen
- IP-Symcon ≥ 8.0
- Modul-URL:
https://git.belevo.ch/dh/enelix.git - Vorhandener und eingerichteter Enelix Manager.
- Netzwerkzugriff auf die Ladestation (lokale IP) oder aktive Internetverbindung für Cloud-APIs.
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: Ladestation v2 (Verbraucher)
4.2 Properties
| Name | Typ | Beschreibung |
|---|---|---|
| IP_Adresse | String | Lokale IP-Adresse der Ladestation (für lokale APIs). |
| Ladestation | Select/Int | Auswahl des API-/Hardware-Typs (z.B. 1=MQTT, 2=REST, 3=Pico, 5=eCarUp, 6=Easee). |
| ID | String | Stations-ID (z.B. für Smart-me Pico oder eCarUp). |
| Seriennummer | String | Seriennummer der Station (z.B. für Easee). |
| Username | String | Benutzername für Cloud-APIs. |
| Password | String | Passwort für Cloud-APIs. |
| Interval | NumberSpinner | Berechnungsintervall und Polling-Rate (Sekunden). |
| Max_Current_abs | NumberSpinner | Absoluter Maximalstrom der Zuleitung/Station in Ampere (z.B. 16 oder 32). |
| Zeit_Zwischen_Zustandswechseln | NumberSpinner | Verzögerungszeit zwischen zwei Leistungsanpassungen (in Minuten). |
| Ein_Zeit | NumberSpinner | Mindestlaufzeit, wenn die Ladung gestartet wird (Minuten). |
| Aus_Zeit | NumberSpinner | Mindestpausenzeit nach einem Ladeabbruch (Minuten). |
| Token_Easee | SelectVariable | Referenz auf das externe Easee-Token (Variable). |
| Token_ECarUp | SelectVariable | Referenz auf das externe eCarUp-Token (Variable). |
| IdleCounterMax | NumberSpinner | Anzahl Interval-Zyklen zwischen Leistungsänderungen (Modul-Idle). |
5. Statusvariablen & Profile
Das Modul verwendet viele interne (versteckte) Variablen für die Manager-Kommunikation. Hier die wichtigsten sichtbaren und steuerbaren Variablen:
| Ident | Typ | Profil | Beschreibung |
|---|---|---|---|
| Ladebereit | Boolean | ~Switch | Hauptschalter: Ladestation generell freigegeben oder blockiert. |
| Solarladen | Boolean | ~Switch | Aktiviert den reinen PV-Überschusslade-Modus. |
| Mindestaldestrom | Integer | - | Minimaler Ladestrom in Ampere (normalerweise mind. 6A für Typ 2). |
| Is_1_ph | Boolean | ~Switch | Anzeige: Das Fahrzeug lädt aktuell nur auf einer Phase. |
| Car_detected | Boolean | ~Switch | Status: Ein Fahrzeug ist angesteckt und bereit. |
| Car_is_full | Boolean | ~Switch | Status: Fahrzeugakku ist voll (Ladestrom < Schwelle). |
| Pending_Counter | Integer | Zähler zum Abwarten des Stationszustandes bei Zustandänderung | |
| Leistung_Delta | Integer | Leistungsabweichung von vorgegebener Soll- und Istleistung | |
| Idle | Boolean | Status der Sperrzeit (true = bereit für neue Werte, false = gesperrt). |
|
| Ladeleistung_Effektiv | Float | - | Aktuell gemessene reale Ladeleistung in Watt. |
| Bezogene_Energie | Float | - | Rechnerisch aufsummierte Ladeenergie. |
| Aktuelle_Leistung | Integer | Die aktuell von der Station erbrachte Leistung. | |
| PowerSteps | String | JSON-Array der dem Manager angebotenen Leistungsschritte. | |
| Letzer_User | String | - | Zuletzt authentifizierter RFID-Nutzer (z.B. via eCarUp). |
| 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 | |
| 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 |
6. WebFront / Bedienung
Im WebFront bietet die Instanz dem Nutzer Eingriffsmöglichkeiten in das Ladeverhalten:
-
Ladebereit: Kann genutzt werden, um die Wallbox per Knopfdruck komplett zu deaktivieren.
-
Solarladen: Zwingt das Modul in den Überschuss-Modus (es wird nur geladen, wenn Leistung durch den Manager zugewiesen wird), Andernfalls wird bei verbundenem Auto solange geladen, bis der Peakshaving-Modus die Leistung reduziert.
-
Mindestaldestrom: Definiert den Einstiegspunkt für die Ladung (z.B. 6A = ~1,4 kW bei 1-phasig / ~4,1 kW bei 3-phasig).
-
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
Zudem dient die Instanz zur Statuskontrolle (Ist ein Auto verbunden? Lädt es? Ist es voll?).
7. Mapping auf Code-Komponenten
| Komponente | Funktion im Code (module.php) |
|---|---|
| API-Schnittstellen | Get_Car_Status($carType) fragt die jeweilige Hardware ab (cURL an REST/MQTT/Easee) und aktualisiert Ladeleistung_Effektiv sowie den Fahrzeugstatus. |
| Autodetektion | Detect_Car() prüft den Zustand, zählt Pending_Counter hoch und entscheidet über Is_1_ph basierend auf Leistungsgrenzen (7500W). |
| Leistung → Strom | Get_Array_From_Current() und Get_Current_From_Power() rechnen Watt in Ampere um (P = U \cdot I \cdot Phasen). |
| Manager-Interface | GetCurrentData($Peak) baut die PowerSteps (z.B. [0, 4140, 4830, ...]) und übergibt diese dem Manager. |
| Stationssteuerung | sendPowerToStation($value) übersetzt den Soll-Strom (Ampere) in API-spezifische Kommandos (z.B. amp=16 oder {"amps":16}). |
| Taktschutz (Timers) | SetTimerNullMindestlast(), SetTimerOn() und die entsprechenden Reset-Methoden sperren Zustandswechsel nach Start/Stopp. |
| Token-Refresh | Refresh_Token() erneuert zyklisch das Access-Token (z.B. Easee) über die hinterlegten Credentials. |
8. Zukünftige Erweiterungen
- Automatische Phasenumschaltung: Direkte Ansteuerung von Wallboxen, die eine Umschaltung zwischen 1- und 3-phasigem Laden im laufenden Betrieb unterstützen (zur Erweiterung des Regelbereichs bei wenig Sonne).