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
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.
Es kann so einfach sein...
Da habe ich wohl den Wald vor lauter Bäumen nicht gesehen - Danke!