Hi zusammen,
stehe irgendwie auf dem Schlauch bei der Einrichtung eines doifs.
Ich habe 3 Bewegungsmelder:
- og_fl_mo1
- og_fl_mo2
- dg_fl_mo1
Diese 3 devices sind via mqtt2 eingebunden, der status ist immer on, bei auslösen wird das reading state aber dann aktualisiert.
Sprich ich möchte auslösen, wenn das reading state aktualisiert wird. Hier habe ich jetzt einiges ausprobier (event-on-update-reading usw) und njtze aktuell:
Internals:
CFGFN FHEM/anwesenheit_neu.cfg
DEF ([19:15-06:59] and (["^og_fl_mo_:state"] or [dg_sz_mo1:state])) (set dg_sz_led on) (set dg_sz_led off)
FUUID 5c5dae9d-f33f-d748-dd54-e016520fa994abd3
MODEL FHEM
NAME di_og_fl_li
NR 901
NTFY_ORDER 50-di_og_fl_li
STATE initialized
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-06-14 23:19:05 cmd 0
2019-06-14 23:19:05 mode enabled
2019-06-14 23:19:05 state initialized
2019-06-15 09:32:47 timer_01_c01 15.06.2019 19:15:00
2019-06-15 09:32:47 timer_02_c01 16.06.2019 06:59:00
Regex:
accu:
cond:
:
0:
"^og_fl_mo_:state" ^og_fl_mo_:state
attr:
wait:
0:
0
112
condition:
0 ::DOIF_time($hash,0,1,$wday,$hms) and (::EventDoIf('^og_fl_mo_',$hash,'state',0) or ::ReadingValDoIf($hash,'dg_sz_mo1','state'))
days:
devices:
0 dg_sz_mo1
all dg_sz_mo1
do:
0:
0 set dg_sz_led on
1 set dg_sz_led off
1:
helper:
globalinit 1
last_timer 2
sleeptimer -1
interval:
0 -1
1 0
intervalfunc:
itimer:
localtime:
0 1560618900
1 1560661140
perlblock:
readings:
0 dg_sz_mo1:state
all dg_sz_mo1:state
realtime:
0 19:15:00
1 06:59:00
time:
0 19:15:00
1 06:59:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
triggertime:
1560618900:
localtime 1560618900
hash:
1560661140:
localtime 1560661140
hash:
uiState:
uiTable:
Attributes:
do always
event-on-update-reading state
wait 0,112
Hat jemand von eich noch einen Tipp für mich?
Danke & Gruß,
Tobi
Hallo Tobi,
ohne dass ich es getestet habe: muss nicht zwischen (set dg_sz_led on) (set dg_sz_led off) ein DOELSE ?
Und in ["^og_fl_mo_:state"] ist der letzte Unterstrich zu viel, da deine Devices auf mo1 und mo2 enden.
Viele Grüße
Manfred
Moin,
da fehlt kein DOELSE ganz unten steht ja wait 0,112. Also das Licht geht für 112 Sekunden an :)
Aber mit dem Rest hast Du Recht es muss wenn dann ["^og_fl_mo:state"] heißen.
Gruß Otto
Danke eich beiden, peinlich...
Immerhin scheine ich es in der Theorie verstanden zu haben :)