FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: TurboB am 27 März 2018, 12:05:37

Titel: [gelöst] stateformat readingval übersetzt anders als erwartet
Beitrag von: TurboB am 27 März 2018, 12:05:37
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
Titel: Antw:stateformat readingval übersetzt anders als erwartet
Beitrag von: dev0 am 27 März 2018, 12:10:24
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.
Titel: Antw:stateformat readingval übersetzt anders als erwartet
Beitrag von: TurboB am 27 März 2018, 12:17:12
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
Titel: Antw:stateformat readingval übersetzt anders als erwartet
Beitrag von: helmut am 27 März 2018, 15:13:41
defmod Sensor_1_ej expandJSON Sensor_1:SENSOR.*

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

Gruss Helmut
Titel: Antw:stateformat readingval übersetzt anders als erwartet
Beitrag von: dev0 am 27 März 2018, 16:21:29
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.
Titel: Antw:stateformat readingval übersetzt anders als erwartet
Beitrag von: TurboB am 27 März 2018, 16:54:55
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