PHP Modul zum Einbinden einer Go-eCharger Wallbox

@MaLu: Aktualisierte Version ist im Beta-Kanal. Bitte mal kurz testen und Feedback geben, ob die Temperatur nun kommt.
(kann gerade nicht selbst testen, da nicht zuhause)

tmp - gibt es nicht
tma - liefert

„tma“: [
16.5,
11
],

@RedRaz Schon Strange.

Bist du auf dem Beta-Kanal? Falls nicht, wechsel mal darauf. Die neuste Version des Moduls ist auf dem Beta-Kanal (Stable ist noch nicht durch).

Erstmals vorweg - Hut ab für die viele Arbeit - und Danke dass Du Dich so bemühst anderen IPS Jüngern zur Hand zu gehen!

In meinem TEST IPS habe ich jetzt auf die Beta gewechselt (2.1) - dort konnte ich die Version einstellen.
Ich bekomme jetzt eine Temperatur angezeigt, diese wechselt auch.


Vielleicht verstehe ich was nicht …
Ich will angeben dass er bis 29 kwH laden soll mit 6500 Watt.
Code:
$go_e_Charger =51164;
GOeCharger_SetAutomaticChargeStop( $go_e_Charger, 29.0 );
GOeCharger_SetCurrentChargingWatt( $go_e_Charger, 6500 );
GOeCharger_SetActive( $go_e_Charger, true );

Ich bekommen angezeigt:

Bei Ladeende nach x kwh - ist aber leer
Die Aktuelle Leistung zum Fahrzeug ist 3,8 kW - das ist mir klar weil daran ein VW e-Golf hängt, dieser kann nur mit 2 Phasen laden - Die Einstellung in der Instanz - Fahrzeugdaten - hat da keinen Einfluss darauf.
Klar kann ich selbst jetzt eine Hochrewchnung anstellen und dann mehr Watt angeben…
Ich müsste für verschiedene Fahrzeuge (2 oder 3 phasiges Laden) verschiedene Instanzen anlegen - oder?
LG
Alexander

Nachtrag: habe das gefunden:
dwo – uint16_t — Abschaltwert in 0.1kWh wenn stp==2, für dws Parameter Beispiel: 105 für 10,5kWh
Rechnest Du um?

@Coyote -

Danke, Du bist KLASSE!
mit der Update Version der Beta gehen nun auch die Temperaturen „TMA“.

Dann verbleibt als letztes Feld das nicht aktualisiert wird - nur noch - „aktuell temperaturbezogenes Ladestrom-Limit“

@MaLu Neue Beta. Mainboard Temp Limit (in Ampere) sollte nun auch gehen…

@Coyote - Passt - geht nun auch !

@RedRaz Das „Ladeende nach x kWh“ im Zusammenspiel mit „SetActive“ ist leider ein gutes Beispiel, wo die HW V2 und HW V3 (und 4) sich doch deutlich unterscheiden, weshalb ich ein neues Modul für HW >= V3 anstrebe.

Der Befehl „SetCurrentChargingWatt“ sollte bei 3 Phasen auf 9 A je Phase, bei 2 Phasen also 9x230x2 = 4.140kW gehen. Dazu passen die 3.8kW aktuelle Leistung (je nach Akkustand, etc.).
Ich hatte auch mal einen eGolf… und ja, ich habe vorher umgerechnet, oft aber auch nur 1Phasig geladen (wg. PV).

Jetzt zum „Problem“ der V3/4:
(Anmerkung: Das ganze ist nicht dokumentiert, das ist „Erfahrungswissen“ und ggf. nicht perfekt richtig)

Bis V1/2 war es so, das mit dem SetActive faktisch das Laden gestartet wurde. Simpel An/Aus. Beim Laden wurde ein eingestelltes Ladelimit beachtet. Fertig.

Mit der V3 ist es aber so, das man der Box sagen muss:

  1. Du lädst jetzt, egal was sonst eingestellt ist (=An/Aus)
  2. Du lädst jetzt so, wie es eingestellt ist (zum eingestellten Ladelimit, durch Tibber/Awattar gesteuert, etc.); die Box startet/stoppt dabei automatisch

