NEWS
Wert aus Objekt auslesen und in Datenpunkt speichern
-
Hallo, ich bekomme per MQTT diesen String übermittelt. Wir kann ich denn über blockly die Werte von "DJ_TPWRCURR" und "Meter_total" in jeweils einen Datenpunkt schreiben?
mqtt.0 2021-01-05 15:12:40.748 debug (21339) stateChange mqtt.0.tele.Itron_mME_Power.SENSOR: {"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxx\"}} -
Hallo, ich bekomme per MQTT diesen String übermittelt. Wir kann ich denn über blockly die Werte von "DJ_TPWRCURR" und "Meter_total" in jeweils einen Datenpunkt schreiben?
mqtt.0 2021-01-05 15:12:40.748 debug (21339) stateChange mqtt.0.tele.Itron_mME_Power.SENSOR: {"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxx\"}}@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
ich bekomme per MQTT diesen String übermittelt.
wie sieht denn der inhalt des Datenpunktes im MQTT-client.0 aus?
-
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
ich bekomme per MQTT diesen String übermittelt.
wie sieht denn der inhalt des Datenpunktes im MQTT-client.0 aus?
@Homoran
Danke für die Rückmeldung!Der String oben ist der String den ich bekommen. Hier noch mal:

{"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxxxxxxxxx\"}}Aus dem val möchte ich die Werte von Meter_total und DJ_TPWRCURR ohne doppelpunkt in eigene Datenpunkte schreiben damit ich dies in die Influx db schreiben lassen kann.
-
@Homoran
Danke für die Rückmeldung!Der String oben ist der String den ich bekommen. Hier noch mal:

{"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxxxxxxxxx\"}}Aus dem val möchte ich die Werte von Meter_total und DJ_TPWRCURR ohne doppelpunkt in eigene Datenpunkte schreiben damit ich dies in die Influx db schreiben lassen kann.
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
{"val":"{"Time":"2021-01-05T15:12:40","SML":{"Meter_total":3497.518,"DJ_TPWRCURR":590,"Meter_number":"xxxxxxxxxxx"}}
das sieht selbst für mich aus wie ein JSON, das müsste dann mir "Attribut von" gehen.
Das reizt mich jetzt mal es mit deinem Export zu probieren -
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
{"val":"{"Time":"2021-01-05T15:12:40","SML":{"Meter_total":3497.518,"DJ_TPWRCURR":590,"Meter_number":"xxxxxxxxxxx"}}
das sieht selbst für mich aus wie ein JSON, das müsste dann mir "Attribut von" gehen.
Das reizt mich jetzt mal es mit deinem Export zu probieren -
-
-
So wie hier sollte es klappen: https://forum.iobroker.net/topic/40664/gelöst-datenpunkt-aus-json-in-ccu2-variable-schreiben/8
Aber irgendwie bekomme ich das parsen nicht auf meine String angepasst.const idJson = 'stateChange mqtt.0.tele.Itron_mME_Power.SENSOR'; const idSV = 'kWh_total'; function json2sv(json) { let obj = JSON.parse(json)[0]; setState(idSV, obj.Meter_total + '. ' + obj.DJ_TPWRCURR); } json2sv(getState(idJson).val); // Script start on(idJson, function(dp) { // Wertänderung json2sv(dp.state.val); }); -
So wie hier sollte es klappen: https://forum.iobroker.net/topic/40664/gelöst-datenpunkt-aus-json-in-ccu2-variable-schreiben/8
Aber irgendwie bekomme ich das parsen nicht auf meine String angepasst.const idJson = 'stateChange mqtt.0.tele.Itron_mME_Power.SENSOR'; const idSV = 'kWh_total'; function json2sv(json) { let obj = JSON.parse(json)[0]; setState(idSV, obj.Meter_total + '. ' + obj.DJ_TPWRCURR); } json2sv(getState(idJson).val); // Script start on(idJson, function(dp) { // Wertänderung json2sv(dp.state.val); });@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
Aber irgendwie bekomme ich das parsen nicht auf meine String angepasst.
Das war ja auch mein Problem.
Du hast noch Escape-Sequenzen mit einem\drin, dadurch ist es kein "echtes" json
Außerdem hast du ein verschachteltes "JSON" -
-
@paul53 So habe ich es probiert - ohne Erfolg

und zwar mit den
\und wie im Bild auch ohne -
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
{"val":"{"Time":"2021-01-05T15:12:40","SML":{"Meter_total":3497.518,"DJ_TPWRCURR":590,"Meter_number":"xxxxxxxxxxx"}}
das sieht selbst für mich aus wie ein JSON, das müsste dann mir "Attribut von" gehen.
Das reizt mich jetzt mal es mit deinem Export zu probieren -
@Homoran
Danke für die Rückmeldung!Der String oben ist der String den ich bekommen. Hier noch mal:

{"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxxxxxxxxx\"}}Aus dem val möchte ich die Werte von Meter_total und DJ_TPWRCURR ohne doppelpunkt in eigene Datenpunkte schreiben damit ich dies in die Influx db schreiben lassen kann.
@paul53 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
In diesem String stören die " vor {"Time"
Sind die im Original wirklich vorhanden ?Noch schlimmer, die sind escaped:
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
{"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxxxxxxxxx\"}} -
@paul53 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
In diesem String stören die " vor {"Time"
Sind die im Original wirklich vorhanden ?Noch schlimmer, die sind escaped:
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
{"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxxxxxxxxx\"}} -
@paul53 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
In diesem String stören die " vor {"Time"
Sind die im Original wirklich vorhanden ?Noch schlimmer, die sind escaped:
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
{"val":"{\"Time\":\"2021-01-05T15:12:40\",\"SML\":{\"Meter_total\":3497.518,\"DJ_TPWRCURR\":590,\"Meter_number\":\"xxxxxxxxxxx\"}}Ja so steht es in dem Objekt das in MQQT Objekt angelegt wird.
Tasmota schickt es so auch raus:
13:57:47.444 MQT: tele/Itron_mME_Power/SENSOR = {"Time":"2021-01-08T13:57:47","SML":{"Meter_total":3539.467,"DJ_TPWRCURR":608,"Meter_number":"0a0149545200034ba81e"}}Dumme Frage wir bekomme ich den Block Wert da hinein?

-
@Homoran
... und am Ende fehlt auch noch eine geschweifte Klammer.
Das ist alles mögliche, nur kein JSON.EDIT: "val":" stammt aus dem state-JSON
@paul53 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
Das ist alles mögliche, nur kein JSON.
das hatte ich befürchtet, bin gerade dabei Buchstaben zu zählen ;-)
-
Ja so steht es in dem Objekt das in MQQT Objekt angelegt wird.
Tasmota schickt es so auch raus:
13:57:47.444 MQT: tele/Itron_mME_Power/SENSOR = {"Time":"2021-01-08T13:57:47","SML":{"Meter_total":3539.467,"DJ_TPWRCURR":608,"Meter_number":"0a0149545200034ba81e"}}Dumme Frage wir bekomme ich den Block Wert da hinein?

@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
Dumme Frage wir bekomme ich den Block Wert da hinein?
befindet sich unter den Triggerbausteine, ist ein pulldown, da steht standardmäßig "Objekt ID"
-
Ja so steht es in dem Objekt das in MQQT Objekt angelegt wird.
Tasmota schickt es so auch raus:
13:57:47.444 MQT: tele/Itron_mME_Power/SENSOR = {"Time":"2021-01-08T13:57:47","SML":{"Meter_total":3539.467,"DJ_TPWRCURR":608,"Meter_number":"0a0149545200034ba81e"}}Dumme Frage wir bekomme ich den Block Wert da hinein?

-
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
Dumme Frage wir bekomme ich den Block Wert da hinein?
befindet sich unter den Triggerbausteine, ist ein pulldown, da steht standardmäßig "Objekt ID"
-
Argh
Ich habe jetzt mal auf den Sonoff mqtt Server umgestellt. Uns siehe da:

Zuvor hatte ich eine separate MQTT Instanz
@toki1973 sagte in Wert aus Objekt auslesen und in Datenpunkt speichern:
Zuvor hatte ich eine separate MQTT Instanz
du kannst keine zwei MQTT Clients mit gleichem Port parallel betreiben
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden


