HAllo, ich habe seit kurzem (nach Update) ein Problem mit einem Lichtsensor.
Device:
Internals:
DEF 521C5E
FUUID 5c43a4f3-f33f-a31c-9779-0178c66e1e2ff2a6
HMLAN1_MSGCNT 211
HMLAN1_RAWMSG E521C5E,0000,0295B57C,FF,FFAE,D98653521C5E00000000C100000008
HMLAN1_RSSI -82
HMLAN1_TIME 2019-12-07 17:53:01
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 211
NAME lichtsensor
NOTIFYDEV global
NR 854
NTFY_ORDER 50-lichtsensor
STATE brightness: 0.08
TYPE CUL_HM
chanNo 01
lastMsg No:D9 - t:53 s:521C5E d:000000 00C100000008
protLastRcv 2019-12-07 17:53:01
protRcv 211 last_at:2019-12-07 17:53:01
rssi_at_HMLAN1 cnt:211 min:-102 max:-80 avg:-84.67 lst:-82
Helper:
DBLOG:
state:
myDbLog:
TIME 1575737581.73699
VALUE B
READINGS:
2019-12-07 08:55:05 Activity alive
2018-11-01 16:07:16 CommandAccepted yes
2018-11-01 16:07:30 D-firmware 1.1
2018-11-01 16:07:30 D-serialNr NEQ1359178
2018-11-01 16:07:30 PairedTo 0xF11234
2018-11-01 16:06:34 R-cyclicInfoMsgDis 0
2018-11-01 16:07:30 R-pairCentral 0xF11234
2018-11-01 16:06:35 R-sign off
2019-12-07 17:53:01 battery ok
2019-12-07 17:53:01 brightness 0.08
2018-11-01 16:03:47 powerOn 2018-11-01 16:03:47
2018-11-01 16:03:47 recentStateType info
2019-12-07 17:53:01 state B: 0.08
helper:
HM_CMDNR 217
mId 00FD
peerFriend
peerOpt -:senBright
regLst 0,1
rxType 12
supp_Pair_Rep 0
expert:
def 1
det 0
raw 0
tpl 0
io:
newChn +521C5E,00,00,00
nextSend 1575737581.81225
rxt 2
vccu VCCU
p:
521C5E
00
00
00
prefIO:
HMLAN1
mRssi:
mNo D9
io:
HMLAN1:
-80
-80
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_HMLAN1:
avg -84.6777251184834
cnt 211
lst -82
max -80
min -102
tmpl:
Attributes:
IODev HMLAN1
IOgrp VCCU:HMLAN1
actCycle 028:00
actStatus alive
autoReadReg 5_readMissing
event-aggregator brightness::none:median:300
expert 0_defReg
firmware 1.1
model HM-SEN-LI-O
room 00_Aussen
serialNr NEQ1359178
stateFormat {"brightness: ". ReadingsNum($name,"brightness",0)}
subType senBright
Im Eventlog erscheinen diese Einträge:
2019-12-07 17:53:01 CUL_HM lichtsensor battery: ok
2019-12-07 17:53:01 CUL_HM lichtsensor B: 0.08
2019-12-07 17:55:53 CUL_HM lichtsensor battery: ok
2019-12-07 17:55:53 CUL_HM lichtsensor B: 0.08
in einem DOIF habe ich eine Abfrage wie
([05:00-11:59] and [lichtsensor:brightness] > 10)
Das hat bisher immer problemlos funktioniert.
Seit kurzem wird das DOIF aber nicht mehr getriggert.
Jetzt habe ich 2 Testdoifs gebaut:
([lichtsensor:"^B:..*$"] > 1) ()
DOELSEIF ([lichtsensor:"^B:..*$"] < 1) ()
DOELSE ()
und
([lichtsensor:brightness] < 1000) ()
Das erste geht bei einem Event auf cmd_3, das zweite triggert gar nicht.
Führe ich jeweils "checkall" aus, geht das erste auf cmd_2 und das zweite auf cmd_1
Nun meine Fragen:
Warum reagiert das DOIF mit lichtsensor:brightness, aber bei checkall?
Warum geht das DOIF mit [lichtsensor:"^B:..*$"] in den DOELSE Zweig und bei checkall korrekt in den zweiten DOELSEIF mit Abfrage auf < 1 bei einem Wert von 0.8?
ZitatIm Eventlog erscheinen diese Einträge:
2019-12-07 17:53:01 CUL_HM lichtsensor battery: ok
2019-12-07 17:53:01 CUL_HM lichtsensor B: 0.08
2019-12-07 17:55:53 CUL_HM lichtsensor battery: ok
2019-12-07 17:55:53 CUL_HM lichtsensor B: 0.08
Ich sehe kein Event
2019-12-07 17:53:01 CUL_HM lichtsensor brightness: 0.08
Wie meinst du das? jeder Eintrag im Eventlog ist doch ein Event, oder sehe ich das falsch?
Ja, aber ohne checkall wird die Bedingung ([05:00-11:59] and [lichtsensor:brightness] > 10) nie bewertet, zumindest nicht aus "brightness" Grund, und etwas wie ([lichtsensor:brightness] < 1000) () triggert gar nicht
EDIT: übrigens: [lichtsensor:"^B:..*$"] ist immer gleich 1 (wenn ein ^B:..*$ Event kommt) oder gleich 0 (wenn ein anderes Event kommt)
Das versteht ich nicht ganz.
Bis vor kurzem liefen das DOIF mit
([05:00-11:59] and [lichtsensor:brightness] > 10)
absolut problemlos und sowie dass brightness Reading unter 10 geliefert hat, wurde das DOIF korrekt getriggert.
Ich habe nun mal testweise auf ([05:00-11:59] and [lichtsensor:state:d] > 10)
geändert. Jetzt läuft es wieder wie gewohnt.
ABer die Ursache erschließt sich mir nicht.
siehe: https://fhem.de/commandref_DE.html#DOIF_checkReadingEvent
ZitatBemerkung: In früheren Versionen des Moduls war checkReadingEvent 0 die Voreinstellung des Moduls. Da die aktuelle Voreinstellung des Moduls checkReadingEvent 1 ist, hat das Setzen von checkReadingEvent 1 keine weitere Funktion mehr.
ZitatBei Angaben der Art [<Device>:<Reading>] wird das Modul getriggert, wenn ein Ereignis zum angegebenen Device und Reading kommt. Soll das Modul, wie bei Statusangaben der Art [<Device>], auf alle Ereignisse des Devices reagieren, so muss das Attribut auf Null gesetzt werden.
Ah, ok.
Dann ist es klar.
Der Lichtsensor liefert nur ein Event für state, nicht für brightness.
Jetzt werden mir auch die Anmerkungen von amenomade klar! ;)
Danke für eure Erklärungen
Okay... ich hätte nicht gedacht, dass deine Version vor dem Update so alt war ;)
@16736 13 mai 2018 08:33:00 Damian 98_DOIF.pm: interval timer, checkRedingEvent 1 is now default