DOIF - userReading triggert nicht

Begonnen von mafakas, 08 Oktober 2018, 15:12:28

Vorheriges Thema - Nächstes Thema

mafakas

Ich habe eine Z-Wave Steckdose, welche mir die aktuelle Leistung angibt (power). Diese habe ich als UserReading im selben device als "powerRaw" angegeben (also nur den Zahlenwert).
Auf diesen Wert soll nun ein Doif triggern (siehe im list unten).
powerRaw> 2: dummy = true
powerRaw> 2: dummy = false

Leider triggert eine Änderung am Userreading nicht das Doif - mache ich ein set checkall wird die gewünschte Aktion jedoch ausgeführt.
Das selbe Verhalten, wenn ich auf power direkt gehe (wie unten im list auch).

Ich hab leider keinen Plan, wo ich aktuell noch einen Denkfehler habe...

eBikeLadestation-List:
Internals:
   CHANGED   
   DEF        eabaa472 2
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     139
   NAME       eBikeLadestation
   NR         116
   STATE      0.0002 kWh / 25.6 W
   TYPE       ZWave
   ZWDongle_0_MSGCNT 139
   ZWDongle_0_RAWMSG 000400020e32022134000001000001000000fb
   ZWDongle_0_TIME 2018-10-08 14:52:58
   ZWaveSubDevice no
   cmdsPending 0
   homeId     eabaa472
   isWakeUp   
   lastMsgSent 1539001535.39127
   nodeIdHex  02
   .attraggr:
   .attreocr:
     energyRaw
   .attrminint:
   .userReadings:
     HASH(0x3a49038)
     HASH(0x426fe28)
     HASH(0x4270368)
   .vclasses:
     ALARM      1
     ASSOCIATION 1
     BASIC      1
     CONFIGURATION 1
     CRC_16_ENCAP 1
     INDICATOR  1
     MANUFACTURER_SPECIFIC 2
     PROTECTION 2
     SWITCH_ALL 1
     SWITCH_BINARY 1
     VERSION    1
   READINGS:
     2018-09-28 09:03:42   basicReport     255
     2018-09-28 09:04:01   configLEDOnNetworkError Disable
     2018-09-28 09:04:01   configNoCommunicationLight 255
     2018-09-28 09:04:01   configPowerDelta 20
     2018-09-28 09:04:01   configPowerOnRelay RememberLastState
     2018-09-28 09:04:01   configRoomColor BlackEmpty
     2018-10-08 14:25:15   energy           0.0002 kWh
     2018-10-08 14:52:58   energyCost      4.826e-05
     2018-10-08 14:52:58   energyRaw       0.0002
     2018-09-28 09:04:14   model           GreenWave PowerNode 1 port
     2018-09-28 09:04:14   modelConfig     greenwave/powernode1.xml
     2018-09-28 09:04:14   modelId         0099-0002-0002
     2018-10-08 14:52:58   power            25.6 W previous: 25.1 delta_time: 1 s
     2018-10-08 14:52:58   powerRaw        25.6
     2018-10-08 14:25:35   state           off
     2018-10-08 14:25:35   timeToAck       0.026
     2018-10-08 14:25:35   transmit        OK
     2018-09-28 09:04:20   version         Lib 3 Prot 3.41 App 4.27
Attributes:
   IODev      ZWDongle_0
   classes    SWITCH_BINARY METER MANUFACTURER_SPECIFIC VERSION BASIC ALARM CONFIGURATION SWITCH_ALL ASSOCIATION INDICATOR PROTECTION CRC_16_ENCAP
   devStateIcon on:rc_GREEN:off off:rc_RED:on
   event-on-change-reading energyRaw
   room       eBike,Z-Wave
   stateFormat energyRaw kWh / powerRaw W
   userReadings energyRaw { ReadingsVal("eBikeLadestation","state","") =~/^energy/? ReadingsNum("eBikeLadestation","state","0"):ReadingsNum("eBikeLadestation","energy","0") }, powerRaw { ReadingsVal("eBikeLadestation","state","") =~/^power/? ReadingsNum("eBikeLadestation","state","0"):ReadingsNum("eBikeLadestation","power","0") }, energyCost {ReadingsVal("eBikeLadestation","energyRaw","") * 0.2413}
   vclasses   ALARM:1 ASSOCIATION:1 BASIC:1 CONFIGURATION:1 CRC_16_ENCAP:1 INDICATOR:1 MANUFACTURER_SPECIFIC:2 PROTECTION:2 SWITCH_ALL:1 SWITCH_BINARY:1 VERSION:1


DOIF-List:
Internals:
   CFGFN     
   DEF        ( [eBikeLadestation:power:d0] > 2 )( set testDummy true )
DOELSEIF
( [eBikeLadestation:power:d0] < 2 )( set testDummy false )
   MODEL      FHEM
   NAME       testDoif
   NR         180
   NTFY_ORDER 50-testDoif
   STATE      cmd_2
   TYPE       DOIF
   .attraggr:
   .attrminint:
   READINGS:
     2018-10-08 14:56:26   cmd             2
     2018-10-08 14:56:26   cmd_event       testDoif
     2018-10-08 14:56:26   cmd_nr          2
     2018-10-08 14:55:43   mode            enabled
     2018-10-08 14:56:26   state           cmd_2
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0           ReadingValDoIf($hash,'eBikeLadestation','power','','d0') > 2
     1           ReadingValDoIf($hash,'eBikeLadestation','power','','d0') < 2
   devices:
     0           eBikeLadestation
     1           eBikeLadestation
     all         eBikeLadestation
   do:
     0:
       0           set testDummy true
     1:
       0           set testDummy false
     2:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: testDoif
       state: cmd_2
   internals:
   itimer:
   readings:
     0           eBikeLadestation:power
     1           eBikeLadestation:power
     all         eBikeLadestation:power
   uiState:
   uiTable:
Attributes:
   room       Test

Frank_Huber

Du hast: event-on-change-reading energyRaw
Damit gibt es imho NUR für dieses Reading Events.
würde vorschlagen das Attribut um PowerRaw zu erweitern.

mafakas

Es kann so einfach sein...
Da habe ich wohl den Wald vor lauter Bäumen nicht gesehen - Danke!