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.
-
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
-
@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 -
@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
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" } } -
@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.
-
@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"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: nullHabe 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? -
"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: nullHabe 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
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