go-e API: neuer Befehl zur Stromvorgabe

Anfragen zum Erstellen von Modulen, Fragen zu Modulen
LutzB
Beiträge: 3494
Registriert: Di Feb 25, 2020 9:23 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von LutzB »

sagibo hat geschrieben: Fr Apr 23, 2021 9:52 am Ein herzliches Dankeschön noch, dass ich mir ab jetzt bei updates grep und nano sparen kann....
Da fragt sich der geneigte Leser, warum Du das nicht schon vorher per PR angeboten hast. ;)
sagibo
Beiträge: 33
Registriert: Di Feb 23, 2021 11:54 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von sagibo »

Das ist ziemlich einfach: Ich bin zu neu hier... War bislang nur im goingelectric-Forum unterwegs, dort hatte ich das auch gepostet. Da gibts einen sehr umfangreichen thread zur go-e. Und einen Verbesserungsvorschlag bei openWB habe ich auch gemacht... Besser spät als nie :) ...
PV-Anlage 5,12 kWp Ost und 4,8 kWp West mit SMA Tripower 8.0 -- Speicher BYD Battery Box Premium HVS 5.1 mit SMA SBS 3.7 -- SMA Home Manager 2.0 -- go-eCharger 22 kW Gemini und 11 kW V3 -- Ioniq Electric Premium (vFL, 2018)
sagibo
Beiträge: 33
Registriert: Di Feb 23, 2021 11:54 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von sagibo »

Hallo zusammen,

ich habe kürzlich eine go-e V3 auf die FW 054.11 hochgezogen. Dies hatte zur Folge, dass in den beiden Routinen, die den go-e Ladestrom regeln

/var/www/html/openWB/goecheck.sh
/var/www/html/openWB/runs/set-current.sh

die FW-Erkennung und daher auch die anschließende Verzweigung nicht mehr funktioniert.
Es tauchen Fehler im openWB.log auf:

"... Syntaxfehler im Ausdruck. (Fehlerverursachendes Zeichen ist \"11 >= 40\")"

Das liegt daran, dass die Variable "fwv" nicht den String "54" enthält, sondern "54 11", mit dem die Vergleichsoperation für die if-Verzweigung dann nicht mehr funktioniert.

Dies hat zur Folge, dass dann nicht mehr der EEPROM-schonende "amx="-Befehl ausgeführt wird, sondern wieder der "alte" "amp="-Befehl, der die Anzahl der flash-Schreibzyklen in der go-e erhöht und damit dessen Lebensdauer verkürzt.

Lösungen:
1) Nur noch go-e FW mit einstelligen Subversionen installieren. (Ziemlich doof, funktioniert aber... Bei der "055.0" tritt der Fehler nicht mehr auf)

2) Die Verzweigung in den Scripten reparieren. Wenn man sich darauf verlassen kann, dass das fwv-Attribut im go-e-Status keine alphanumerischen Zeichen, sondern ausschließlich Ziffern enthält, funktioniert auch
fwv=$(echo $output | jq -r '.fwv' | awk -F '.' '{print $1}')
Das war aber bei beta-Versionen früher nicht so,daher finde ich diese Lösung nicht super... Ich kann es nicht testen, aber bei einigen V2-Boxen wird das ggf. nicht funktionieren.

3) Einfach mal alte Zöpfe abschneiden. Alle go-e ab V2 FW=40 können den amx-Befehl verarbeiten. Es ist meiner Meinung nach zumutbar, dass go-e V2 Besitzer nach so langer Zeit die FW ihrer Box hochziehen. Ein Hinweis darauf, dass dies sinnvoll ist, befindet sich ja auch seit einiger Zeit in der Modulkonfig von openWB:
"Seit Firmware Version 0.40 wird PV-Laden besser unterstützt. Bitte halten Sie die go-e Firmware auf einem aktuellen Stand."

Daher mein Vorschlag: Den Hinweis ändern auf:
"Es werden nur noch go-eCharger mit Firmware ab Version 0.40 unterstützt. Bei go-e V3 und höher aktivieren Sie bitte in der go-e-Box die "API v 1".
(Letzteres muss man ja eh schon...)

Die scripte dann nur noch in der "amx=" Version deployen. Ich habe die anepassten Scripte im tgz-Archiv unten angehängt. Bei mir funktionieren sie problemlos.


