Benötige Tipp beim Event-Regex für ASC-Beschattung

Begonnen von FunkOdyssey, 10 Juni 2019, 11:30:34

Vorheriges Thema - Nächstes Thema

FunkOdyssey

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.

Damian

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?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FunkOdyssey


Damian

Zitat von: FunkOdyssey am 10 Juni 2019, 17:58:16
So sieht es aus. Keine Reaktion.

Ich sehe zumindest keine Fehler in der Definition.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FunkOdyssey

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 :-)