Userreadings update nur manchmal

Begonnen von Eisix, 14 Dezember 2018, 15:31:52

Vorheriges Thema - Nächstes Thema

Eisix

Hallo,

Ich habe einen Enocean Sensor mit Bewegungsmelder und Temperatur/Feuchte. Dieser wurde als zwei devices angelegt. Soweit funktioniert alles.
Dann wollte ich das motion reading des Bewegungsmelders über userreading im Temperatursensor anzeigen lassen und dabei auch das reading von on/off in open/closed  umwandeln.

Das funktioniert aber nur manchmal oder mit Zeitversatz. Mein Eindruck ist das nur der alle 15 Minuten vom Bewegungsmelder gesendete Status das richtige event für das userreading auslöst und nicht das normale Auslösen durch Bewegung.

Habe ich da irgendwo einen Denkfehler? Wird das userreading nicht von dem anderen device ausgelöst oder woran liegt das?



Internals:
   DEF        FFB7DC82
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     7
   NAME       Bewegungsmelder_VR
   NR         41
   NTFY_ORDER 50-Bewegungsmelder_VR
   STATE      M: off E: 0
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 7
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -68
   TCM_ESP3_0_ReceivingQuality excellent
   TCM_ESP3_0_RepeatingCounter 1
   TCM_ESP3_0_SubTelNum 7
   TCM_ESP3_0_TIME 2018-12-14 14:49:17
   TYPE       EnOcean
   READINGS:
     2018-12-14 14:49:17   brightness      0
     2018-10-29 12:47:45   buttons         pressed
     2018-10-29 12:47:45   channelB        BI
     2018-12-14 14:49:17   motion          off
     2018-12-14 14:49:17   state           M: off E: 0
   helper:
Attributes:
   HomeModeAlarmActive armaway
   HomeSensorLocation inside
   IODev      TCM_ESP3_0
   eep        A5-08-01
   group      Bewegungsmelder
   icon       motion_detector
   manufID    00D
   room       Vorratsraum
   subType    lightTempOccupSensor.01
   userattr   HomeModeAlarmActive HomeReadings HomeValues HomeSensorLocation:inside,outside



Internals:
   DEF        FFB7DC81
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     3
   NAME       Sensor_VR
   NR         46
   NTFY_ORDER 50-Sensor_VR
   STATE      T: 14.6 H: 62 B: ok D: 7.4
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 3
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -68
   TCM_ESP3_0_ReceivingQuality excellent
   TCM_ESP3_0_RepeatingCounter 1
   TCM_ESP3_0_SubTelNum 7
   TCM_ESP3_0_TIME 2018-12-14 14:47:13
   TYPE       EnOcean
   Helper:
     DBLOG:
       CleanTemp:
         logdb:
           TIME       1544795233.42807
           VALUE      14.6
       T:
         logdb:
           TIME       1544795233.42807
           VALUE      14.6 H: 62 B: ok D: 7.4
       battery:
         logdb:
           TIME       1544794393.3209
           VALUE      ok
       energyStorage:
         logdb:
           TIME       1544795233.42807
           VALUE      charged
       humidity:
         logdb:
           TIME       1544795233.42807
           VALUE      62
       motion:
         logdb:
           TIME       1544795233.42807
           VALUE      open
       temperature:
         logdb:
           TIME       1544795233.42807
           VALUE      14.6
       voltage:
         logdb:
           TIME       1544795233.42807
           VALUE      3.1
   READINGS:
     2018-12-14 14:47:13   CleanTemp       14.6
     2018-12-14 14:33:13   battery         ok
     2017-05-02 02:54:10   buttons         pressed
     2017-05-02 02:54:10   channelB        BI
     2018-12-14 14:47:13   energyStorage   charged
     2018-12-14 14:47:13   humidity        62
     2018-12-14 14:47:13   motion          open
     2018-12-14 14:47:13   state           T: 14.6 H: 62 B: ok
     2018-12-14 14:47:13   temperature     14.6
     2018-12-14 14:47:13   voltage         3.1
   helper:
     battery    ok
Attributes:
   IODev      TCM_ESP3_0
   eep        A5-04-02
   group      Klima
   icon       temperature_humidity
   manufID    00D
   room       Vorratsraum
   scaleDecimals 1
   subType    tempHumiSensor.02
   userReadings motion {if(ReadingsVal("Bewegungsmelder_VR","motion","") eq "off") {return "closed"} elsif(ReadingsVal("Bewegungsmelder_VR","motion","") eq "on"){return "open"}},CleanTemp {my $t = ReadingsNum("$NAME","temperature",0); $t > -5 && $t < 35 ? $t : ReadingsNum("$NAME","CleanTemp",0)}



Gruß
Eisix

marvin78

Ein userReading kann nur vom Device getriggert werden, zu dem das Attribut gehört. Soll ein Device ein Reading in einem anderen setzen, dann muss es durch ein notify (und Co.) geschehen.