OldReadingsVal oder OldReadingsNum funktioniert nicht

Begonnen von flauschkoenig, 14 Juni 2022, 20:48:28

Vorheriges Thema - Nächstes Thema

flauschkoenig

Hallo zusammen,

ich möchte in einem DOIF zwei Temperaturwerte vergleichen und zwar den zuvor ermittelten Wert und den aktuellen Wert, falls er sich geändert hat.
Aus diversen Beiträgen konnte ich mir folgendes zusammenreimen:

userReadings

temperatur_alt { OldReadingsVal("Wetterstation","ACTUAL_TEMPERATURE",ReadingsVal("Wetterstation","ACTUAL_TEMPERATURE",0)) }


Das ReadingsVal am Ende soll dafür sorgen, dass der Wert nie 0 sein kann, bzw. "unset". Das würde einen false positive geben.
Jedoch funktioniert der Aufbau so nicht. Mein userReading bleibt auf den Wert 0, auch, wenn sich der von der HMIP-SWO-PL Wetterstation gelieferte Temperaturwert verändert.

Wo ist mein Fehler?

frober

Hast du oldreadings aktiviert?

attr [Device] oldreadings [Reading]

und die Definition sieht komisch aus...
Poste Mal ein list vom Device

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

flauschkoenig

Hallo, klar

Internals:
   DEF        00181BE9A42840:1
   FUUID      6257fa90-f33f-823f-7df4-dc12ff07b072b1be
   IODev      rpim
   NAME       Wetterstation
   NR         17
   STATE      22.1
   TYPE       HMCCUCHN
   ccuaddr    00181BE9A42840:1
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HmIP-SWO-PL 00181BE9A42840:1
   ccurolestate WEATHER_TRANSMIT
   ccusubtype SWO-PL
   ccutype    HmIP-SWO-PL
   eventCount 831
   firmware   1.0.18
   readonly   no
   READINGS:
     2022-06-14 21:16:41   ACTUAL_TEMPERATURE 22.1
     2022-06-14 21:16:41   ACTUAL_TEMPERATURE_STATUS NORMAL
     2022-06-14 21:16:41   HUMIDITY        31
     2022-06-14 21:16:41   HUMIDITY_STATUS NORMAL
     2022-06-14 21:16:41   ILLUMINATION    425.1
     2022-06-14 21:16:41   ILLUMINATION_STATUS NORMAL
     2022-06-14 08:03:56   IODev           rpim
     2022-06-14 21:16:41   RAINING         false
     2022-06-14 21:16:41   RAIN_COUNTER    67.3
     2022-06-14 21:16:41   RAIN_COUNTER_OVERFLOW false
     2022-06-14 21:16:41   RAIN_COUNTER_STATUS NORMAL
     2022-06-14 21:16:41   SUNSHINEDURATION 7245
     2022-06-14 21:16:41   SUNSHINEDURATION_OVERFLOW true
     2022-06-14 21:16:41   SUNSHINE_THRESHOLD_OVERRUN false
     2022-06-14 21:16:41   WIND_SPEED      0.0
     2022-06-14 21:16:41   WIND_SPEED_STATUS NORMAL
     2022-06-14 21:16:41   WIND_THRESHOLD_OVERRUN false
     2022-06-14 21:16:41   activity        alive
     2022-06-14 21:16:41   battery         ok
     2022-06-14 21:16:41   devstate        ok
     2022-06-14 21:16:41   hmstate         22.1
     2022-06-14 21:16:41   humidity        31
     2022-06-14 21:16:41   rssidevice      -58
     2022-06-14 08:04:20   rssipeer        N/A
     2022-06-14 21:16:41   state           22.1
     2022-06-14 21:15:56   svHmIPRainCounterToday_2205 0.0
     2022-06-14 21:15:56   svHmIPRainCounterYesterday_2205 0.0
     2022-06-14 21:15:56   svHmIPSunshineCounterToday_2205 725.0
     2022-06-14 21:15:56   svHmIPSunshineCounterYesterday_2205 725.0
     2022-06-14 21:16:41   temperatur_alt  0
   hmccu:
     channels   1
     detect     1
     devspec    00181BE9A42840:1
     nodefaults 1
     role       1:WEATHER_TRANSMIT
     setDefaults 0
     cmdlist:
       get       
       set       
     control:
     dp:
       0.CONFIG_PENDING:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.DUTY_CYCLE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.ERROR_CODE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
       0.ERROR_WIND_COMMUNICATION:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.ERROR_WIND_NORTH:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.INSTALL_TEST:
         VALUES:
           NVAL       true
           ONVAL      true
           OSVAL      true
           OVAL       true
           SVAL       true
           VAL        true
       0.LOW_BAT:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      ok
           OVAL       0
           SVAL       ok
           VAL        0
       0.RSSI_DEVICE:
         VALUES:
           NVAL       -58
           ONVAL      -58
           OSVAL      -58
           OVAL       -58
           SVAL       -58
           VAL        -58
       0.RSSI_PEER:
         VALUES:
           NVAL       N/A
           ONVAL      N/A
           OSVAL      N/A
           OVAL       0
           SVAL       N/A
           VAL        0
       0.TEMPERATURE_OUT_OF_RANGE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.UNREACH:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      alive
           OVAL       0
           SVAL       alive
           VAL        0
       0.UPDATE_PENDING:
         VALUES:
           NVAL       false
           ONVAL      false
           OSVAL      false
           OVAL       false
           SVAL       false
           VAL        false
       1.ACTUAL_TEMPERATURE:
         VALUES:
           NVAL       22.1
           ONVAL      22.2
           OSVAL      22.2
           OVAL       22.2
           SVAL       22.1
           VAL        22.1
       1.ACTUAL_TEMPERATURE_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.HUMIDITY:
         VALUES:
           NVAL       31
           ONVAL      30
           OSVAL      30
           OVAL       30
           SVAL       31
           VAL        31
       1.HUMIDITY_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.ILLUMINATION:
         VALUES:
           NVAL       425.1
           ONVAL      469.9
           OSVAL      469.9
           OVAL       469.9
           SVAL       425.1
           VAL        425.1
       1.ILLUMINATION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.RAINING:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       1.RAIN_COUNTER:
         VALUES:
           NVAL       67.3
           ONVAL      67.3
           OSVAL      67.3
           OVAL       67.3
           SVAL       67.3
           VAL        67.3
       1.RAIN_COUNTER_OVERFLOW:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       1.RAIN_COUNTER_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.SUNSHINEDURATION:
         VALUES:
           NVAL       7245
           ONVAL      7245
           OSVAL      7245
           OVAL       7245
           SVAL       7245
           VAL        7245
       1.SUNSHINEDURATION_OVERFLOW:
         VALUES:
           NVAL       1
           ONVAL      1
           OSVAL      true
           OVAL       1
           SVAL       true
           VAL        1
       1.SUNSHINE_THRESHOLD_OVERRUN:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       1.WIND_SPEED:
         VALUES:
           NVAL       0.0
           ONVAL      0.0
           OSVAL      0.0
           OVAL       0.0
           SVAL       0.0
           VAL        0.0
       1.WIND_SPEED_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.WIND_THRESHOLD_OVERRUN:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       1.svHmIPRainCounterToday_2205:
         VALUES:
           NVAL       0.000000
           ONVAL      0.000000
           OSVAL      0.0
           OVAL       0.000000
           SVAL       0.0
           VAL        0.000000
       1.svHmIPRainCounterYesterday_2205:
         VALUES:
           NVAL       0.000000
           ONVAL      0.000000
           OSVAL      0.0
           OVAL       0.000000
           SVAL       0.0
           VAL        0.000000
       1.svHmIPSunshineCounterToday_2205:
         VALUES:
           NVAL       725.000000
           ONVAL      725.000000
           OSVAL      725.0
           OVAL       725.000000
           SVAL       725.0
           VAL        725.000000
       1.svHmIPSunshineCounterYesterday_2205:
         VALUES:
           NVAL       725.000000
           ONVAL      725.000000
           OSVAL      725.0
           OVAL       725.000000
           SVAL       725.0
           VAL        725.000000
     roleCmds:
       get:
       set:
     state:
       chn        1
       dpt        ACTUAL_TEMPERATURE
Attributes:
   userReadings temperatur_alt { OldReadingsNum("Wetterstation","ACTUAL_TEMPERATURE",0) }


Welches Reading muss in attr Wettertation oldreadings [Reading] ?

frober

Immer das, wovon du das oldreading möchtest.

attr Wettertation oldreadings ACTUAL_TEMPERATURE


Begrenzte noch das Userreading, damit es nicht auf alles reagiert ( systemlast)
userReadings temperatur_alt:ACTUAL_TEMPERATURE.* { OldReadingsNum("Wetterstation","ACTUAL_TEMPERATURE",0)}


Ob das Ersetzen des Defaultwertes durch ReadingsVal funktioniert, kann ich dir nicht sagen. Das musst du probieren.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

flauschkoenig

#4
Zitat von: frober am 14 Juni 2022, 21:37:37
Immer das, wovon du das oldreading möchtest.

attr Wettertation oldreadings ACTUAL_TEMPERATURE


Genau dieser Baustein hat mir gefehlt. Es funktioniert jetzt. Vielen Dank!

Das Reading sieht nun so aus:

userReadings temperatur_alt:ACTUAL_TEMPERATURE.* { OldReadingsNum("Wetterstation","ACTUAL_TEMPERATURE",ReadingsVal(("Wetterstation","ACTUAL_TEMPERATURE",0)) }

frober

Dann setze den Thread im ersten Post bitte auf gelöst.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...