Hallo,
Ich habe erfolgreich eine Sonoff S20 Tasmota mit zwei DS18B20 Sensoren per MQTT mit folgendem Code am laufen:
defmod Sonoff_S20_sonoff2 MQTT_DEVICE
attr Sonoff_S20_sonoff2 IODev Mosquitto
attr Sonoff_S20_sonoff2 event-on-change-reading state,status,Zeit
attr Sonoff_S20_sonoff2 eventMap ON:on OFF:off
attr Sonoff_S20_sonoff2 publishSet on off cmnd/poollicht/power
attr Sonoff_S20_sonoff2 subscribeReading_sensor tele/poollicht/SENSOR
attr Sonoff_S20_sonoff2 subscribeReading_state stat/poollicht/POWER
attr Sonoff_S20_sonoff2 subscribeReading_status tele/poollicht/STATE
Das Toggle funktioniert und ich kann die Steckdose schalten und bekomme den Powerstatus retour.
Die Sensorenabfrage läuft auch und liefert folgendes bspw. retour:
{"Time":"2019-07-30T14:31:55","DS18B20-1":{"Id":"0118334EC0FF","Temperature":18.4},"DS18B20-2":{"Id":"031731EDB6FF","Temperature":29.6},"TempUnit":"C"}
Beim Widget-Label kommt alles an mit:
data-type="label" data-device="Sonoff_S20_sonoff2" data-get="sensor"
Nur wie bekomme ich jetzt die Temperaturwerte einzeln zum Weiterverarbeiten fürs FTUI?
Vielen Dank für eure Hilfe schon mal!
Hallo eisimeister,
dafür musst du beim MQTT_DEVICE-Modul, welches älter ist, und das ich auch nutze, die Informationen aufteilen (Stichwort: JSON).
Dazu musst du folgende(s) Device(s) definieren:
define ej3 expandJSON .*:SENSOR:.{.*}
define ej3a expandJSON .*:STATE:.{.*Wifi.*}
Mit letzterem bekommst du die Wifi-Daten extrahiert.
Mit userReadings kannst du dann noch den Messstellen sinnvolle Namen verpassen.
***Frage an JSON-Experten: kann man beide Definitionen in einer einzigen vereinen?
Es gibt neuere Module, da ist das vermutlich alles bereits implementiert; da kenne ich mich aber nicht aus.
Viele Grüße Gisbert
ZitatEs gibt neuere Module, da ist das vermutlich alles bereits implementiert; da kenne ich mich aber nicht aus.
Das neuere Modul nennt sich MQTT2_DEVICE, und braucht als IODev entweder MQTT2_CLIENT (statt MQTT) oder MQTT2_SERVER (das wiederum auch gleich mosquitto/vernemq/rabbitMQ/etc ersetzt).
kann ich bei dem neueren modul die einzelnen werte (JSON) dann direkt ansprechen? und mit welchem command werden diese dann am besten ausgelesen?
JSON wird automatisch ausgepackt und (FHEM-ueblich) jede JSON Variable als Event weitergereicht und als Reading gespeichert.
Apropos Tasmota/Sonoff: dafuer gibt es jede Menge vorkonfigurierte Templates.
Hat sich mit dem Update auf die aktuelle Version und MQTT2 erledigt. Da gibts die Daten in eigenen Feldern. Vielen Dank!!