FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fredi69 am 29 August 2016, 21:20:24

Titel: [gelöst] DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 29 August 2016, 21:20:24
Ich habe folgendes DOIF, welches immer zweimal hintereinander meine Lampen anschaltet.
Kann sich das jemand erklären?
define Bewegungmelder_Strasse_On_DI DOIF
([Aussen_Garten_Bewegungmelder_Strasse:"motion"] and [Aussen_Garten_Bewegungmelder_Strasse:brightness] < 10)
(set Aussen_Garten_Lampe_Wegbeleuchtung on-for-timer 60,set Aussen_Garten_Lampe_Haustuer on-for-timer 60)
attr Bewegungmelder_Strasse_On_DI do always
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: automatisierer am 29 August 2016, 21:55:57
Ich gehe mal stark davon aus, dass es zwei Events gibt auf die "motion" passt.
Du müsstest evtl. die regex ein bissl anpassen. Mit den Events die beim Bewegungsmelder kommen, kenne ich mich leider nicht aus.
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 29 August 2016, 21:58:06
Zitat von: automatisierer am 29 August 2016, 21:55:57
Ich gehe mal stark davon aus, dass es zwei Events gibt auf die "motion" passt.
Du müsstest evtl. die regex ein bissl anpassen. Mit den Events die beim Bewegungsmelder kommen, kenne ich mich leider nicht aus.
Das verstehe ich leider nicht, wo könnte es zwei Events geben?
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: kumue am 29 August 2016, 22:08:29
Vielleicht hilft diese Seite weiter.. auch unten mit DOIF-Bespiel
http://www.fhemwiki.de/wiki/HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen (http://www.fhemwiki.de/wiki/HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen)

Habe selbst keinen Bewegungsmelder im Einsatz, kann somit nicht nach Events/Readings schauen...
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: automatisierer am 29 August 2016, 22:17:10
Wenn dein Bewegungsmelder auslöst, dann entstehen Events. Diese Events kannst du ja auch im EventMonitor sehen. Beim auslösen des BWM werden sicherlich mehrere Events erzeugt und alle Events in denen 'motion' vorkommt triggern dein DOIF.

Entweder suchst du im Forum nach einer Lösung (bin mir sicher das dieses Thema schon öfter behandelt wurde), oder du gibst uns mal noch ein paar Informationen.
z.B. Welche Geräte du verwendest oder du Postest die Events die beim auslösen des BWM erzeugt werden.



Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 29 August 2016, 22:25:37
Es handelt sich um einem HM-SEN-MDIR-SM
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 30 August 2016, 06:47:42
Hier die Events:

2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse brightness: 33
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion: on (to HMLAN1)
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motionCount: 110_next:60s
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse trigDst_2CD994: noConfig
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse trigger_cnt: 110
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: kumue am 30 August 2016, 07:29:20
in Anlehnung an die DOIF commadref
(["^FS$:^temp$"] triggert auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt

würde ich Folgendes versuchen
define Bewegungmelder_Strasse_On_DI DOIF
(["^Aussen_Garten_Bewegungmelder_Strasse$:^motion$"] and [Aussen_Garten_Bewegungmelder_Strasse:brightness] < 10)
(set Aussen_Garten_Lampe_Wegbeleuchtung on-for-timer 60,set Aussen_Garten_Lampe_Haustuer on-for-timer 60)
attr Bewegungmelder_Strasse_On_DI do always


Ich denke, daß dadurch nur auf das eine Event
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion
getriggert wird... hoffentlich  :)
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: Damian am 30 August 2016, 08:22:49
Zitat von: kumue am 30 August 2016, 07:29:20
in Anlehnung an die DOIF commadref
(["^FS$:^temp$"] triggert auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt

würde ich Folgendes versuchen
define Bewegungmelder_Strasse_On_DI DOIF
(["^Aussen_Garten_Bewegungmelder_Strasse$:^motion$"] and [Aussen_Garten_Bewegungmelder_Strasse:brightness] < 10)
(set Aussen_Garten_Lampe_Wegbeleuchtung on-for-timer 60,set Aussen_Garten_Lampe_Haustuer on-for-timer 60)
attr Bewegungmelder_Strasse_On_DI do always


Ich denke, daß dadurch nur auf das eine Event
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion
getriggert wird... hoffentlich  :)

Es würde schon reichen:

([Aussen_Garten_Bewegungmelder_Strasse:"^motion"] ... um "nomotion" auszuschließen.

Gruß

Damian
Titel: Antw:DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 30 August 2016, 16:27:41
Zitat von: Damian am 30 August 2016, 08:22:49
Es würde schon reichen:

([Aussen_Garten_Bewegungmelder_Strasse:"^motion"] ... um "nomotion" auszuschließen.

Gruß

Damian
Es hat beides nicht gereicht.
Nach versch. Tests muss es anscheinend wie folgt umgesetzt werden:
([Aussen_Garten_Bewegungmelder_Strasse:"^motion: on"])

Vielen Dank für Eure Hilfe
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: automatisierer am 30 August 2016, 19:43:59
bei

(["Aussen_Garten_Bewegungmelder_Strasse:^motion"] ...

wird bei jedem Event getriggert das 'Aussen_Garten_Bewegungmelder_Strasse' irgendwo im Devicenamen und 'motion' am Anfang des Events hat, also bei:

2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion: on (to HMLAN1)
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motionCount: 110_next:60s
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion


wenn du hingegen

(["Aussen_Garten_Bewegungmelder_Strasse:^motion$"] ...

nimmst, dann wird bei jedem Event getriggert das 'Aussen_Garten_Bewegungmelder_Strasse' irgendwo im Devicenamen und einem Event welches NUR aus 'motion' besteht, also nur bei:

2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: Damian am 30 August 2016, 19:47:53
Zitat von: automatisierer am 30 August 2016, 19:43:59
bei

(["Aussen_Garten_Bewegungmelder_Strasse:^motion"] ...

wird bei jedem Event getriggert das 'Aussen_Garten_Bewegungmelder_Strasse' irgendwo im Devicenamen und 'motion' am Anfang des Events hat, also bei:

2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion: on (to HMLAN1)
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motionCount: 110_next:60s
2016-08-30 06:43:44 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion


Das stimmt nicht ganz. Die drei Event-Zeilen gehören wahrscheinlich zu einem Trigger, hier würde "motion" (zumindest bei DOIF) nur einmal triggern.
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 30 August 2016, 20:48:22
Ich merke das ich nicht alleine unsicher bin. So richtig kann mir das anscheinend keiner exakt sagen, warum was wie geht oder nicht.
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: automatisierer am 30 August 2016, 21:18:46
das kann man schon... bei FHEM passiert nix zufällig oder ausversehen...

Das was ich da geschrieben habe stimmt ja - allerdings nicht im Zusammenhang mit den von dir geposteten Events. Da diese zu einem Trigger gehören und DOIF von denen somit nur ein mal getriggert wird (das wusste ich bisher nicht).
Damit ist allerdings nicht geklärt warum dein DOIF mehrfach getriggert wurde. Das kann dann m.M.n. nur daran liegen, dass du entweder nicht alle Events die bei einem auslösen des Bewegungsmelders entstehen gepostet hast, oder wir reden bei
Zitatwelches immer zweimal hintereinander meine Lampen anschaltet
aneinander vorbei.
Ich hatte 'zweimal hintereinander' so verstanden, dass beim auslösen des Bewegungsmelders zweimal der 'set ...' Befehl kommt.

Bei einer ungenauen/ungenügenden Beschreibung des Problems, kann dir keiner die genaue Lösung/Ursache liefern.
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: Fredi69 am 30 August 2016, 21:32:26
Zitat von: automatisierer am 30 August 2016, 21:18:46
das kann man schon... bei FHEM passiert nix zufällig oder ausversehen...

Das was ich da geschrieben habe stimmt ja - allerdings nicht im Zusammenhang mit den von dir geposteten Events. Da diese zu einem Trigger gehören und DOIF von denen somit nur ein mal getriggert wird (das wusste ich bisher nicht).
Damit ist allerdings nicht geklärt warum dein DOIF mehrfach getriggert wurde. Das kann dann m.M.n. nur daran liegen, dass du entweder nicht alle Events die bei einem auslösen des Bewegungsmelders entstehen gepostet hast, oder wir reden beianeinander vorbei.
Ich hatte 'zweimal hintereinander' so verstanden, dass beim auslösen des Bewegungsmelders zweimal der 'set ...' Befehl kommt.

Bei einer ungenauen/ungenügenden Beschreibung des Problems, kann dir keiner die genaue Lösung/Ursache liefern.
Das hast Du wohl den Nagel auf den Kopf getroffen, ich habe heute gesehen, dass nach ca. 60 Sekunden weitere Events kommen.

2016-08-30 21:24:50 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion: off
2016-08-30 21:24:50 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motionDuration: 62
2016-08-30 21:24:50 CUL_HM Aussen_Garten_Bewegungmelder_Strasse noMotion


Ich nehme jetzt an, dass durch dieses "noMotion" die Lampe das zweite mal geschaltet wird.

Vielen Dank
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: automatisierer am 30 August 2016, 21:51:23
da Perl CaseSensitive ist, dürfte 'noMotion' nicht 'motion' treffen. Aber die anderen beiden Events
2016-08-30 21:24:50 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motion: off
2016-08-30 21:24:50 CUL_HM Aussen_Garten_Bewegungmelder_Strasse motionDuration: 62

treffen 'motion' aber nicht ein '^motion$'
Titel: Antw:[gelöst] DOIF wird zweimal ausgelöst
Beitrag von: Rince am 11 September 2016, 16:04:30
'^motion$' => DOIF reagiert nicht
"^motion$" => so gehts  ;D

Besten Dank. Jetzt geht mein Bewegungsmelder wieder richtig :)