[gelöst] stateformat readingval übersetzt anders als erwartet

Begonnen von TurboB, 27 März 2018, 12:05:37

Vorheriges Thema - Nächstes Thema

TurboB

Hallo Zielgruppe,

ich bin total neu bei fhem, habe es aber geschafft, die Kette
sonoff-tasmota-mqtt-Mosquitto-fhem aufzusetzen.

Jetzt bekomme ich die Temperaturen nicht übersetzt.
Die Temperatur wird immer als default 0.0 angezeigt.
Da es mein erster Sensor ist, und ich mit Anleitung /Tante Goooo nicht weiterkomme,
hier meine Konfiguration:




defmod Sensor_1 MQTT_DEVICE
attr Sensor_1 IODev Mosquitto
attr Sensor_1 eventMap ON:on OFF:off
attr Sensor_1 icon temp_temperature
attr Sensor_1 publishSet ON OFF cmnd/sensor_1/POWER1
attr Sensor_1 room Heizung
attr Sensor_1 stateFormat {sprintf("Temperatur: %.1f Grad", ReadingsVal($name,"Temperature",0))}
attr Sensor_1 subscribeReading_Licht stat/sensor_1/POWER
attr Sensor_1 subscribeReading_SENSOR tele/sensor_1/SENSOR
attr Sensor_1 subscribeReading_Status stat/sensor_1/STATE

setstate Sensor_1 Temperatur: 0.0 Grad
setstate Sensor_1 2018-03-27 11:43:03 Licht OFF
setstate Sensor_1 2018-03-27 11:58:25 SENSOR {"Time":"2018-03-27T10:58:24","DS18B20":{"Temperature":18.5},"TempUnit":"C"}
setstate Sensor_1 2018-03-27 11:30:29 state OFF
setstate Sensor_1 2018-03-27 11:58:25 transmission-state incoming publish received


Was habe ich vergessen ?
Danke schonmal
TurboB

dev0

Deine Sensor Werte landen als JSON Zeichenkette in dem Reading SENSOR. Diesen String kannst Du zB. mit dem expandJSON Modul in einzelne Readings zerlegen lassen.

TurboB

#2
Danke erstmal für die schnelle Antwor:

Das aktuelle reading ist:

SENSOR    {"Time":"2018-03-27T11:13:25","DS18B20":{"Temperature":18.5},"TempUnit":"C"}   2018-03-27 12:13:26

In den Tutorials sah das so schön einfach aus..........

Gibt's hier eine entsprechende demo von expandJSON ?

TurboB

helmut

defmod Sensor_1_ej expandJSON Sensor_1:SENSOR.*

Beispiele mit kurzen Erlaeuterungen findest Du im Wiki: https://wiki.fhem.de/wiki/Sonoff

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

dev0

Zitat von: TurboB am 27 März 2018, 12:17:12
Gibt's hier eine entsprechende demo von expandJSON ?
Es gibt die command reference, das ist die primäre Dokumentation.

Auch wenn der gepostete expandJSON Define von helmut funktionieren wird, würde ich aus Performance Gründen die source regex im Bereich der Readings enger fassen, zumal es so auch zu "Komplikationen" führen kann, wenn gewisse Bedingunden erfüllt sind.

Infos zu regex findest Du heir: http://bit.do/regexp


defmod ej_senosrs expandJSON Sensor.*:SENSOR:.{.*}

Damit sind alle Devices abgedeckt, deren Name mit Sensor beginnt und der zu expandierende JSON String in dem Reading SENSOR angelegt wird.

TurboB

So, ich habe es jetzt verstanden
Danke.

Ich hatte das Wiki: https://wiki.fhem.de/wiki/Sonoff
vorher auch schon gelesen, hatte aber aus dem Beispiel mit TH10/16 nicht mit "Verstand" weitergelesen.

Jetzt, mit separierten Variablen, läuft es.

TurboB