cvvmedia / GO-eCharger

IP-Symcon Modul für die GO-eCharger Wallbox

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IP-Symcon Modul für die GO-eCharger Wallbox

PHP-Modul zur Einbindung einer GO-eCharger Wallbox in IPSymcon.

Nutzung auf eigene Gefahr ohne Gewähr. Das Modul kann jederzeit überarbeitet werden, so daß Anpassungen für eine weitere Nutzung notwendig sein können. Bei der Weiterentwicklung wird möglichst auf Kompatibilität geachtet.

Dokumentation

Inhaltsverzeichnis

  1. Funktionsumfang
  2. Systemanforderungen
  3. Installation
  4. Module
  5. ChangeLog

1. Funktionsumfang

Das Modul ist dazu gedacht die GO-eCharger Wallbox zum Laden von Elektrofahrzeugen in IP-Symcon einzubinden.

Es soll sowohl Zustandsdaten (Anschluss, Ladevorgang, etc.) als auch Schaltaktionen (Ladevorgang starten/stoppen, Ladeströme setzen) zur Verfügung stellen.

2. Systemanforderungen

  • IP-Symcon ab Version 4.x

3. Installation

Vorbereitung des go-eChargers

Vor der Installation des Moduls in IPSymcon muss der go-eCharger vollständig eingerichtet sein. Da dieses Modul lokal auf den go-eCharger zugreift, muss im lokalen WLAN (nicht dem WLAN des go-eChargers!) dem go-eCharger eine statische IP zugewiesen sein. Zusätzlich muss das HTTP-API des go-eChargers in den erweiterten Einstellungen (nur über das WLAN des go-eChargers erreichbar!) eingerichtet sein.

Die Cloud des go-eChargers wird nicht verwendet. Wer möchte kann diese durch das blockieren aller Ports ausser des HTTP Ports 80 aushebeln. Die wesentlichen Einstellungen stehen auch über dieses Modul zur Verfügung

Installation des Moduls

Um eine Instanz des go-eCharger Moduls anlegen zu können muss das Modul IPSymcon bekannt gemacht werden. Hierzu wird es unter den Kern-Instanzen bei "Modules" mit dem Pfad

git://github.com/IPSCoyote/GO-eCharger

hinzugefügt.

Anschließend kann eine Instanz des Moduls angelegt werden.

Einrichten der Modul-Instanz

Nachdem eine Instanz des Moduls angelegt wurde, muss diese eingerichtet werden.

  • IP-Adresse
    Statische IP Adresse unter der der go-eCharger im lokalen WLAN erreichbar ist.

  • el. Absicherung
    Die maximale el. Absicherung, die für den go-eCharger vorhanden ist. Wenn dieser an einer 16A abgesicherten Zuleitung abgesichert ist, wären dies 16A. Andere Werte entsprechend.

  • Update Intervalle
    Hier werden die Update-Intervalle für die Instanz in Sekunden hinterlegt. Gute Werte dürften 10/10 Sekunden sein. Werte unter 5 Sekunden können zu Laufzeitproblemen holen, da ggf. das abholen der Werte länger dauern könnte. Ohne Intervalle muss die Update() Funktion für die Instanz manuell aufgerufen werden (siehe unten).

  • Komfortfunktion - automatische Aktivierung bei Anschluss
    Der go-eCharger deaktiviert sich nach einem automatischen Ladeende (siehe unten). Auch kann er manuell deaktiviert worden sein. Mit dieser Option wird das Laden automatsich re-aktiviert, wenn erneut ein Fahrzeug angeschlossen wird.

  • Komfortfunktion - automatische Aktivierung bei setzen Ladeende
    Wenn der go-eCharger deaktiv ist und man ein Ladeende setzt, muss er anschließend noch aktiviert werden. Mit dieser Option entfällt dies und das Modul übernimmt die Aktivierung des Ladevorgangs, wenn ein automatisches Ladeende gesetzt wird.

  • Fahrzeugdaten - Verbrauch
    Um den automatischen Ladestop anhand von Kilomenter-Angaben setzen zu können, muss das Modul den Durchschnittsverbrauch des angeschlossenen Fahrzeugs wissen, um die benötigten kwh berechnen zu können.

  • Fahrzeugdaten - Batteriegröße
    Die Batteriegrösse wird genutzt, um nicht unnötig viele Optionen für die 5km-Schritte der Km-Ladestop-Option anzubieten.

4. Module

Derzeit bietet das GIT nur das Modul "go-eCharger" für die direkte Steuerung eines einzelnen go-eChargers.

4.1. go-eCharger

Das Modul "go-eCharger" dient als Schnittstelle zu einem lokal installierten go-eCharger. Es liefert die Daten des go-eChargers als Statusvariablen und bietet einen Zugriff auf Funktionen des go-eChargers. Der go-eCharger muss dabei lokal über eine IP-Adresse erreichbar sein (siehe Installation).

4.1.1 Status Variablen

Im folgenden werden die verfügbaren Statusvariablen mit ihren Eigenschaften, Werten und Zugriffsmöglichkeiten aufgelistet. Wenn Funktionen verfügbar sind, sind diese im Anschluss aufgelistet.

  • RO = Read Only
  • RW = Read Write enabled
  • WF = Webfrond change enabled (die Variablen können zwecks Anzeige natürlich alle ins Webfront eingebunden werden)

Grundfunktionen zum Laden

Name Type Optionen Werte Funktionen
Wallbox aktiv Boolean RW, WF Kann an der Wallbox geladen werden? Get / Set
Status Integer RO Allgemeiner Ladestatus des go-eChargers
1: Ladestation bereit, kein Fahrzeug
2: Fahrzeug lädt
3:Warte auf Fahrzeug
4: Ladung beendet, Fahrzeug verbunden
Get
Ladeende nach x kwh Float RW, WF Ladung nach abgabe von X kwh beenden
0 = kein automatischer Ladestop
0.1-100.0 kwh
Get / Set
Ladeende nach Energie für x km Integer RW, WF Ladung nach Abgabe von Energie für X Kilomenter beenden
0 = kein automatischer Ladestop
Parameter funktioniert nur, wenn ein Verbrauch in den Einstellungen gepflegt ist!
Get / Set

Informationen zum aktuellen Ladevorgang

Name Type Optionen Werte Funktionen
Aktuelle Leistung zum Fahrzeug Float RO Gesamte Ladeleistung zum Fahrzeug in kwh Get
abgegebene Energie im Ladezyklus Float RO abgegebene Energie im aktuellen Ladezyklus in kwh
Beispiel: 5,3 kwh
Get
entsperrt durch RFID Integer RO Wurde der go-eCharger durch RFID Token X entsperrt Get

Verbrauchsinformationen

Name Type Optionen Werte Funktionen
bisher abgegebene Energie Float RO Bisher insgesamt vom go-eCharger abgegebene Energie in kwh
Beispiel: 379,0 kwh
Get
geladene Energie Karte X Float RO Geladene Energiemenge pro Karte in kwh Get

Einstellungen

Name Type Optionen Werte Funktionen
max. verfügbarer Ladestrom Integer RW, WF Maximal verfügbarer Ladestrom des go-eChargers Get / Set
aktuell verfügbarer Ladestrom Integer RW, WF Der aktuell verfügbare Ladestrom zum laden eines Fahrzeugs
Beispiel: 16 A
Get / Set
Kabel-Verriegelungsmodus Integer RW, WF Verriegelungsmodus für das Kabel
0: Verriegeln, solange Auto angesteckt
1: Nach Ladevorgang entriegeln
2: Kabel immer verriegelt
Get / Set
Zugangskontrolle via RFID/APP/Strompreis Integer RW, WF Zugangskontrolle
0: frei zugänglich
1: RFID Identifizierung
2: Strompreis/automatisch
Get / Set
minimale Ladezeit bei Strompreis-basiertem Laden Integer RW, WF Minimale ​Anzahl ​von Stunden die bei "Strompreis/automatisch" mindestens vor "Laden beendet bis" geladen werden muss Get / Set
Laden beendet bis bei Strompreis-basiertem Laden Integer RW, WF Uhrzeit, bis zu der die "minimale Ladezeit" bei "Strompreis/automatisch" geladen sein muss Get / Set
LED Helligkeit Integer RW, WF Helligkeit der LEDs
0: LED aus
1 - 255: LED Helligkeit
Get / Set
LED Energiesparfunktion Integer RW, WF Energiesparfunktion der LEDs
0: LED aus
1 - 255: LED Helligkeit
Get / Set

