Zahl aus dem Reading auslesen {"idx":5,"nvalue":0,"svalue":"3191"}

Begonnen von Joshibaer, 21 Juni 2017, 12:14:35

Vorheriges Thema - Nächstes Thema

Joshibaer

Ich habe gerade ein Problem die Daten , meine AD Wandlers die per MQTT geliefert werden aus zu lesen.

Die Daten vom AD-Wanler ADS1115 werden in dieser Form übermittelt

Client mosqsub/463-raspberrypi received PUBLISH (d0, q0, r0, m0, '/hooks/devices/6/SensorData/Analog', ... (37 bytes))
/hooks/devices/6/SensorData/Analog {"idx":6,"nvalue":0,"svalue":"-1.00"}


Also steht hinterher im Reading

Analog       {"idx":5,"nvalue":0,"svalue":"3191"}

Ich brauche aber nur die 3191 als Zahl.

Wie kann ich mir die Zahl aus dem Reading hohlen ?

Danke schonmal im Vorraus.

dev0


Joshibaer

Danke , das war ja einfacher als ich dachte, mit


# Device ADS1115-0 definieren
define Pooldruckio MQTT_DEVICE ADS1115
attr Pooldruckio IODev MyBroker
attr Pooldruckio group DruckSensoren
attr Pooldruckio room MQTT,Garten,Teich
attr Pooldruckio subscribeReading_Analog /hooks/devices/5/SensorData/Analog

define Pooldruck0 expandJSON Pooldruckio.*:.*:.{.*}
attr Pooldruck0 room MQTT

#Pooldruck

define Pooldruck readingsProxy Pooldruckio:svalue
attr Pooldruck alias Poolpumpendruck
attr Pooldruck alias Poolpumpendruck stateFormat {sprintf("%.0f bar ",ReadingsVal("Pooldruckio","svalue",0)) }
attr Pooldruck room MQTT


habe ich jetzt die Zahl als State umd muss sie nur noch umrechnen.

Joshibaer

Kleine Berichtigung.

attr Pooldruck alias Poolpumpendruck stateFormat {sprintf("%.0f bar ",ReadingsVal("Pooldruckio","svalue",0)) }


funktioniert nicht , ich habe den Sensor einfach im Node MCU Device kalibriert.

Reinhart

schau doch mal in den Readings wie expandJson es angelegt hat und setze den richtigen Namen dann ein.
Normalerweise ist vorne noch der Sensortyp mit dabei, wie im Beispiel des angehängten Bildes.

ReadingsVal($name,"xxxxxx",0

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa