NEWS
EVSE WIFI JSON String mit JS auswerten
-
Grüße,
der Aufruf von http://1xx.1xx.xx.xx/getParameters mit Blockly Request schreibt folgenden JSON String in javascript.0.openEVSE.Parameter:
{"type":"parameters","list":[{"vehicleState":1,"evseState":false,"maxCurrent":32,"actualCurrent":32,"actualPower":0,"duration":0,"alwaysActive":false,"lastActionUser":"","lastActionUID":"","energy":0,"mileage":0,"meterReading":0,"currentP1":0,"currentP2":0,"currentP3":0}]}
Diesen wollte ich mit Javascript auswerten und die Parameter in einzelne Objekte schreiben:
on({id: 'javascript.0.openEVSE.Parameter', change: 'any'}, function (obj) { var obj = JSON.parse(getState('javascript.0.openEVSE.Parameter').val); createState('javascript.0.openEVSE.Status'); setState('javascript.0.openEVSE.Status', obj.vehicleState, true); });
Leider ohne Erfolg. Ich vermute es liegt daran, das es ein Multiline JSON ist. Lasse ich "parameters" und "list" weg, findet das Script den Wert von vehicleState.
Wie kann ich das Script dazu bringen, trotz "parameter" und "list" am Anfang des Strings, die richtigen Werte zu finden ???
Danke
-
on('javascript.0.openEVSE.Parameter', function (dp) { let obj = JSON.parse(dp.state.val).list[0];
-
Vielen Dank für die schnelle Antwort. Ich habe nicht viel Ahnung von Javascript. Mit Erfolg einfügen konnte ich deine Zeilen bisher leider nicht...
-
@Wiednitz
Komplett (ich gehe davon aus, dass der Datenpunkt "javascript.0.openEVSE.Status" bereits existiert):on('javascript.0.openEVSE.Parameter', function (dp) { let obj = JSON.parse(dp.state.val).list[0]; setState('javascript.0.openEVSE.Status', obj.vehicleState, true); });
Beachte: Der Inhalt des JSON-Strings muss sich erst ändern, damit getriggert wird.
-
Ja Danke, die Änderung war die Ursache, das Script hatte ich so auch probiert. Dachte der Start des Scriptes reicht schon aus.
Nochmals Vielen Dank !!!