Ich nutze das Modul AutoShuttersControl und es wird bei der Beschattung von Jalousien ein Event (für jeweiligen Jal-Device) erstellt. Ich wollte nun ein DOIF darauf ansetzen und habe die Events im EventMonitor beobachtet und das RegEx generieren lassen. Ich habe nur den Device-Namen entfernen müssen, da ich ja über alle Devices "mithören" will. Laut CommandRef müsste doch folgende Schreibweise korrekt sein, oder?
[":^ASC_ShuttersLastDrive:.shading.in$"]
bzw.
[":^ASC_ShuttersLastDrive:.shading.out$"]
CoolTux hat es über ein Notify gelöst und es wie folgt umgesetzt:
Rollo(Kueche|KinZimSteven|KinZimIsabel|Schlafzimmer|Wohnzimmer)_F2:ASC_ShuttersLastDrive:.(shading.in|shading.out)
Ich will halt beim DOIF bleiben und ich will auch keinen Gerätenamen angeben. Es gibt auch keine Ähnlichkeit wie ein gleiches Präfix bei meinen Jalousien-Devices.
Hat jemand einen Tipp? Danke.
Zitat von: FunkOdyssey am 10 Juni 2019, 11:30:34
Ich nutze das Modul AutoShuttersControl und es wird bei der Beschattung von Jalousien ein Event (für jeweiligen Jal-Device) erstellt. Ich wollte nun ein DOIF darauf ansetzen und habe die Events im EventMonitor beobachtet und das RegEx generieren lassen. Ich habe nur den Device-Namen entfernen müssen, da ich ja über alle Devices "mithören" will. Laut CommandRef müsste doch folgende Schreibweise korrekt sein, oder?
[":^ASC_ShuttersLastDrive:.shading.in$"]
bzw.
[":^ASC_ShuttersLastDrive:.shading.out$"]
CoolTux hat es über ein Notify gelöst und es wie folgt umgesetzt:
Rollo(Kueche|KinZimSteven|KinZimIsabel|Schlafzimmer|Wohnzimmer)_F2:ASC_ShuttersLastDrive:.(shading.in|shading.out)
Ich will halt beim DOIF bleiben und ich will auch keinen Gerätenamen angeben. Es gibt auch keine Ähnlichkeit wie ein gleiches Präfix bei meinen Jalousien-Devices.
Hat jemand einen Tipp? Danke.
... und funktioniert deine Lösung nicht?
So sieht es aus. Keine Reaktion.
Zitat von: FunkOdyssey am 10 Juni 2019, 17:58:16
So sieht es aus. Keine Reaktion.
Ich sehe zumindest keine Fehler in der Definition.
Ich verstehe das irgendwie nicht.
DOIF
Internals:
CFGFN
DEF (
[":^ASC_ShuttersLastDrive:.shading.in$"]
## and [?$SELF:P_mode,"inaktiv"] eq "aktiv"
)
(
(msg push @rr_Bewohner -2 |Beschattung der Jalousie| $DEVICE - $EVENT)
)
DOELSEIF
(
[":^ASC_ShuttersLastDrive:.shading.out$"]
## and [?$SELF:P_mode,"inaktiv"] eq "aktiv"
)
(
(msg push @rr_Bewohner -2 |Entschattung der Jalousie| $DEVICE - $EVENT)
)
DOELSE
FUUID 5cfd1398-f33f-47ae-9aa8-75807a1729de471a
MODEL FHEM
NAME di_asc_shading
NR 9286
NTFY_ORDER 50-di_asc_shading
STATE aktiv
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-06-09 16:12:02 P_mode aktiv
2019-06-10 18:00:47 cmd 0
2019-06-10 18:00:47 mode enabled
2019-06-10 18:00:47 state initialized
Regex:
accu:
cond:
:
0:
":^ASC_ShuttersLastDrive:.shading.in$" :^ASC_ShuttersLastDrive:.shading.in$
1:
":^ASC_ShuttersLastDrive:.shading.out$" :^ASC_ShuttersLastDrive:.shading.out$
attr:
cmdState:
repeatsame:
1
wait:
waitdel:
condition:
0 ::EventDoIf('',$hash,'^ASC_ShuttersLastDrive:.shading.in$',0)
1 ::EventDoIf('',$hash,'^ASC_ShuttersLastDrive:.shading.out$',0)
devices:
do:
0:
0 (msg push @rr_Bewohner -2 |Beschattung der Jalousie| $DEVICE - $EVENT)
1:
0 (msg push @rr_Bewohner -2 |Entschattung der Jalousie| $DEVICE - $EVENT)
2:
0
helper:
globalinit 1
last_timer 0
sleeptimer -1
itimer:
uiState:
uiTable:
Attributes:
checkReadingEvent 1
devStateIcon aktiv:general_an@green inaktiv:general_aus@Crimson
do always
event-on-change-reading state,P_mode
readingList P_mode
repeatsame 1
setList P_mode:aktiv,inaktiv
stateFormat P_mode
webCmd P_mode
Jal-Device
READINGS:
2019-05-20 11:46:30 ASC_Enable on
2019-06-10 16:46:37 ASC_ShuttersLastDrive shading in
Ich höre hier erst einmal auf zu beschreiben, denn ich stelle gerade fest, dass die Events im Filelog nicht enthalten sind. Als aktuelles Reading werden mir diese angezeigt, aber nicht im Filelog. Sehr merkwürdig. Ich muss CoolTux noch einmal bitte.
Das dürfte jedenfalls erklären warum bei mir nichts passiert.
Und nein, ich habe nirgendwo ein "event-on-change-reading" gesetzt :-)