Ich muss diesen Thread mal wieder nach oben holen.
Mein Wechselrichter war ausgefallen/defekt und da dieser Flow ständig Ergebnisse lieferte, die ich nicht gebrauchen konnte, hatte ich ihn gelöscht, ohne zu wissen, dass da per mqtt alle anderen Rechner dranhingen 😞 Shit happens-
Jetzt habe ich einen neuen WR, der aber mit der neuen Firmware (5.4) ausgestattet ist.
Auch wenn @Paul53 dazu bereits in einem anderen Thread eine js-Lösung vorgestellt hat, möchte ich es nochmal mit node-red versuchen.
Wenn ich jetzt per hhtp-request aufrufe:
http://<ip>/api/dxs.json?dxsEntries=33556736&dxsEntries=33555203&dxsEntries=33555459&dxsEntries=67109120</ip>
erhalte ich im Browser:
{"dxsEntries":[{"dxsId":33556736,"value":1853.714966},{"dxsId":33555203,"value":886.787903},{"dxsId":33555459,"value":966.926941},{"dxsId":67109120,"value":1738.264160}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
auf rexex101.com erhalte ich ein Array mit den Werten über
value":(\d+.\d+)
wenn ich einen xml-node benutze erhalte ich wenn ich das richtig interpretiere, die Ergebnisse schön aufgelistet.
"<root><dxsentries><dxsid>33556736</dxsid><value>1154.386597</value></dxsentries><dxsentries><dxsid>33555203</dxsid><value>546.535339</value></dxsentries><dxsentries><dxsid>33555459</dxsid><value>607.851196</value></dxsentries><dxsentries><dxsid>67109120</dxsid><value>1081.819824</value></dxsentries><session><sessionid>0</sessionid><roleid>0</roleid></session><status>`0`</status></root>"
jetzt will ich nur noch die Werte zwischen <value>…</value> auf verschiedene DPs ausgeben, bekomme es aber ums verrecken nicht mehr hin diese Ausgabe zu splitten.
Nehme ich statt dessen einen json-node erhalte ich:
msg.payload : Object
{ dxsEntries: array[4], session: object, status: object }
nur an den Inhalt des Arrays komme ich nicht 😞
Sorry
Rainer