Seite 1 von 1
JSON path mit mqtt
Verfasst: 17. Mai 2023 10:17
von goerdi
Hi !
Irgendwie scheine ich zu doof zu sein den JSON path korrekt einzustellen
mqtt telegramm
Code: Alles auswählen
09:10:37.607 MQT: stat/bkw/STATUS10 = {"StatusSNS":{"Time":"2023-05-17T09:10:37","Switch1":"OFF","ENERGY":{"TotalStartTime":"1970-01-01T00:00:00","Total":4.405,"Yesterday":2.402,"Today":0.054,"Power":87,"ApparentPower":87,"ReactivePower":0,"Factor":1.00,"Voltage":216,"Current":0.405}}}0
Code: Alles auswählen
thing
Type number : 1pm_today "Today" [ stateTopic="stat/bkw/STATUS10", transformationPattern="JSONPATH:$.ENERGY.Today"]
Gruss Gerd
Re: JSON path mit mqtt
Verfasst: 17. Mai 2023 13:34
von Harka
Hi,
wenn ich das hier am Handy richtig sehe fehlt vor Energy noch das StatusSNS. Also JSONPATH:$.StatusSNS.ENERGY.Today
Re: JSON path mit mqtt
Verfasst: 17. Mai 2023 21:23
von udo1toni
Mal etwas anders formatiert:
Code: Alles auswählen
09:10:37.607 MQT: stat/bkw/STATUS10 = <- NICHT Bestandteil des JSON Objekts!
{
"StatusSNS": {
"Time": "2023-05-17T09:10:37",
"Switch1": "OFF",
"ENERGY": {
"TotalStartTime": "1970-01-01T00:00:00",
"Total": 4.405,
"Yesterday": 2.402,
"Today": 0.054,
"Power": 87,
"ApparentPower": 87,
"ReactivePower": 0,
"Factor": 1.0,
"Voltage": 216,
"Current": 0.405
}
}
}
0 <- NICHT Bestandteil des JSON Objekts! (vermutlich Kopierfehler)
So ist vielleicht besser ersichtlich, warum der korrekte Pfad tatsächlich
$.StatusSNS.ENERGY.Today heißt.
Tipp: MQTT Explorer oder MQTT.fx zeigen die "puren" JSON Objekte an, auf Wunsch auch formatiert.
Es gibt für VS Code Plugins, mit denen man sich jeweils den korrekten JSON Pfad für jeden Einzelwert anzeigen lassen kann.
Re: JSON path mit mqtt
Verfasst: 18. Mai 2023 12:58
von goerdi
Hi !
Ok ich hab mich mal etwas in tasmota und die update rates eingelesen und muss auf SENSOR "umschwenken"
wenn ich dich jetzt richtig verstanden hab... (hier mal nur als Auszug ein item)
Thing
Code: Alles auswählen
Thing mqtt:topic:home:bkw "Shelly Plus 1PM BKW"
(mqtt:broker:home) @ "Intel NUC5 i3"
{
Channels:
Type number : 1pm_total "Total" [ stateTopic="tele/bkw/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total"]
}
Item
Code: Alles auswählen
Number 1pm_total "Energy Total: [%.3f kWh]" <my_kwh> (g1PM) { channel="mqtt:topic:home:bkw:1pm_total" }
hier das Telegramm
Code: Alles auswählen
11:53:42.135 MQT: tele/bkw/SENSOR =
{
"Time":"2023-05-18T11:53:42",
"Switch1":"OFF",
"ENERGY": {
"TotalStartTime":"1970-01-01T00:00:00",
"Total":8.154,
"Yesterday":3.224,
"Today":0.579,
"Period":1,
"Power":640,
"ApparentPower":640,
"ReactivePower":0,
"Factor":1.00,
"Voltage":245,
"Current":2.614
}
}
Aber irgendwas passt immer noch nicht..
Gruss Gerd
Re: JSON path mit mqtt
Verfasst: 18. Mai 2023 20:46
von peter-pan
Hast du das Thing "Bridge" für deinen Broker auch angelegt ?
Edit:
An deinem Telegramm stimmt auch was nicht. Wahrscheinlich fehlt das Hochkomma und der Doppelpunkt hinter ENERGY