Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Di Apr 13, 2021 6:07 pm
von mutsch2000
Also ich habe es jetzt trotzdem mit der Automatik gemacht.
Ich seh da auch kein Problem, ich würde eher einen noch Hinweis in die moduleconfiglp.php machen, dass für eine
bessere Unterstützung der go-e Wallbox, die Firmware auf Version 0.40 oder neuer aktualisiert werden soll.
Morgen teste ich das und dann kommts hoffentlich bald in eine nightly version
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Di Apr 13, 2021 6:25 pm
von pfoerti
Vielen Dank!
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Mi Apr 14, 2021 5:43 am
von Becker
Oh ja vielen Dank.
ich hab weder SSH Login noch Plan von dem Code Kauderwelsch
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Mi Apr 14, 2021 7:31 am
von mutsch2000
Test ist OK tut das was es soll.
PR ist erstellt.
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Fr Apr 16, 2021 5:39 pm
von pfoerti
Der Hinweis auf das Firmware-Update für den Go-e ist nach drm Update schonmal vorhanden
Danke
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Sa Apr 17, 2021 4:21 pm
von Sipple
Servus
Schön, dass es hiermit vorwärts geht. Ich war an dem Thema auch dran und musste leider wegen einer Coronatragödie in der Familie abbrechen, die mich seit Wochen beschäftigt. Meine Lösung sah sehr ähnlich aus.
Aber: So einfach ist es imho nicht.
1. Die Abfrage und Auswertung der Firmwareversion. Das ist laut go.e Beschreibung ein String und keine Zahl. Daher aufpassen beim Vergleich, da go.e auch gerne mal eine Firmwarebezeichnung verwendet, die dann in der Shell beim "Größenvergleich" nicht mehr "größer" ist als die letzte. Ich habe da mit einem Kumpel etwas rumgespielt und wir sind da zum Teil auf die Schnauze geflogen. So ging es dann letztlich (als Shellbeispiel):
Code: Alles auswählen
user:~ # vneu=050.1-rc2
user:~ # vaktuell=030
user:~ # if [[ "x$vneu" > "x$vaktuell" ]] ; then echo "Ist neuer" ; else echo "ist nicht neuer" ; fi
Ist neuer
user:~ # vaktuell=060
user:~ # if [[ "x$vneu" > "x$vaktuell" ]] ; then echo "Ist neuer" ; else echo "ist nicht neuer" ; fi
ist nicht neuer
Das ist schon einen Monat her, aber der Trick war glaub das x for dem $, also z.B. x$vneu. Größer/gleich sollte auch gehen.
2. Dass die Lösung zum Setzen des AMX von mutsch2000 funktioniert ist zumindest zum Teil Glück. Da passiert denke ich folgendes:
Irgendwann vor dem Patchen wurde ein letztes mal von der openWB Software der Wert des AMP geändert und somit im go.e EEPROM gesichert. Dort steht er nun bis er das nächste mal geändert wird, also theoretisch nie wieder.
Nach dem Patchen wird dieser Wert nur noch gelesen (oldcurrent) und mit dem aktuellen zu verwendenden Wert (current), also dem zu setzenden Wert AMX verglichen. Wären diese Werte gleich, würde richtigerweise nichts geändert werden. Da sich AMP aber eigentlich nicht mehr ändert, führt der Vergleich mit AMX dazu, dass der Ladestrom beim Regeln im go.e viel häufiger - nun per AMX - gesetzt wird als eigentlich nötig. Das funktioniert natürlich so, aber eigentlich müsste man den jeweils letzten AMX Wert in der Ramdisk speichern und im nächsten Regelzyklus als oldcurrent verwenden und NICHT den AMP. Beim Systemstart der openWB sollte der AMX auch in der Ramdisk angelegt und initialisiert werden, wahrscheinlich am besten mit 0. Vielleicht habe ich aber selber einen Denkfehler.
3. Es gibt mehr als nur einen Ort für go.e Scripts.
- im root Verzeichnis: goecheck.sh
- unter modules die drei Verzeichnisse goelp1 bis 3 mit jeweils einem Script main.sh
- unter runs das Script set-current.sh
Wie die ganzen Scripts zusammenarbeiten weiß ich noch nicht komplett, aber Hexenwerk ist es nicht. set-current ist denke ich eigentlich das wichtigste.
Wenn man den letzten AMX Wert in der Ramdisk speichern möchte, gibt es noch das Script .../runs/initRamdisk.sh, da wäre das Anlegen und Initialisieren des AMX denke ich gut aufgehoben.
Am Ende könnte man gegebenenfalls noch das openwb-install.sh Script anpassen, da habe ich auch noch was zur Ramdisk Initialisierung gefunden. Da das aber wie gesagt Wochen her ist und ich den Kopf momentan woanders habe, müsste ich nochmal schauen.
Vielleicht helfen die Erkenntnisse, vielleicht liege ich falsch oder denke zu kompliziert.
Gruß, Martin
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Mo Apr 19, 2021 8:35 am
von mutsch2000
Hi,
hallo Sipple.
1. ja, aus diesem Grund hatt eich ja dazu geschrieben "dass ich noch schauen muss wie ich das mache, da schon in der API Dokumentationein ein String dargestellt wird. Ich beziehe mich daher auch nur auf die ersten 3 Zeichen sofern das 1. Zeichen zwischen 1-9 und die folgenden 2 im Wertebereiche [0-9] sind.
fwv=$(echo $output | jq -r '.fwv' | grep -Po "[1-9]\d{1,2}") bei deinen Beispielen wäre der Wert dann 50
2. Können wir gerne machen. Mein Test zeigt aber,
1. AMP ist immer gesetzt ggf durch die go-e app oder default.
2.Wert von AMP ändert sich sich sofort nach dem setzen von AMX (ein delta zwischen AMX und AMP) existiert also nicht wie von dir dargestellt.
Quod erat demonstrandum
pi@OpenWB:~ $ curl --silent --connect-timeout 2 -s http:/192.168.178.117/mqtt?payload=amx=10 {"version":"B","tme":"1404211010","rbc":"14","rbt":"1530411415","car":"2","amp":"10","err":"0","ast":"0","alw":"1","stp":"0","cbl":"20","pha":"63","tmp":"2","tma":[12.13,11.00,11.13,12.75],"amt":"32","dws":"684373","dwo":"0","adi":"1","uby":"0","eto":"4900","wst":"3","txi":"0","nrg":[221,221,218,2,100,97,0,22,22,0,0,447,100,100,3,64],"fwv":"040.0","sse":"022616","wss":"TheAir123","wke":"**********","wen":"1","cdi":"0","tof":"101","tds":"1","lbr":"255","aho":"3","afi":"7","azo":"0","ama":"32","al1":"16","al2":"18","al3":"20","al4":"24","al5":"32","cid":"255","cch":"16711935","cfi":"65280","lse":"0","ust":"1","wak":"b95d5623ad","r1x":"0","dto":"0","nmo":"0","sch":"AAAAAAAAAAAAAAAA","sdp":"0","eca":"0","ecr":"0","ecd":"0","ec4":"0","ec5":"0","ec6":"0","ec7":"0","ec8":"0","ec9":"0","ec1":"0","rca":"048E1C7A","rcr":"","rcd":"","rc4":"","rc5":"","rc6":"","rc7":"","rc8":"","rc9":"","rc1":"","rna":"","rnm":"","rne":"","rn4":"","rn5":"","rn6":"","rn7":"","rn8":"","rn9":"","rn1":"","loe":0,"lot":17,"lom":6,"lop":1,"log":"PFCGZWSC","lon":0,"lof":0,"loa":0,"lch":0,"mce":0,"mcs":"test.mosquitto.org","mcp":1883,"mcu":"","mck":"","mcc":0}
3. Da gebe ich dir recht, aus meiner sicht sind aber nur set-current.sh oder goecheck.sh relevant. Stellt sich die Frage warum in beiden Files quasi die gleichen aufrufe drin sind. @openwb Könnt ihr da ggf noch input geben?
Danke für den input!
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Mo Apr 19, 2021 8:18 pm
von Sipple
Servus
Zu 2:
Wow, das ist mir nicht aufgefallen. Also zieht ein Setzen des AMX den AMP nach und damit kann man den zuletzt gesetzten Ladestrom als AMP immer korrekt mit auslesen. Das erklärt auch, warum man AMX setzen aber nicht auslesen kann. Das macht alles ja VIEL einfacher. Ich gehe davon aus, dass der AMP aber wirklich nur dann ins EEPROM geschrieben wird, wenn er auch als AMP direkt gesetzt wird, sonst hätten wir gar nichts gewonnen. Macht Sinn, ist aber halt von go.e sch.... dokumentiert.
Also vergiss alles was ich über die Ramdisk palavert habe. Die Lösung ist genauso simpel wie du gepostet hast.
Zu 3: Genau das habe ich mich auch schon gefragt.
Re: go-e API: neuer Befehl zur Stromvorgabe
Verfasst: Di Apr 20, 2021 7:42 am
von mutsch2000
Hi,
also ich hab mich jetzt nochmal mit den 2 files beschäfftigt. Warum auch immer aber es werden beide Files genutzt ?????
Der goecheck.sh zumindest nach dem reboot. Ansonsten macht die set-current.sh den job.
Werde also noch die Änderungen in der set-current.sh einbauen