Technische Informationen

Name Type Optionen Werte Funktionen
Seriennummer String RO Seriennummer des go-eChargers
Beispiel: "000815"
Nein
Fehler Integer RO Liegt ein Fehler am go-eCharger vor
0: kein Fehler
1: FI Schutzschalter
3: Fehler an Phase
8: Keine Erdung
10: Interner Fehler
Nein
angeschlossener Adapter Integer RO verwendeter Adapter für den go-eCharger
0: kein Adapter
1: 16A Adapter
Nein
Kabel-Leistungsfähigkeit Integer RO Leistungsfähigkeit des angeschlossenen Kabels
0: kein Kabel
13-32: Ampere
Nein
Erdungsprüfung Boolean RO Ist die Erdungsprüfung (Norwegen Modus) aktiv Nein
Mainboard Temperatur Float RO Mainboard Temperatur in °C Nein
verfügbare Phasen String RO verfügbare Phasen
Beispiel: "Phase 1,2 und 3 ist vorhanden"
Nein
Spannungsversorgung X Integer RO Spannung an L1, L2, L3 und N in Volt Nein
Leistung zum Fahrzeug X Float RO Ladeleistung zum Fahrzeug auf L1-3 und N kwh Nein
Ampere zum Fahrzeug Lx Float RO Ampre zum Fahrzeug auf L1-3 und N in A Nein
max. verfügbare Ladeleistung Float RO Berechnete max. verfügbare Ladeleistung in kw Nein
Leistungsfaktor X Float RO Leistungsfaktor auf L1-3 und N in % Nein
Awattar Preiszone Integer RO Awattar Preiszone Nein

4.1.2. Funktionen

Update(int $Instanz)

Aktualisiert die Messwerte (IPS Variablen) des go-eChargers. Diese Funktion wird auch in Abhängigkeit der eingestellten Aktualisierungsintervall in den Moduleinstellungen ausgeführt, so dass normalerweise ein manueller Aufruf unnötig sein sollte.

GOeCharger_Update( $Instanz ); // Aktualisiert die Messwerte (IPS Variablen) des go-eChargers

Die Funktion liefert true oder false als Rückgabewert und aktualisiert die Messwerte

IsActive(int $Instanz)

Prüft, ob die Wallbox aktuell zum laden freigegeben ist.

$ChargingActivated = GOeCharger_IsActive( $Instanz ); // Ermittlung, ob Laden möglich ist

SetActive(int $Instanz, bool $aktiv)

Mit dieser Funktion kann das Laden an der Wallbox freigegeben oder abgebrochen werden.

GOeCharger_SetActive( $Instanz, false ); // deaktiviert den go-eCharger 

GetStatus(int $Instanz)

Ermittlung des aktuellen Status des go-eChargers. Rückgabewerte sind

  • 1: Ladestation bereit, kein Fahrzeug
  • 2: Fahrzeug lädt
  • 3: Warte auf Fahrzeug
  • 4: Ladung beendet, Fahrzeug noch verbunden
$Status = GOeCharger_GetStatus( $Instanz ); // Ermittlung des Status

GetAutomaticChargeStop(int $Instanz)

Der Go-eCharger kann die Ladung automatisch nach x kwh beenden. Mit dieser Funktion kann der aktuell eingestellte Wert abgefragt werden. Der Wert 0 zeigt an, das kein automatischer Ladestopp eingestellt ist.

$AutomaticChargeStopAt = GOeCharger_GetAutomaticChargeStop( $Instanz ); // liest den automatischen Ladestop 

SetAutomaticChargeStop(int $Instanz, float $kwh)

Mit dieser Funktion kann der automatische Ladestopp des go-eChargers aktiviert werden. Während der Wert '0' den automatischen Ladestopp deaktiviert, können höhere Werte bis 100 (Maximum) als Ladegrenze in kwh angegeben werden.

GOeCharger_SetAutomaticChargeStop( $Instanz, 10.5 ); // aktiviert den automatischen Ladestop bei 10,5 kwh

GetAutomaticChargeStopKm(int $Instanz)

Diese Funktion benötigt die Angabe des Durchschnittsverbrauchs in den Instanz-Einstellungen für einen PKW, der typischerweise an diesem Go-eCharger lädt! Mit dieser Funktion kann analog zur Funktion GetAutomaticChargeStop() der aktuell eingestellte Wert für den Ladestopp umgerechnet in Km abgefragt werden. Der Wert 0 zeigt an, das kein automatischer Ladestop eingestellt ist.

$AutomaticChargeStopAtKm = GOeCharger_GetAutomaticChargeStopKm( $Instanz ); // liest den automatischen Ladestop in Km

SetAutomaticChargeStopKm(int $Instanz, float $km)

Diese Funktion benötigt die Angabe des Durchschnittsverbrauchs in den Instanz-Einstellungen für einen PKW, der typischerweise an diesem Go-eCharger lädt! Mit dieser Funktion kann der automatische Ladestopp des go-eChargers aktiviert werden. Während der Wert '0' den automatischen Ladestopp deaktiviert, können höhere Werte als Ladegrenze in km angegeben werden.

GOeCharger_SetAutomaticChargeStopKm( $Instanz, 5 ); // aktiviert den automatischen Ladestop nach einer Ladung für 5km Reichweite

GetPowerToCar(int $Instanz)

Ermittlung der aktuellen Leistung in kw, die zum ladenden Fahrzeug geliefert wird

GOeCharger_GetPowerToCar( $Instanz ); // Ermittlung der Ladeleistung zum angeschlossenen Fahrzeug

GetCurrentLoadingCycleConsumption(int $Instanz)

Ermittlung der im aktuellen Ladezyklus abgegebenen kwh

GOeCharger_GetCurrentLoadingCycleConsumption( $Instanz ); // Ermittlung der im Ladezyklus abgegebenen kwh

GetUnlockRFID(int $Instanz)

Ermittlung der RFID (integer), die zum entsperren genutzt wurde.

$RFID = GOeCharger_GetUnlockRFID( $Instanz ); // Ermittlung der aktuellen RFID, die zum entsperren verwendet wurde

GetEnergyChargedInTotal(int $Instanz)

Liefert die komplette bisher über den go-eCharger geladene Energie in kwh.

$EnergyInTotal = GOeCharger_GetEnergyChargedInTotal( $Instanz ); // Ermittlung der bisherigen Ladeenergie des go-eChargers

GetEnergyChargedByCard(int $Instanz, int $cardID)

Liefert die mit einer RFID Karte geladene Energie zurück.

$EnergyByCard2 = GOeCharger_GetEnergyChargedByCard( $Instanz, 2 ); // Ermittlung der Ladeenergie für Karte 2

GetMaximumChargingAmperage(int $Instanz )

Mit dieser Funktion kann der maximal verfügbare Ladestrom des go-eChargers abgefragt werden. Es sind Werte zwischen 6 und 32 Ampere möglich.

$MaximumChargingAmperage = GOeCharger_GetMaximumChargingAmperage( $Instanz ); // Liest den maximal verfügbaren Ladestrom

SetMaximumChargingAmperage(int $Instanz, int $Ampere)

