[Gelöst] MQTT Readings werden nicht vereinzelt

Begonnen von berbar, 20 März 2018, 10:58:23

Vorheriges Thema - Nächstes Thema

berbar

Moin zusammen,

hab hier einen Sonoff Basic mit DS18B20 Temperatursensor. Funktioniert auch soweit, aber die Readings werden nicht vereinzelt. Als Ergebnis erhalte ich nur SENSOR. Möchte gerne measured-temp als einzelnes Reading. Modul expandJSON ist eingebunden und wie folgt definiert.

Hier das List von meinem Sonoff Basic.

Internals:
   CHANGED   
   IODev      myBroker
   NAME       SO_BASIC_01_dht
   NR         317
   STATE      off
   TYPE       MQTT_DEVICE
   OLDREADINGS:
   READINGS:
     2018-03-20 10:19:13   SENSOR          {"Time":"2018.03.20 10:19:12","DS18B20":{"Temperature":4.6},"TempUnit":"C"}
     2018-03-20 10:19:13   measured-temp   -99.00
     2018-03-20 09:30:38   state           OFF
     2018-03-20 10:19:13   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      fhem/Testroom/SO_BASIC_01/cmnd/power
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     fhem/Testroom/SO_BASIC_01/tele/SENSOR
     fhem/Testroom/SO_BASIC_01/stat/POWER
   subscribeExpr:
     ^fhem\/Testroom\/SO_BASIC_01\/tele\/SENSOR$
     ^fhem\/Testroom\/SO_BASIC_01\/stat\/POWER$
   subscribeReadings:
     fhem/Testroom/SO_BASIC_01/stat/POWER:
       cmd       
       name       state
     fhem/Testroom/SO_BASIC_01/tele/SENSOR:
       cmd       
       name       SENSOR
Attributes:
   IODev      myBroker
   comment    192.168.10.102
   event-on-change-reading state,subscribeReading_SENSOR
   eventMap   ON:on OFF:off
   publishSet on off fhem/Testroom/SO_BASIC_01/cmnd/power
   room       MQTT
   stateFormat state
   subscribeReading_SENSOR fhem/Testroom/SO_BASIC_01/tele/SENSOR
   subscribeReading_state fhem/Testroom/SO_BASIC_01/stat/POWER
   userReadings measured-temp {sprintf("%.2f",ReadingsVal("SO_BASIC_01_dht","temperature",-99))}
   verbose    1
   webCmd     on:off:toggle


Und hier das List vom EXPANDJSON


Internals:
   DEF        SO.*:SENSOR.*:.{.*} (Temperature)
   NAME       ej3
   NR         319
   NTFY_ORDER 50-ej3
   STATE      active
   TYPE       expandJSON
   s_regexp   SO.*:SENSOR.*:.{.*}
   t_regexp   (Temperature)
   version    1.12
   READINGS:
     2018-03-20 08:10:23   state           active
   helper:
     addReadingsPrefix 1
Attributes:
   addReadingsPrefix 1
   room       MQTT

BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

rabehd

Wozu schreibt Dein Sonoff soviel?
Ich habe diesen Sensor an einem ESP32 und lasse nur die Temperatur übertragen.

Internals:
   IODev      MQTTBroker
   NAME       mqtt_AQ_Temperatur
   NR         630
   STATE      25.25 °C
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       Temperatur:
         logdb:
           TIME       1521540510.9874
           VALUE      25.25
   READINGS:
     2018-03-20 11:08:30   Temperatur      25.25
     2018-03-20 11:08:30   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     Aquarium/Temperatur
   subscribeExpr:
     ^Aquarium\/Temperatur$
   subscribeReadings:
     Aquarium/Temperatur:
       cmd       
       name       Temperatur
Attributes:
   IODev      MQTTBroker
   room       Aquarium,Test
   stateFormat Temperatur °C
   subscribeReading_Temperatur Aquarium/Temperatur
Auch funktionierende Lösungen kann man hinterfragen.

berbar

Zitat von: rabehd am 20 März 2018, 11:13:37
Wozu schreibt Dein Sonoff soviel?
Ich habe diesen Sensor an einem ESP32 und lasse nur die Temperatur

Das scheint wohl die Ausgabe der Tasmota Firmware auf POWER zu sein.
Tasmota Version 5.11.1j
Build-Datum & -Uhrzeit 2018.03.15 00:13:59
Core-/SDK-Version 2_4_0/2.1.0 (deb1901)
BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

rabehd

Userreadings?
mit dem Teilstring von SENSOR
Auch funktionierende Lösungen kann man hinterfragen.

berbar

Zitat von: rabehd am 20 März 2018, 13:00:32
Userreadings?
mit dem Teilstring von SENSOR

Ich war davon ausgegangen, dass expandJSON  die Temperatur als Einzelwertung bereistellt.
BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

rabehd

Auch funktionierende Lösungen kann man hinterfragen.

berbar

Zitat von: rabehd am 20 März 2018, 13:22:40
https://forum.fhem.de/index.php?topic=79978.0 hilft nicht?

Danke für den Tipp. Hat aber leider nichts geholfen. Habe das mal komplett so nachgebaut.


Internals:
   CHANGED   
   IODev      myBroker
   NAME       SO_BASIC_01_TEMP
   NR         320
   STATE      -99.00
   TYPE       MQTT_DEVICE
   READINGS:
     2018-03-20 22:10:26   SENSOR          {"Time":"2018.03.20 22:10:25","DS18B20":{"Temperature":-0.6},"TempUnit":"C"}
     2018-03-20 22:10:26   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     fhem/Testroom/SO_BASIC_01/tele/SENSOR
   subscribeExpr:
     ^fhem\/Testroom\/SO_BASIC_01\/tele\/SENSOR$
   subscribeReadings:
     fhem/Testroom/SO_BASIC_01/tele/SENSOR:
       cmd       
       name       SENSOR
Attributes:
   IODev      myBroker
   comment    192.168.10.102
   event-on-change-reading state
   room       MQTT
   stateFormat {sprintf("%.2f",ReadingsVal($name,"DS18B20_Temperature",-99))}
   subscribeReading_SENSOR fhem/Testroom/SO_BASIC_01/tele/SENSOR
   verbose    1



Internals:
   DEF        SO.*:.*:.{.*}
   NAME       ej3
   NOTIFYDEV  SO.*
   NR         319
   NTFY_ORDER 50-ej3
   STATE      active
   TYPE       expandJSON
   s_regexp   SO.*:.*:.{.*}
   t_regexp   .*
   version    1.12
   READINGS:
     2018-03-20 21:44:53   state           active
   helper:
     addReadingsPrefix 1
Attributes:
   addReadingsPrefix 1
   room       MQTT

BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

berbar

Hat vielleicht noch jemand eine Idee? Anscheinend zerlegt expandJSON geschachtelte MQTT Strings nicht. Komme hier einfach nicht weiter.

{"Time":"2018-03-29T23:24:09","ENERGY":{"Total":0.184,"Yesterday":0.000,"Today":0.185,"Period":0,"Power":3,"Factor":0.25,"Voltage":232,"Current":0.049}}

BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

Gerold

Ich habe dafür das 10_tasmota_device.pm Modul von https://github.com/klein0r/fhem-tasmota genommen. Die Readings werden damit automatisch angelegt, expandJSON ist nicht erforderlich.

Ein Video zu diesem Modul gibt es unter https://haus-automatisierung.com/hardware/sonoff/2017/12/20/sonoff-vorstellung-part-9.html

dev0

Zitat von: berbar am 20 März 2018, 22:17:24
event-on-change-reading state
Damit löst das Reading SENOSR kein Event aus. Ohne Events wird auch nichts verarbeitet, egal ob notify, expandJSON, ... oder sonst etwas.

berbar

Zitat von: dev0 am 30 März 2018, 09:26:29
Damit löst das Reading SENOSR kein Event aus. Ohne Events wird auch nichts verarbeitet, egal ob notify, expandJSON, ... oder sonst etwas.

Warum bekomme ich die Temperatur nicht als einzelnes Reading? Time und TempUnit funktionieren ja.


Internals:
   DEF        SON_BA_01_T:Sensor:.{.*} (Time|Temperature|TempUnit)
   NAME       ej3
   NR         319
   NTFY_ORDER 50-ej3
   STATE      active
   TYPE       expandJSON
   s_regexp   SON_BA_01_T:Sensor:.{.*}
   t_regexp   (Time|Temperature|TempUnit)
   version    1.12
   READINGS:
     2018-03-30 16:19:28   state           active
   helper:
Attributes:
   disable    0
   room       MQTT
   verbose    3
BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

dev0


berbar

BananaPi, Fritz Box 7590, MapleCul, nanoCUL 1.67,  HM LAN, ZigBee II, deconz, FHEM 6.0
ESP-01 Garagentorsteuerung,  5xFS20ST, 1xFS20SU, 1xFS20SM4, 1xFS20SD, 12xMüller Tint GU10
2xHM-CC-TC, 4x HM-CC-VC, 8xHM-CC-RT-DN, 1xHM-TC-IT-WM-W-EU
Alexa-Fhem auf OrangePi One, FHEM2FHEM

dev0

Für die Nachwelt: Wenn die target regex benutzt wird, dann müssen die Readings so angegeben werden wie sie auch angelegt werden.