Du siehst, das sich dies teilweise widerspricht. Wenn du nun mit SetAutomaticChargeStop die 29kWh setzt, dann sage ich (als Workaround) der Box: „Lade automatisch, mit Ladestop bei 29kWh“ (Option 2). Die Box sollte dann, wenn bisher in der Session nicht schon 29kWh geladen wurden, automatisch das Laden starten, sofern nicht noch andere Gründe (z.b. Tibber/Awattar Grenzen/Ladezeiten/etc) dagegen sprechen.
Wenn du dann anschließend SetActive nutzt, dann sagst du der Box: Du lädst jetzt - und ignorierst alles andere (Option 1).

Das kannst du auch in der App nachvollziehen (Erste App-Seite, Laden, Modus bzw. Status)

Deshalb funktioniert das Ganze mit HW V3/4 nun etwas „komisch“.

Versuche mal, der Box nur das Limit vorzugeben (Option 2; SetAutomaticChargeStop) und beobachte, was passiert (auch in der App). Es sollte (a) das „Ladeende nach …“ in IPS gesetzt werden und (b) in der App unter „Einstellungen“ sollte das kWh-Limit gesetzt sein.

Hoffe, das hilft

Das hatte ich gerade probiert - das geht genau so … Danke

Jetzt nur 28 kw limit ohne Watt zu setzen


komischer weise setzt er dann auch 100 km Ladeende ???

bei 9000 Watt setzen ohne Ladeende zu setzen - kommt


Wie kann ich die Watt angeben um auf meinen echten Wunschwert zu kommen bei den 2 Phasen?
Welche Formel schlägst Du vor? Wäre es denkbar den Fahrzeugdatenwert zu nehmen und die Watt im Modul anzupassen?

PS. wenn das Fahrzeug mal lädt kann man den Wert für Limit „nachschießen“ - dann wird das angezeigt.

Bzgl. Ladeende für km:

  • Welchen Verbrauch hast du im Go-eCharger per App bzw. im IPS Modul eingestellt?
  • Ggf. hängt hinter der Variablen eine Assoziation mit vorgegebenen Werten (die du ggf. anpassen kannst)

Beim eGolf habe ich einfach selbst in einem Skript die Watt in Ampere umgerechnet. Wenn du mit 6.000W laden willst, dann sind das halt 6.000 / 230 / 2 = 13 Ampere (=5.980 Watt). Dies habe ich dann mit SetCurrentChargingAmperage gesetzt :wink:

Was ist bei dir eigentlich in „verfügbare Phasen“, „verfügbare Phasen in Reihe“ sowie „aktuell genutzte Phasen beim Laden“, wenn der eGolf angeschlossen ist?

OK dann muss ich das über Amp machen.
So schauts aus - lädt jetzt

1 „Gefällt mir“

Hi,

Erst mal:

Klasse Modul, vielen Dank!!!

Ich habe folgendes Setting:

  • Auto: Smart eQ
  • Wallbox go-eCharger v4 (vorher v2)

Ich will drei Zustände abbilden:

1. Sofort laden mit 32A - 3 Phasen
2. PV Laden
3. Laden bis zu einer bestimmten Uhrzeit in Abhängigkeit des Tarifs (aWattar)

1. Sofort laden mit 32A - 3 Phasen
Mein Ziel möglichst schnelles spontanes Laden …
Das habe ich folgendermaßen umgesetzt:

GOeCharger_SetSinglePhaseCharging( 25085, false );
GOeCharger_SetCurrentChargingAmperage( 25085, 32 );

Das funktioniert und der Ladevorgang beginnt wie gewünscht :slight_smile:

2. PV Laden

$aktuellerUeberschuss = $aktuelleSolarLeistung + $aktuelleLeistungGOeCharger;
GOeCharger_SetCurrentChargingWatt( 25085, $aktuellerUeberschuss, 10);

Die min 10A habe ich gesetzt, da der Smart EQ aus meiner Erfahrung sonst Probleme bereitet.
Nach meinem Verständnis müsste das Laden ab 10A mit 1-Phase automatisch starten und wenn genug Strom vorhanden ein Umschalten auf die 3-Phasen automatisch passieren, richtig?

Es scheint theoretisch zu funktionieren! Die Werte in der App werden angepaßt, aber in der App steht:
Laden vom go-eCharger angehalten Warten auf Authentifizierung über die App oder mit dem RFID-Chip.
Das war bei meiner Sofort Laden Lösung (s.o.) nicht notwendig.
Ob es erst ab 10A starten würde kann ich nicht sehen, es werden zumindest in der App auch 8A 1-Phase angezeigt.

Welchen Denkfehler habe ich hier?

3. Laden bis zu einer bestimmten Uhrzeit in Abhängigkeit des Tarifs (aWattar)

Ich dachte, ich könnte dies mit

GOeCharger_SetAccessControlActive( $Instanz, 2 );

Lösen. Aber im Objektbaum wird mir dann freie Zugangskontrolle angezeigt …

Hat jemand eine Idee wo hier mein Denkfehler liegen?

Liegt es an der v4? Das habe ich den obrigen Beiträgen entnommen, dass hier aktuell noch Probleme auftauchen könnten …

Vielen Dank!!!

Beste Grüße

Peter

Muss ich mir anschauen. Aber SetChargerActive setzt nicht den „Modus“, den der Charger mit V3/4 bekommen hat. Da müsste ich einen neuen Befehl einbauen….

Hast dunin der Go-ECharger App eine Freigabe mit RFID eingestellt?

Explizit habe ich nicht die Nutzung von RFID nicht im Einsatz.

Ein manuelles umschalten in der App wird sofort wieder überschrieben.

Also wenn ich

$aktuellerUeberschuss = $aktuelleSolarLeistung + $aktuelleLeistungGOeCharger;
GOeCharger_SetCurrentChargingWatt( 25085, $aktuellerUeberschuss, 10);

nutze, Schaltet das System um auf Zugriffskontrolle Erforderlich

Wechsle ich auf

GOeCharger_SetSinglePhaseCharging( 25085, false );
GOeCharger_SetCurrentChargingAmperage( 25085, 32 );

Schaltet das System um auf Zugrisskontrolle Offen

Wenn ich es richtig verstehe, bedeutet ja Zugriffskontrolle Erforderlich, dass man diese per App oder RFID Chip erteilen kann.
Komisch, das man es bei Variante A tun muss und bei B nicht.

Und dann stellt sich natürlich die Frage, wie ich die noch erteilen kann :slight_smile: Wenn ich deinen Kommentar richtig verstehe, konnte man es bei der V1/2 mit SetChargerActive und mit V3/4 gibt es noch keinen Befehl dazu. Wobei er ja versteckter weise irgendwie im den beiden Varianten mit enthalten sein muss sonst würde er ja nicht den Zustand wechseln …

Hi Peter,

komisch ist, das die Zugriffskontrolle sich überhaupt ändert. Das habe ich weder bei meinen alten V1 noch bei meinen derzeitigen V3 beobachten können. Und ich arbeite bim PV Laden gerade eben mit diesen Befehlen. Bei mir ist noch nie die RFID „angesprungen“.

Die SetAccessControlActive( $Instanz, 2 ) setzt einen Parameter, den die API V2 gar nicht mehr kennt. Er wird auch über die API V1 an den Charger gesendet. Ob/Wie der Charger V4 da reagiert kann ich also nicht sagen/testen. Ich befürchte aber, das sich hier die Charger-Versionen 1 und 2 immer mehr von 3 und 4 unterscheiden.

Wie schon geschrieben wird von Go-E empfohlen, die Charger ab Hw. V3 nur noch über API V2 anzusprechen. Das macht mein Modul aber derzeit nicht (ich gehe immer noch über die API V1 und habe nur hier und da die API V2 genutzt, um es am Leben zu halten).

Ist also etwas tricky für mich (zumal ich nur HW V3 habe und somit weder für V1/2 noch V4 testen kann) :wink:

Deshalb ja die Überlegung, ein komplett neues (möglichst ähnliches) Modul für die Hw. V3/4 anzulegen, welches rein auf die API V2 aufsetzt.

Hi,

nur noch als kleine Ergänzung …

