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.
Inhaltsverzeichnis
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.
- IP-Symcon ab Version 4.x
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
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.
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.
Derzeit bietet das GIT nur das Modul "go-eCharger" für die direkte Steuerung eines einzelnen go-eChargers.
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).
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)
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 |
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 |
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 |
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 |
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 |
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
Prüft, ob die Wallbox aktuell zum laden freigegeben ist.
$ChargingActivated = GOeCharger_IsActive( $Instanz ); // Ermittlung, ob Laden möglich ist
Mit dieser Funktion kann das Laden an der Wallbox freigegeben oder abgebrochen werden.
GOeCharger_SetActive( $Instanz, false ); // deaktiviert den go-eCharger
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
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
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
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
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
Ermittlung der aktuellen Leistung in kw, die zum ladenden Fahrzeug geliefert wird
GOeCharger_GetPowerToCar( $Instanz ); // Ermittlung der Ladeleistung zum angeschlossenen Fahrzeug
Ermittlung der im aktuellen Ladezyklus abgegebenen kwh
GOeCharger_GetCurrentLoadingCycleConsumption( $Instanz ); // Ermittlung der im Ladezyklus abgegebenen kwh
Ermittlung der RFID (integer), die zum entsperren genutzt wurde.
$RFID = GOeCharger_GetUnlockRFID( $Instanz ); // Ermittlung der aktuellen RFID, die zum entsperren verwendet wurde
Liefert die komplette bisher über den go-eCharger geladene Energie in kwh.
$EnergyInTotal = GOeCharger_GetEnergyChargedInTotal( $Instanz ); // Ermittlung der bisherigen Ladeenergie des go-eChargers
Liefert die mit einer RFID Karte geladene Energie zurück.
$EnergyByCard2 = GOeCharger_GetEnergyChargedByCard( $Instanz, 2 ); // Ermittlung der Ladeenergie für Karte 2
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
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
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
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
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
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
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
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
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
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
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
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
Ermittlung der Helligkeit der LEDs
$LEDBrightness = GOeCharger_GetLEDBrightness( $Instanz ); // Ermittlung der LED Helligkeit
Setzen der Helligkeit der LEDs
GOeCharger_SetLEDBrightness( $Instanz, 255 ); // Setzen der LED Helligkeit auf Maximum
Ermittlung der Energiespar-Einstellung für den LED Ring
$LEDEnergySaveActive = GOeCharger_GetLEDEnergySave( $Instanz ); // Ermittlung des Status der Energiespareinstellung für den LED Ring
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
Änderungshistorie
- Fehlerkorrekturen
- Stabilisierung gegenüber fehlenden API Parametern in unterschiedlichen API Versionen
- Fehlerkorrekturen
- Anpassung falscher Profile.
-
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)