NEWS
Sensorwert aus DP filtern
-
Hallo,
ich habe einen Lichtsensor BH1750 an einem ESP8266 über MQTT (Tasmota) am iobroker laufen.
Der übergebende Sensorwert hat dieses Format:{"Time":"2021-05-30T19:48:08","BH1750":{"Illuminance":1925}}
Wie kann ich nun in Blockly nur den Zahlenwert hinter "Illuminance:" filtern und weiter auswerten, wobei der Wert min 1 bis max 65535 sein kann.
-
@actionbyte Dann verrate noch den Namen des Datenpunktes - das ist ein Objekt und das hat einen Namen und auf die Eigenschaft greifst Du mit obj.BH1750.Illuminace zu
-
@mickym dafür gibt es direkt einen block!
bin nicht am pc, müsste was mit Attribut von... sein
von wäre hier bt1750.illuminance -
@mickym
Meinst du diese?{ "common": { "name": "tele/tasmota_12D656/SENSOR", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "string" }, "native": { "topic": "tele/tasmota_12D656/SENSOR" }, "type": "state", "from": "system.adapter.mqtt.0", "user": "system.user.admin", "ts": 1622400342697, "_id": "mqtt.0.tele.tasmota_12D656.SENSOR", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@actionbyte Nein - aber ich kann Dir leider mit dem Blockly nicht helfen. Ist aber so wie @Homoran schreibt, Du musst irgendwas mit Attribut von finden und dann gibst Du den Pfad zur Eigenschaft ein.
Ich find das leider nicht im Blockly.
-
"Attribut von" habe ich gefunden. Allerdings bekomme ich den Wert nicht korrekt heraus.
Log:30.5.2021, 21:43:12.204 [info ]: javascript.0 (14288) script.js.Zustände.Helligkeit_BH1750: registered 1 subscription and 0 schedules 30.5.2021, 21:43:20.644 [error]: javascript.0 (14288) script.js.Zustände.Helligkeit_BH1750: Cannot parse "mqtt.0.tasmota.discovery.2CF43"SyntaxError: Unexpected token m in JSON at position 0 30.5.2021, 21:43:20.645 [warn ]: javascript.0 (14288) script.js.Zustände.Helligkeit_BH1750: null
Habe als Attribut auch nur BH1750 oder Illuminace ausprobiert, leider kein Erfolg.
Um erst nur den Debug output zu testen habe ich den Block "Streuern" deaktiviert. Später möchte ich eben nur den Wert in den manuell erstellten DP "Z_Helligkeit_BH1750" schreiben und weiter verarbeiten.
Wo liegt mein Fehler? -
@actionbyte Du musst als Attribut BH1750.Illuminace schreiben. Nicht entweder oder