Leider habe ich null Erfahrung in kollektiven Software-Pflege und -Entwicklungsprozessen. Mit meinem rudimentären shell-script Wissen aus Unix-Admin-Erfahrungen von vor 25 Jahren kriege ich gerade noch hin, die kritsichen code-Passagen zu identifizieren. Bzgl. der deployment-Prozesse in openWB habe ich keinerlei Ahnung und möchte mich da auch nicht mehr reinhängen.

Da ich meine Beobachtung aber wichtig finde, teile ich sie hier mit und bitte einen erfahrenen Co-Entwickler ( -in) sich dessen ggf. anzunehmen.

Viele Grüße
Andreas
Dateianhänge
go-e-scripts.tar.gz
go-e Scripte, die nur noch den amx-Befehl nutzen
(4.34 KiB) 57-mal heruntergeladen
PV-Anlage 5,12 kWp Ost und 4,8 kWp West mit SMA Tripower 8.0 -- Speicher BYD Battery Box Premium HVS 5.1 mit SMA SBS 3.7 -- SMA Home Manager 2.0 -- go-eCharger 22 kW Gemini und 11 kW V3 -- Ioniq Electric Premium (vFL, 2018)
TeutoRockA
Beiträge: 155
Registriert: So Jan 17, 2021 8:35 am
Wohnort: Bielefeld

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von TeutoRockA »

Ich bin für alte Zöpfe abschneiden - und wer vielleicht nicht updated hat eh ne alte OpenWB Version
mutsch2000
Beiträge: 34
Registriert: Mi Feb 24, 2021 10:54 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von mutsch2000 »

Ichbin auch dafür, wenn ihr wollt ändere ich das ab.
mkpv
Beiträge: 3
Registriert: Do Feb 25, 2021 9:37 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von mkpv »

Kann ich dann meine Go-e Hardware Version V1 trotzdem mit der openWB weiter nutzen? Sonst wäre das ein Rückschritt für mich.
mutsch2000
Beiträge: 34
Registriert: Mi Feb 24, 2021 10:54 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von mutsch2000 »

Gute Frage mit der V1 mit welcher Firmware läuft diese?

Die Änderung habe ich jetz dennoch mal eingereicht
https://github.com/snaptec/openWB/pull/2579
mkpv
Beiträge: 3
Registriert: Do Feb 25, 2021 9:37 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von mkpv »

mkpv hat geschrieben: Mo Jan 09, 2023 11:56 am Kann ich dann meine Go-e Hardware Version V1 trotzdem mit der openWB weiter nutzen? Sonst wäre das ein Rückschritt für mich.
ziehe meine Frage zurück, habe die hardware revision V2 und FW 41. Somit sollte kein Problem sein.
mutsch2000
Beiträge: 34
Registriert: Mi Feb 24, 2021 10:54 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von mutsch2000 »

was wi natürlich auch machen könnten ist die Bedingung abzuändern dass im zweifel amx zieht

quasi


if (($fwv < 40)) ; then
curl --silent --connect-timeout $goetimeoutlp2 -s http://$goeiplp2/mqtt?payload=amp=$current > /dev/null
else
curl --silent --connect-timeout $goetimeoutlp2 -s http://$goeiplp2/mqtt?payload=amx=$current > /dev/null
fi


@sagibo
Könntest du das mal ausprobieren?
LutzB
Beiträge: 3494
Registriert: Di Feb 25, 2020 9:23 am

Re: go-e API: neuer Befehl zur Stromvorgabe

Beitrag von LutzB »

Bitte mal testen:

Code: Alles auswählen

#!/bin/bash
minVersion=40

checkVersion() {
	version=$(echo "$1" | jq -r '.fwv')
	majorVersion=${version%.*}  # remove everything after a "."
	majorVersion=${majorVersion%-*}  # remove everything after a "-"
	majorVersion=${majorVersion#0}  # remove leading "0"
	if ((majorVersion >= minVersion)); then
		echo "AMX ($version >= $2)"
	else
		echo "AMP ($version < $2)"
	fi
}

JSON=(\
	'{"fwv":"054.11"}' \
	'{"fwv":"051"}' \
	'{"fwv":"040.23-beta9"}' \
	'{"fwv":"039-beta43"}' \
	'{"fwv":"039.4-beta56"}' \
	'{"fwv":"100.4-beta99"}'\
)
for j in "${JSON[@]}"; do
	checkVersion "$j" "$minVersion"
done
Wenn damit alle Fälle abgedeckt sind, kann gerne ein neuer PR erstellt werden.
Antworten