Also es scheint tatsächlich irgendwie mit dem Befehl

GOeCharger_SetCurrentChargingWatt( 25085, 10);

zusammenzuhängen.

Ich habe gerade mal direkt danach mit

http://192.168.xx.xx/api/set?acs=0

manuell den Modus zurückgesetzt und es wird direkt nach dem nächsten Aufruf von

GOeCharger_SetCurrentChargingWatt( 25085, $aktuellerUeberschuss, 10);

wieder auf 1 gesetzt.

Schade :frowning:
Vermutlich ist deine Überlegung für Hw. V3/4 ein eigenes Modul anzulegen welches rein auf API V2 aufsetzt der beste Ansatz.
Solange kann ich leider GOeCharger_SetCurrentChargingWatt nicht nutzen.

Wenn ich irgendwann etwas für dich testen … gerne!

SetCurrentChargingAmperage setzt nur die Ampere. Mehr nicht.

SetCurrentChargingWattMinimum setzt die Ampere, ändert ggf. die Phasen und startet/stoppt das Laden mit SetActive().

Ich vermute, das das SetActive (welches bei V3 mit: 1x /api/status?dwo=0 sowie dann via API V1 /mqtt/payload=alw=1 (oder 0) das laden startet/stoppt)) ein Problem macht.

Wenn du via /mqtt/payload=alw=1 das laden startest, wie ändert sich dann der RFID-Zugriffsstatus?

Hintergrund:
Soweit ich das verstanden habe wurde via API v1 mit „alw“ das Laden gestartet/gestoppt. Aber eigentlich wurde nicht das Laden selbst gestartet/gestoppt, sondern das Laden wurde „erlaubt“ und legte dann auch gleich los.
In der API V2 gibt es dazu den Parameter „frc“, mit welchem man zwischen „Laden“, „nicht laden“ und „neutral“ (=der Charger regelt, was gemacht werden soll) umschaltet.

Ich müsste also für die V3/4 das SetActive umprogrammieren auf „frc“ und ggf. für „frc“ ein neues Attribut anlegen. Ich würde nur vorher gerne verstehen, warum bei dir die RFID mit anspringt, wenn du „alw“ (SetActive, direkt oder indirekt) nutzt und bei anderen nicht.

Asche auf mein Haupt!!!

Ich habe den Fehler gefunden bzgl der Authentifizierung. Es waren Altlasten in meinem Script, die durch falsche Zuordnung der ID beim Umschalten immer ein GOeCharger_SetAccessControlActive( xxxxx, 1 ); aufgerufen haben.
Dadurch wurde dann immer die Authentifizierung aktiviert. Da hatte ich wohl früher mal was ausprobiert. Das war mir nicht mehr bewußt.
Sorry !!!

Ob es ansonsten funktioniert kann ich noch nicht abschließend testen, da aktuell das Auto in gebrauch ist …

http://192.168.xxx.xxx/mqtt/payload=alw=1
erzeugt:
Nothing matches the given URI

Da mache ich wohl was falsch.

Ich hatte bislang nur mit /api/set?acs=0 experimentiert.

BTW:
Wenn ich irgendwas bzgl. der V4 für dich testen kann, herzlichst gerne!

… und entschuldige bitte nochmal wegen meines Fehlers …

Hi Peter,

*** happens. Mir ist letztens auch meine MQTT-ShellyPlug-Konfig durcheinander geraten und ich habe ganz woanders den Fehler gesucht. Passiert halt.

Insofern danke, das du es klargestellt hast. Beruhigt mich auch etwas :wink:

Meine URL war falsch. Der API V1 Befehl wäre /mqtt?payload=alw=1
(hat sich aber ja erledigt)

Wir halten mal fest (bzw. bitte kurz bestätigen):

  • GOeCharger_SetCurrentChargingAmperage( 25085, 32 ) funktioniert
  • GOeCharger_SetCurrentChargingWattMinimum( 25085, $aktuellerUeberschuss, 10) funktioniert
  • Problem 3 bleibt: Laden via aWattar

Für den letzten Punkt muss ich den SetActive auf die API V2 umstellen und ggf. auch ein neues Attribut einführen. Wäre aber auch wohl machbar…