PHP Modul zum Einbinden einer Go-eCharger Wallbox

Interessant. Ich verwende UpdateTimer, welche das regelmäßige Abrufen steuern. Diese Timer werden nur verändert (also gestartet/Intervall geändert/gestoppt), wenn man die Einstellungen des Moduls verändert oder das Laden startet oder stoppt.
Warum es mehrere dieser Timer-Threads mit dem gleichen Timer Ident („GOeChargerTimer_UpdateTimer“) gibt, erklärt sich mir nicht :frowning:

Das parallele Lesen des anderen Systems sollte eigentlich keine Auswirkungen haben.

Danke für das Skript. Bei mir gibt es zwar ca. 30 Threads, aber keiner, der zu einer Ausgabe (>60 sek.) führt.

Auf welcher IPS Version bist du? Und steht im Modul-DebugLog etwas Interessantes (z.B. bzgl. Semaphoren)?

Ich hab die aktuelle IPS Version. Ich hab gerade gesehen, das deine CURL-Aufrufe ohne Timeout ausgeführt werden. Eventuell ist das ja das Problem. Setzt man den nicht, so steht der auf Unendlich.

Ich habe das gleiche Problem, folgende Meldungen erzeugt der Integrity Check:

Das geht doch in die gleiche Richting!

Nicht nur eventuell… das IST das Problem :wink:
Gleiches Problem gab es auch bei anderen Modulen.
Michael

Schaue ich mir morgen an und behebe es.

Was mich interessieren würde: Warum ist es bei mir in der 6.2 kein Problem ?

Glücklicher Einzelfall? Änderungen in >6.3?

Wesentliche Änderung war die 6.0 als das Script Laufzeitlimit wegfiel.
Was es sonst noch sein kann, aber schwer nachzuvollziehen, ist die in PHP vorhandene CURL Umsetzung. Eventuell ist das Verhalten je nach PHP Version oder auch je nach dem zugrunde liegenden OS anders.
Michael

Beta V2.2.1 des Moduls ist im Store (Curl Timeout)

Feedback willkommen :wink:

vielen Dank! Sieht bisher gut aus bei mir…

V2.2.1 ist nun Stable (Beta geschlossen)

Hallo,
ich bin derzeit am testen von SetCurrentChargingWatt und der Implementierung in den Energie Optimierer. Soweit klappt alles schon sehr gut. Jedoch verhält sich go-e am Ende einer Ladung für mich nicht nachvollziehbar. Das Script wird zyklisch aktualisiert.
Ausgangslage: Umsetzung von Sofortladen wenn die PV-Anlage keine Leistung abgibt. SOC soll Variante wird mit SOC ist Variante verglichen (SOC soll ist in Symcon vorgegeben und nicht vom Fahrzeug) und die Ladung wird ggf. gestartet.

Start der Ladung: Der Wert 11000 (11kw) wird an eine Variable übergeben. Diese holt sich SetCurrentChargingWatt über GetValue und stößt den Ladevorgang mit 11 Kw an. Das alles klappt ohne Probleme.
Ende der Ladung (SOC soll = SOC ist): Der Wert 0 (0kw) wird an eine Variable übergeben. Diese holt sich SetCurrentChargingWatt über GetValue und stoppt den Ladevorgang.

Nun passiert folgendes: Der Ladevorgang wird gestoppt. Nach einigen Sekunden fängt go-e für ca. eine Minute an einphasig zu laden. Im Anschluss wird der Ladevorgang endgültig gestoppt. Ich frage mich, wie dieses Verhalten zustande kommt. SetCurrentChargingWatt ist definitiv „0“

Was sagt denn das Debug-Log vom Modul (ggf. gibt‘s in den Einstellungen noch einen Schalter für mehr Infos)? Da müssten die Kommandos Richtung Charger ausgegeben werden.

Ich habe ähnliche Logiken und kein solches Verhalten (Hw V3 Fw 0.55)

Ich konnte das Problem lösen. Scheinbar waren (von openwb) einige Einstellungen am go-e Charger selbst an diesem Verhalten schuld. Die bisherigen Ladevorgänge funktionierten ohne Probleme!

Noch eine andere Frage: ich bekomme in der go-e-App gerade das Update von 55.7 auf 55.8 angeboten.
Ich bin eigentlich ein Update-Freund (bugfixes, …), will aber nicht riskieren, dass das Modul eventuell nicht mehr funktioniert.
Wie sieht da die Erfahrung mit Go-e zum Thema „API-Stabilität“ aus?

Kurz: Ich update meine Charger nicht, so lange sie tun was sie sollen.
API Stabilität, insbesondere der von meinem Modul verwendeten alten API ist nicht unbedingt die Stärke von Go-e….

1 „Gefällt mir“

Danke für die schnelle Rückmeldung, werde ich dann auch lassen.

Moin, habe vor einigen Tagen das Update von 055.7Beta auf 055.8 eingespielt . Bisher 9* geladen und konnte keine Probleme feststellen.

Leider besteht mein Problem mit „SetCurrentChargingWatt“ nun doch noch. Im Log ist gut zu sehen was passiert:

14:06:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage with 11500Wh and 0A minimum
14:06:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage: Target is 3phase(s) with 16A

14:07:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage with 0Wh and 0A minimum
14:07:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage: Target is 1phase(s) with 0A

14:07:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage: Switch of phases needed
14:07:00 | GO-eCharger | Trigger http://192.168.0.xx/mqtt?payload=fsp=1

14:08:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage with 0Wh and 0A minimum
14:08:00 | GO-eCharger | setCurrentChargingWattWithMinimumAmperage: Target is 1phase(s) with 0A

Dadurch wird das Laden nach dem eigentlichen Ladevorgang mit einer Phase für weitere 5 Minuten geladen (bedingt durch hinterlegte Wartezeit zwischen ein-/ ausschalten)

Das Script sieht folgendermaßen aus:

Muss ich dem Script nur mehr Input geben?

2024_01_06 go-e log.txt (3,7 KB)

Fehlen da Log Einträge? Ich würde nach „setCurrentChargingWattWithMinimumAmperage: Target is 3phase(s) with 16A“ durchaus noch das eine oder andere vor einem „setCurrentChargingWattWithMinimumAmperage with 0Wh and 0A minimum“ erwarten…

Vielleicht gehe ich doch mal etwas zurück (vor 10 Tagen). Du schreibst:

Blockzitat
Start der Ladung: Der Wert 11000 (11kw) wird an eine Variable übergeben. Diese holt sich SetCurrentChargingWatt über GetValue und stößt den Ladevorgang mit 11 Kw an. Das alles klappt ohne Probleme.

Was meinst du mit „holt sich SetCurrentChargingWatt über GetValue“? Im Grunde ruft man ja einfach „setCurrentChargingWatt“ auf und gut ist. Das Modul macht den Rest. Will man eine Minimal-Ladung haben, dann halt „setCurrentChargingWattWithMinimumAmperage“

Genauso würde ein "setCurrentChargingWatt(xxxx, 0) das Laden beenden (eigentlich alles unterhalb von 1.380Watt (bzw. 4.140Watt, wenn nur 3 phasig geht), weil dann unter 6A gesetzt werden müssten).

Alles, was du dann schreibst, ist für mich unklar, da ich ja nicht weiß,

  • Was macht der GO-e konkret
  • Werden die Phasen gewechselt? (-> GO-e stoppt die Ladung, Auto zieht nach, GO-e startet selbstständig(!) wieder an, Auto zieht nach → da kann das mal etwas mit der Ladeleistung rappeln)

Dein Log sagt mir:

  1. 14:06 - du willst mit 11.5kW Laden (und das Modul will 16A, 3phasig setzen)
    Da kein Phasenwechsel genannt wird, war man wohl auf 3phasig
  2. 14:07 - du willst mit 0kW laden (und das Modul will auf 0A, 1phasig wechseln)
    Der Phasenwechsel wird gemeldet, also auch angetriggert
  3. 14:08 - du willst mit 0kW laden (und das Modul bleibt auf 0A sowie 1phasig)

Du schreibst

Blockzitat
Dadurch wird das Laden nach dem eigentlichen Ladevorgang mit einer Phase für weitere 5 Minuten geladen (bedingt durch hinterlegte Wartezeit zwischen ein-/ ausschalten)

Ich vermute also, das 5 Minuten (+/- 1) Wartezeit zwischen Ladestart/Ende eingestellt hast, richtig? Dann würde alles passen.

Wie gesagt. Ich mache das sehr ähnlich: 2 GO-e Charger, beide mit Wartezeiten (1+2 Minuten sowie 2+2 Minuten), alle Komfort-Funktionen aktiv:


Mein Ladeskript prüft minütlich den verfügbaren Überschuss meiner Solaranlage, verteilt diesen dann auf die 2 Wallboxen und setzt dann den jeweiligen kWh Wert mittels

GOeCharger_setCurrentChargingWatt(ID, Ladeleistung in Watt );

Und natürlich kommt es durch Phasenwechsel bzw. Wartezeit auch mal vor, das erst nach einem weiteren setzen der Ladeleistung diese wirklich gesetzt wurde (weil der GO-e oder das Auto noch mit was anderem Beschäftigt war). Und das funktioniert seit Jahren.

Hallo Coyote,
bevor ich weiter in die Tiefe geht die Beschreibung was genau passiert:
Die Phasen gewechselt? (-> GO-e stoppt die Ladung, Auto zieht nach, GO-e startet selbstständig(!) wieder an, Auto zieht nach. Das Auto zieht dann für 5 Minuten, da die Wartezeit so eingestellt ist. Die beiden oberen Komfortfunktionen sind nicht gesetzt.
GetValue prüft den verfügbaren Überschuss und setzt den Wert in GOeCharger_setCurrentChargingWatt.
Habe nochmal ein vollständiges Log von einem weiteren Ladevorgang
angehängt 2024_01_06b go-e log.txt (20,0 KB) . Die Die Wartezeit ist auf eine Minute reduziert. Diesen Ladevorgang habe ich zusätzlich mit der Tesla App betrachtet. Es ist tatsächlich so:

  • 11 Kw Ladung mit 3 Phasen wird gestoppt
  • Im Anschluss wird ein erneuter Ladevorgang gestartet. Bis zum Ablauf der Wartezeit wird mit 3 Kw und einer Phase nachgeladen. Wie schon geschrieben, wird der Soll-SOC in Symcon und nicht im Fahrzeug festgelegt.

Mehr kann ich erstmal nicht testen da der Akku recht voll ist :smile: