Go-E Charger API per CuXD abfragen (HTTP call in JSON)

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

Antworten
nseith
Beiträge: 316
Registriert: 23.06.2013, 11:08
Wohnort: bei Karlsruhe
Hat sich bedankt: 8 Mal
Danksagung erhalten: 3 Mal

Go-E Charger API per CuXD abfragen (HTTP call in JSON)

Beitrag von nseith » 09.02.2023, 09:55

Hallo an Alle,

da das abfragen der openWB Dank Baxxy und Tyfys so gut geklappt hat, hatte ich mich auch an die APIv1 des Go-E gewagt.

Aus der API (v1):
car uint8_t StatusPWM Signalisierung
0: unbekannt (fuer HM WerteListe)
1: Ladestation bereit, kein Fahrzeug
2: Fahrzeug lädt
3: Warte auf Fahrzeug
4: Ladung beendet, Fahrzeug noch verbunden

tme String Aktuelle Uhrzeit, formatiert als ddmmyyhhmm
0104191236 entspricht to 01.04.2019 12:36

Vorbereitung (CuXD und Variablen anlegen)

Wallbox Timestamp Zeichenkette Datum im Json:tme
Wallbox Status Werteliste unbekannt;bereit kein Auto;Auto lädt;warte auf Auto;beendet Auto verbunden im Json:car
--> unbekannt braucht man als Platzhalter

zum abfrage Script:

Code: Alles auswählen

! Abfrage des Go-E mit CUxD und Antwort in string schreiben
var url ="http://IP-Deines-GO-E/status";

dom.GetObject("CUxD.CUX2801001:5.CMD_SETS").State("wget --no-check-certificate -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:5.CMD_QUERY_RET").State(1);
string goe_xml = dom.GetObject("CUxD.CUX2801001:5.CMD_RETS").State();

! Schlüsselwoerter im String finden und Daten in Systemvariablen schreiben
! Position plus 3 stellen plus 10 Stellen wert

string word = "tme";
integer word_laenge = word.Length();
integer word_position = goe_xml.Find(word);
string daten = goe_xml.Substr((word_position + word_laenge +3), 10);
string tt = daten.Substr(0,2);
string mm = daten.Substr(2,2);
string jj = "20"#daten.Substr(4,2);
string HH = daten.Substr(6,2);
string MM = daten.Substr(8,2);
string zeit = tt#"."#mm#"."#jj#" "#HH#":"#MM;
dom.GetObject("Wallbox Timestamp").State(zeit);

string word = "car";
integer word_laenge = word.Length();
integer word_position = goe_xml.Find(word);
string daten = goe_xml.Substr((word_position + word_laenge +3), 1);
integer zahl=daten.ToInteger();
dom.GetObject("Wallbox Status").State(zahl);
Vielleicht kann auch das ja jemand brauchen.
Vielen Dank allen nochmals
N

Antworten

Zurück zu „Projektvorstellungen“