Mit dieser Funktion kann der maximal verfügbare Ladestrom des go-eChargers gesetzt werden. Es sind Werte zwischen 6 und 32 Ampere möglich. Diese Funktion hat direkte Auswirkung auf die Einstellungen des go-eChargers (Button!) sowie einen ggf. aktuell stattfindenden Ladevorgang. Der maximale Ladestrom sollte an die verfügbare Hausinstallation angepasst sein. Die über IPS maximal einstellbare Ladestrom kann über die Instanzeinstellungen beschränkt werden! Sollte der maximal verfügbare Ladestrom reduziert werden, so wird ggf. auch der aktuell eingestellte Ladestrom entsprechend verringert, sofern er das neue Maximum überschreiten würde.

GOeCharger_SetMaximumChargingAmperage( $Instanz, 16 ); // Setze den maximal verfügbaren Ladestrom auf 16 Ampere

Die Funktion liefert den eingestellten Wert oder false als Rückgabewert zurück und aktualisiert die Messwerte

GetCurrentChargingAmperage(int $Instanz)

Mit dieser Funktion kann der aktuell verfügbare Ladestrom des go-eChargers abgefragt werden. Es sind Werte zwischen 6 und 32 Ampere möglich.

$CurrentChargingAmperage = GOeCharger_GetCurrentChargingAmperage( $Instanz ); // Liest den aktuellen Ladestrom 

SetCurrentChargingAmperage(int $Instanz, int $Ampere)

Mit dieser Funktion kann der aktuell verfügbare (abgegebene) Ladestrom des go-eChargers gesetzt werden. Es sind Werte zwischen 6 und 32 Ampere möglich. Der Wert darf jedoch den derzeitigen, maximal verfügbaren Ladestrom nicht überschreiten! Sollte dies der Fall sein, so wird der maximal mögliche Wert (aktuelles Maximum) gesetzt. Diese Funktion hat direkte Auswirkung auf die Einstellungen des go-eChargers sowie einen ggf. aktuell stattfindenden Ladevorgang.

GOeCharger_SetCurrentChargingAmperage( $Instanz, 8 ); // Setze den aktuellen Ladestrom auf 8 Ampere

Die Funktion liefert den gesetzten Wert oder false als Rückgabewert und aktualisiert die Messwerte

GetCableUnlockMode(int $Instanz)

Auslesen des aktuellen CableUnlockModes. Dabei gelten folgende Werte:

  • 0 = normaler Modus - Das Kabel bleibt am go-eCharger verriegelt, solange ein Fahrzeug angeschlossen ist
  • 1 = automatischer Modus - Das Kabel wird nach dem Ladeende automatisch entriegelt
  • 2 = verriegelt - Das Kabel kann nur durch Änderung des Verriegelungsmodus entriegelt werden
$CableUnlockMode = GOeCharger_GetCableUnlockMode( $Instanz ); // liest den aktuellen Entriegelungsmodus

SetCableUnlockMode(int $Instanz, int $unlockMode)

Einstellen des CableUnlockModes. Dabei gelten folgende Werte:

  • 0 = normaler Modus - Das Kabel bleibt am go-eCharger verriegelt, solange ein Fahrzeug angeschlossen ist
  • 1 = automatischer Modus - Das Kabel wird nach dem Ladeende automatisch entriegelt
  • 2 = verriegelt - Das Kabel kann nur durch Änderung des Verriegelungsmodus entriegelt werden
GOeCharger_SetCableUnlockMode( $Instanz, 1 ); // setzt den automatischen Entriegelungsmodus

GetAccessControl(int $Instanz)

Mit dieser Funktion kann der Zustand der Zugangssteuerung (ist eine Nutzung eines RFID notwendig) abgefragt werden. Mögliche Werte sind

  • 0 = Offen
  • 1 = RFID / App benötigt
  • 2 = Strompreis / automatisch
$RFIDneeded = GOeCharger_GetAccessControl( $Instanz ); // Liest die Einstellung der Zugangskontrolle 

SetAccessControlActive(int $Instanz, int $mode)

Mit dieser Funktion kann die Zugangssteuerung via RFID oder App bzw. die Stromautomatik des go-eChargers aktiviert oder deaktiviert werden. Mögliche Werte sind

  • 0 = Offen
  • 1 = RFID / App benötigt
  • 2 = Strompreis / automatisch
GOeCharger_SetAccessControlActive( $Instanz, 1 ); // aktiviert die Zugangskontrolle per RFID

getElectricityPriceMinChargeHours(int $Instanz)

Mit dieser Funktion kann die Ladedauer ermittelt werden, die ein Fahrzeug bei automatischer Ladung mittels Strompreis das Fahrzeug mindestens geladen worden sein muss.

$minChargingHours = GOeCharger_getElectricityPriceMinChargeHours( $Instanz ); // Liest die minimalen Ladestunden bei automatischer Ladung durch Strompreis

setElectricityPriceMinChargeHours(int $Instanz, int $minChargeHours)

Mit dieser Funktion kann die Ladedauer gesetzt werden, die ein Fahrzeug bei automatischer Ladung mittels Strompreis das Fahrzeug mindestens geladen worden sein muss. Der Wert ist als Integer anzugeben. Beispiel: 2 für 2 Stunden.

GOeCharger_setElectricityPriceMinChargeHours( $Instanz, 2 ); // Das Fahrzeug muss bei automatischer, strompreis basierter Regelung mindestens 2 Stunden laden

getElectricityPriceChargeTill(int $Instanz)

Mit dieser Funktion kann die Uhrzeit ermittelt werden, bis zu welcher das Fahrzeug bei automatischer Ladung mittels Strompreis geladen sein muss.

$chargeTill = getElectricityPriceChargeTill( $Instanz ); // Liest die Ziel-Uhrzeug bei automatischer Ladung durch Strompreis

setElectricityPriceChargeTill(int $Instanz, int $chargeTill)

Mit dieser Funktion kann die Ziel-Uhrzeit für das automatische, Strompreis basierte Laden gesetzt werden. Der Wert ist als Integer anzugeben. Beispiel: 7 = 7:00 Uhr.

setElectricityPriceChargeTill( $Instanz, 7 ); // Das Fahrzeug soll bis 7:00 geladen sein

GetLEDBrightness(int $Instanz)

Ermittlung der Helligkeit der LEDs

$LEDBrightness = GOeCharger_GetLEDBrightness( $Instanz ); // Ermittlung der LED Helligkeit

SetLEDBrightness(int $Instanz, int $Brightness)

Setzen der Helligkeit der LEDs

GOeCharger_SetLEDBrightness( $Instanz, 255 ); // Setzen der LED Helligkeit auf Maximum

GetLEDEnergySave(int $Instanz)

Ermittlung der Energiespar-Einstellung für den LED Ring

$LEDEnergySaveActive = GOeCharger_GetLEDEnergySave( $Instanz ); // Ermittlung des Status der Energiespareinstellung für den LED Ring

SetLEDEnergySave(int $Instanz, bool $energySaveActive)

Aktivieren oder Deaktivieren der Energiespareinstellung für den LED Ring (Auto-Aus nach 10 Sek.)

GOeCharger_SetLEDEnergySave( $Instanz, true ); // Aktivierung der Energiespareinstellung für den LED Ring

5. ChangeLog

Änderungshistorie

Vrsion 1.5.2

  • Fehlerkorrekturen
    • Stabilisierung gegenüber fehlenden API Parametern in unterschiedlichen API Versionen

Version 1.5.1

  • Fehlerkorrekturen
    • Anpassung falscher Profile.

Version 1.5

  • Fehlerkorrekturen

    • LED Helligkeit nicht via Webfront änderbar
    • Setzen der aktuellen Stromstärke via Webfront funktioniere nicht
  • Funktionserweiterungen

    • LED Energiesparfunktion ( RW; LEDGetEnergySave / LEDSetEnergySave )
    • Awattar Preiszone (RO)
    • Funktionen zum Steuern der Strompreis-basierten Ladung (benötigte Ladezeit / geladen bis)

About

IP-Symcon Modul für die GO-eCharger Wallbox


Languages

Language:PHP 100.0%