FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: misux am 17 Juli 2023, 18:05:50

Titel: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: misux am 17 Juli 2023, 18:05:50
HI!

Ich habe den HM Bewegungsmelder (https://wiki.fhem.de/wiki/HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen#Einsatzbeispiele_(per_DOIF)) in einem DOIF im Einsatz...

Hier das List vom DOIF:

Internals:
   CFGFN     
   DEF        ([BewegungsmelderPool:?motion] and [?Haus] eq "present")
(set Telegram message Pool Bewegung erkannt)
(set SSCam.Pool snap 3 3)
(set SSCam.Kellereingang snap)
   FUUID      64b559a4-f33f-e7ed-ea6f-44c0d703f6013e34
   MODEL      FHEM
   NAME       DOIFPool
   NOTIFYDEV  BewegungsmelderPool,global
   NR         1002
   NTFY_ORDER 50-DOIFPool
   STATE      cmd_1
   TYPE       DOIF
   VERSION    27740 2023-07-10 09:31:11
   eventCount 29
   READINGS:
     2023-07-17 18:02:50   Device          BewegungsmelderPool
     2023-07-17 17:59:40   cmd             1.3
     2023-07-17 17:59:40   cmd_event       BewegungsmelderPool
     2023-07-17 17:59:40   cmd_nr          1
     2023-07-17 17:59:40   cmd_seqnr       3
     2023-07-17 18:02:50   e_BewegungsmelderPool_events brightness: 198,devstate: ok,hmstate: noMotion
     2023-07-17 17:53:31   mode            enabled
     2023-07-17 17:59:40   state           cmd_1
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       BewegungsmelderPool:
         0:
           &STATE     ^BewegungsmelderPool$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('BewegungsmelderPool',$hash,'motion',1) and ::InternalDoIf($hash,'Haus','STATE') eq "present"
   do:
     0:
       0          set Telegram message Pool Bewegung erkannt
       1          set SSCam.Pool snap 3 3
       2          set SSCam.Kellereingang snap
     1:
   helper:
     NOTIFYDEV  BewegungsmelderPool,global
     event      brightness: 198,devstate: ok,hmstate: noMotion
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   BewegungsmelderPool
     timerevent motion: noMotion
     triggerDev BewegungsmelderPool
     timerevents:
       noMotion
       motion: noMotion
       devstate: ok
       hmstate: noMotion
     timereventsState:
       state: noMotion
       motion: noMotion
       devstate: ok
       hmstate: noMotion
     triggerEvents:
       brightness: 198
       devstate: ok
       hmstate: noMotion
     triggerEventsState:
       brightness: 198
       devstate: ok
       hmstate: noMotion
   hmccu:
   internals:
     all         Haus:STATE
   readings:
   trigger:
     all         BewegungsmelderPool
   uiState:
   uiTable:
Attributes:
   do         always
   room       DOIF

Mein Problem ist das der Bewegungsmelder nach 30Sek von motion auf noMotion stellt UND leider das DOIF auch beim noMotion auslöst... Kann man das irgendwie verhindern?

Das DOIF soll NUR auf motion triggern ...

Vielen Dank!

Titel: Aw: DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Damian am 17 Juli 2023, 18:52:42
([BewegungsmelderPool:"^motion"] and [?Haus] eq "present")
Das sollte schon reichen :)
Titel: Aw: DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: misux am 17 Juli 2023, 19:05:19
Hmmm... Nee, leider triggert er immernoch auf noMotion...
Titel: Aw: DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Damian am 17 Juli 2023, 19:06:58
Zitat von: misux am 17 Juli 2023, 19:05:19Hmmm... Nee, leider triggert er immernoch auf noMotion...

Das kann ich mir nicht vorstellen.

Wie sehen die Events aus?
Titel: Aw: DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: misux am 17 Juli 2023, 19:18:12
Leider doch... NAch 30 sek wird es nochmal ausgelöst:

2023-07-17 19:16:49 DOIF DOIFPool cmd_event: BewegungsmelderPool
2023-07-17 19:16:49 DOIF DOIFPool cmd_event: BewegungsmelderPool
2023-07-17 19:16:49 DOIF DOIFPool cmd_event: BewegungsmelderPool
2023-07-17 19:16:49 HMCCUCHN BewegungsmelderPool INSTALL_TEST: 1
2023-07-17 19:16:49 HMCCUCHN BewegungsmelderPool motion
2023-07-17 19:16:49 HMCCUCHN BewegungsmelderPool motion: motion
2023-07-17 19:16:49 HMCCUCHN BewegungsmelderPool brightness: 160
2023-07-17 19:16:49 HMCCUCHN BewegungsmelderPool devstate: ok
2023-07-17 19:16:49 HMCCUCHN BewegungsmelderPool hmstate: motion
2023-07-17 19:17:24 DOIF DOIFPool cmd_event: BewegungsmelderPool
2023-07-17 19:17:24 DOIF DOIFPool cmd_event: BewegungsmelderPool
2023-07-17 19:17:24 DOIF DOIFPool cmd_event: BewegungsmelderPool
2023-07-17 19:17:24 HMCCUCHN BewegungsmelderPool noMotion
2023-07-17 19:17:24 HMCCUCHN BewegungsmelderPool motion: noMotion
2023-07-17 19:17:24 HMCCUCHN BewegungsmelderPool devstate: ok
2023-07-17 19:17:24 HMCCUCHN BewegungsmelderPool hmstate: noMotion
Titel: Aw: DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Damian am 17 Juli 2023, 19:21:44
ja klar, das Reading "motion" kommt ebenfalls zwei mal vor.


([BewegungsmelderPool:" motion"] and [?Haus] eq "present")
sollte eindeutig sein.
Titel: Aw: DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: misux am 17 Juli 2023, 19:26:41
HA! TOP! Das ist es!

Vielen Dank! Habe vor lauter Bewegung das motion nicht gesehen... ;D

Vielen Dank!
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Nighthawk am 17 Juli 2023, 20:10:49
Hallo Damian,

wie müsste ich das DOIF ändern für mehrere Bewegungsmelder?

["^BewegungsmelderPool":" motion"]?
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: misux am 17 Juli 2023, 22:01:07
Eigentlich mit eine "or" oder nicht... Also immer
[BewegungsmelderPool1:" motion"] or [BewegungsmelderPool2:" motion"] or [BewegungsmelderPool3:" motion"]

Und so weiter....
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Damian am 17 Juli 2023, 22:41:25
Zitat von: Nighthawk am 17 Juli 2023, 20:10:49Hallo Damian,

wie müsste ich das DOIF ändern für mehrere Bewegungsmelder?

["^BewegungsmelderPool":" motion"]?

Die Syntax lautet: ["<device regex>:<event regex>"]

siehe: https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events

Daher:

["^BewegungsmelderPool: motion"]

Das Leerzeichen vor "motion" ist wichtig, weil "motion" auch im Readingnamen vorkommt.

Man könnte auch angeben:

["^BewegungsmelderPool:^motion: motion"]
Wenn man auf das ganze Ereignis (ohne Device) von Anfang an inklusive der Readingangabe filtern möchte.


Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Nighthawk am 18 Juli 2023, 20:21:19
Danke für den Hinweis, habe ich angepasst und beobachte es jetzt  8)
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Nighthawk am 19 Juli 2023, 21:23:46
Hallo Damian,

leider funktioniert das DOIF weder so:
["^Bewegungsmelder: motion"]noch so: ["^Bewegungsmelder:^motion: motion"]
Da wird einfach nichts ausgelöst.

Hier ein List des DOIFs
Internals:
   DEF        ["^Bewegungsmelder":motion] or
["^Bewegungsmelder:on"] )
(set Signal send Bewegung an $DEVICE erkannt!!!!  \n {(ReadingsTimestamp("$DEVICE", "occupancy", ""))})
   FVERSION   98_DOIF.pm:0.276160/2023-05-25
   MODEL      Perl
   NAME       di.Bewegungsmelder
   NOTIFYDEV  global
   NR         586
   NTFY_ORDER 50-di.Bewegungsmelder
   STATE      initialized
   TYPE       DOIF
   VERSION    27616 2023-05-25 17:55:36
   eventCount 622
   READINGS:
     2023-07-19 21:20:06   mode            enabled
     2023-07-19 21:20:06   state           initialized
   Regex:
     accu:
     bar:
     barAvg:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
   helper:
     NOTIFYDEV  global
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   icon       helper_doif
   room       04_Licht

Gruß
Alex
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Damian am 19 Juli 2023, 22:05:08
Dann müssen deine Events anders aussehen.
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Nighthawk am 20 Juli 2023, 09:08:17
Die Events sehen folgendermaßen aus:

2023-07-20 09:07:18 HMCCUCHN Bewegungsmelder_Terasse brightness: 181
2023-07-20 09:07:18 HMCCUCHN Bewegungsmelder_Terasse motion
2023-07-20 09:07:18 HMCCUCHN Bewegungsmelder_Terasse motion: motion
2023-07-20 09:07:18 HMCCUCHN Bewegungsmelder_Terasse hmstate: motion


das Problem des Doppelfeuerns wird wohl durch hmstate mit ausgelöst..
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Damian am 20 Juli 2023, 09:19:53
Zitat von: Nighthawk am 19 Juli 2023, 21:23:46Hallo Damian,

leider funktioniert das DOIF weder so:
["^Bewegungsmelder: motion"]noch so: ["^Bewegungsmelder:^motion: motion"]
Da wird einfach nichts ausgelöst.

Hier ein List des DOIFs
Internals:
   DEF        ["^Bewegungsmelder":motion] or
["^Bewegungsmelder:on"] )
(set Signal send Bewegung an $DEVICE erkannt!!!!  \n {(ReadingsTimestamp("$DEVICE", "occupancy", ""))})
   FVERSION   98_DOIF.pm:0.276160/2023-05-25
   MODEL      Perl
   NAME       di.Bewegungsmelder
   NOTIFYDEV  global
   NR         586
   NTFY_ORDER 50-di.Bewegungsmelder
   STATE      initialized
   TYPE       DOIF
   VERSION    27616 2023-05-25 17:55:36
   eventCount 622
   READINGS:
     2023-07-19 21:20:06   mode            enabled
     2023-07-19 21:20:06   state           initialized
   Regex:
     accu:
     bar:
     barAvg:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
   helper:
     NOTIFYDEV  global
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         always
   icon       helper_doif
   room       04_Licht

Gruß
Alex

Mit der Definition kann auch nichts ausgelöst werden, die entspricht nicht meinem Vorschlag.
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Nighthawk am 20 Juli 2023, 12:04:23
Habe meinen Fehler gefunden, es fehlt eine Klammer am Anfang :-)
Mit der Definition ["^Bewegungsmelder:^motion: motion"] gibt es nun endlich keine Doppelevents.

Danke für die Unterstützung Damian!
Titel: Aw: (ERLEDIGT)DOIF mit HM Bewegungsmelder löst immer 2x aus....
Beitrag von: Per am 20 Juli 2023, 21:33:51
Zitat von: Damian am 20 Juli 2023, 09:19:53Mit der Definition kann auch nichts ausgelöst werden, die entspricht nicht meinem Vorschlag.
Auch wenn der erste Teil stimmt, ist die Begründung im zweiten doch etwas  sagen wir mal "mutig". ;)