@rewenode
perfekt, vielen Dank, so langsam verstehe ich node-Red.
Nun muss ich es noch mit dem Volkszähler hinbekommen.. aber das wird sicher auch
@rewenode
perfekt, vielen Dank, so langsam verstehe ich node-Red.
Nun muss ich es noch mit dem Volkszähler hinbekommen.. aber das wird sicher auch
@rewenode said in [Problem]Daten aus JSON nutzen:
Hallo,
vielen Dank schon mal für den Tip,das klappt ja schon mal ganz gut,..
Super respekt für die Top aufbereitung.. Ich habe noch nie einen Flow gemacht, daher auch meine doofen Fragen
Die Daten kommen von der Growatt API über MQTT:
Ich hatte leider nicht gesamten String kopiert, da kommt noch ein success am Ende was nun stresst.
{'data': [{'plantMoneyText': '9.6 (â^b¬)', 'plantName': 'xxxxx', 'plantId': '234482', 'isHaveStorage': 'false', 'todayEnergy': '1.1 kWh', 'totalEnergy': '35 kWh','currentPower': '0 W'}], 'totalData': {'currentPowerSum': '0 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.6 (â^b¬)', 'todayEnergySum': '1.1 kWh', 'totalEnergySum': '35 kWh'}, 'success': True}
Hier bekomme ich nun die Fehlermeldung
"Unexpected token T in JSON at position 378"
Im anschluss möchte ich die Daten an Volkszähler geben um diese zu visualiserern.
Ich hatte da an so einen Flow gedacht, bin ich da auf dem richtigem Weg?
[{"id":"20226fae.f5f3f","type":"tab","label":"Flow 10","disabled":false,"info":""},{"id":"522399fd.b1ca3","type":"http request","z":"20226fae.f5f3f","name":"volkszaehler post","method":"POST","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":750,"y":720,"wires":[["987b67cb.1a4978"]]},{"id":"1a4ac21f.e52006","type":"template","z":"20226fae.f5f3f","name":"post data url","field":"url","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"http://localhost/middleware.php/data/{{uuid}}.json?ts={{timestamp}}&value={{payload}}","x":730,"y":640,"wires":[["81bf5d64.86db58"]]},{"id":"c46f4ca6.8a3278","type":"json","z":"20226fae.f5f3f","name":"","property":"payload","action":"","pretty":false,"x":1190,"y":640,"wires":[["522399fd.b1ca3"]]},{"id":"987b67cb.1a4978","type":"debug","z":"20226fae.f5f3f","name":"post response","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1040,"y":720,"wires":[]},{"id":"81bf5d64.86db58","type":"change","z":"20226fae.f5f3f","name":"","rules":[{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":640,"wires":[["c46f4ca6.8a3278"]]},{"id":"4997c860.5affe","type":"change","z":"20226fae.f5f3f","name":"set uuid / timestamp","rules":[{"t":"set","p":"uuid","pt":"msg","to":"c0e80280-8978-11eb-aed4-7bf6c054beaa","tot":"str"},{"t":"set","p":"timestamp","pt":"msg","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":780,"y":480,"wires":[["1a4ac21f.e52006"]]},{"id":"69a40557.f8ee4c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":540,"wires":[]},{"id":"d07f3214.8ebcf","type":"json","z":"20226fae.f5f3f","name":"JSON-String => javaScript-Objekt","property":"payload","action":"obj","pretty":false,"x":220,"y":400,"wires":[["98cccdab.a3e568","43cf62d3.bdd86c"]]},{"id":"98cccdab.a3e568","type":"change","z":"20226fae.f5f3f","name":"msg.payload.data[0].currentPower => msg.payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.data[0].currentPower","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":190,"y":480,"wires":[["69a40557.f8ee4c","4997c860.5affe"]]},{"id":"cb896446.9a8198","type":"change","z":"20226fae.f5f3f","name":"Konvertiere alle ' nach \"","rules":[{"t":"change","p":"payload","pt":"msg","from":"'","fromt":"str","to":"\"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":250,"y":260,"wires":[["d07f3214.8ebcf","5c34a8c0.88359"]]},{"id":"7f22423.5da973c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":40,"wires":[]},{"id":"5c34a8c0.88359","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":260,"wires":[]},{"id":"43cf62d3.bdd86c","type":"debug","z":"20226fae.f5f3f","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":400,"wires":[]},{"id":"70b8b8b.4428e48","type":"mqtt in","z":"20226fae.f5f3f","name":"","topic":"inverter/plant_info","qos":"2","datatype":"auto","broker":"c51b082c.bcad68","x":170,"y":40,"wires":[["7f22423.5da973c","cb896446.9a8198"]]},{"id":"c51b082c.bcad68","type":"mqtt-broker","name":"ziel","broker":"192.168.111.128","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
@rewenode
Ich habe heute mal versuch meinen MQTT / Json String auszuwerten:
So sind der String aus:
{'data': [{'plantMoneyText': '9.2 (€)', 'plantName': 'xxx', 'plantId': '23422', 'isHaveStorage': 'false', 'todayEnergy': '2 kWh', 'totalEnergy': '33.6 kWh', 'currentPower': '164.2 W'}], 'totalData': {'currentPowerSum': '164.2 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '9.2 (€)', 'todayEnergySum': '2 kWh', 'totalEnergySum': '33.6 kWh'}
Ich wollten den Wert current Power auslesen.
Leider bin ich auf ganzer Breite gescheitert.
Wenn ich nur perr MQTT die Daten auf den Debuger lege, bekomme ich folgende Meldung:
"Unexpected token ' in JSON at position 1"
Als Test habe ich mal versucht einfach nur das Item auszulesen.
[{"id":"8a70329b.ef589","type":"tab","label":"Flow 6","disabled":false,"info":""},{"id":"60f6dbff.eb65cc","type":"mqtt in","z":"8a70329b.ef589","name":"","topic":"inverter/plant_info","qos":"2","datatype":"json","broker":"c51b082c.bcad68","x":490,"y":180,"wires":[["9831eeb.105cb9"]]},{"id":"9831eeb.105cb9","type":"function","z":"8a70329b.ef589","name":"","func":"\nlet d = msg.payload['data'].currentPower;\nmsg.payload = d;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":700,"y":180,"wires":[["ab1699ec.3f381"]]},{"id":"ab1699ec.3f381","type":"debug","z":"8a70329b.ef589","name":"post response","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":180,"wires":[]},{"id":"c51b082c.bcad68","type":"mqtt-broker","name":"openhab","broker":"192.168.111.128","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
Hierbei bekomme ich:
"Failed to parse JSON string"
Nun stehe ich vor einen Rätsel..
Hat jemand wohl eine Idee?
Vielen Dank..