Erst bei mehrmaligen Notify Ereignis auslösen

Begonnen von stebar_, 29 Dezember 2018, 23:48:02

Vorheriges Thema - Nächstes Thema

stebar_

Hallo Zusammen,

ich habe ein Thema bei den Anfängerfragen erstellt. Ich hoffe hier bin ich richtig. Ich möchte folgendes zusätzlich erreichen, wenn ein Notify zwei mal ausgelöst hat, soll eine Lampe eingeschaltet werden, hat den Hintergrund, dass der PIR der das Notify erzeugt, viele "Fehlauslösungen" hat. Der vorhandene Code schaltet die Lampe für 120 Sekunden ein, wenn der PIR auslöst und es draußen dunkel ist. Außerdem wird ein nachtriggern durch den PIR erlaubt.

DEF:
(PIR:tripped1:.motion) {my $r1 = Value("Lampe"); my $r2 = Value("SonneWeg");if (($r1 eq "on" && $r2 eq "on") ||($r1 eq "off" && $r2 eq "on")){fhem ("cancel mySleep quiet; set Lampe on; sleep 120 mySleep; set Lampe off")}}

Vielleicht hat jemand eine Idee, wie ich das umsetzen kann  ;)

Viele Grüße

Paul

Und du bist Dir sicher das beim Zweiten auslösen keine Fehlauslösung ist?

Also wenn ich immer Fehlauslösungen bei einem PiR habe würde ich ihn austauschen.

Dummy hochzählen wenn 2, Lampe an und Dummy auf 0
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Jamo

das "sequence" modul kann das. Schau Dir das mal an.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Paul

Zitat von: inoma am 30 Dezember 2018, 12:55:06
das "sequence" modul kann das. Schau Dir das mal an.

Wie legst du den Zeitraum fest?

Ein sequence kann verwendet werden, um ein neues Event zu generieren, wenn eine bestimmte Folge von anderen Events in einem festgelegten Zeitraum eingetroffen ist
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Jamo

#4
Hast Du Dir überhaupt mal die Mühe gemacht, in die FHEM Commandref nach Sequence zu schauen?

Das 2-te 'on' event muss innerhalb von 10 sekunden nach dem ersten kommen, dann wird ein trigger generiert
define myseq sequence btn1:on 10 btn1:on

Wenn das 2-te 'on' event zwischen 3 und 10 sekunden nach dem ersten kommt, dann wird ein trigger generiert
define myseq sequence btn1:on 3:10 btn1:on

Auf den trigger musst Du dann noch ein notify machen.

Vom Handy deswegen nur kurz
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

stebar_

Vielen Dank für die konstruktiven Antworten  :D

Zitat von: Paul am 29 Dezember 2018, 23:57:40
Und du bist Dir sicher das beim Zweiten auslösen keine Fehlauslösung ist?
Nein, ich bin mir nicht sicher, denke es lohnt sich es auszuprobieren.

Zitat von: Paul am 29 Dezember 2018, 23:57:40
Also wenn ich immer Fehlauslösungen bei einem PiR habe würde ich ihn austauschen.
Ich denke es liegt an dem sehr günstigen Preis ::). Ich habe mir die PIR Module aus China schicken lassen. Das Modell nennt sich PM-8. Ich habe mal nachgeschaut, bei Aliexpress gibt es eine schöne Beschreibung, wenn es interessant ist, hier der link:
https://de.aliexpress.com/item/Pyroelectric-Infrared-Sensor-Module-Pir-Module-Motion-Sensor-Detector-Module-Pm-8/32317622914.html
Ich habe es allerdings wo anders gekauft.

Zitat von: inoma am 30 Dezember 2018, 15:12:38
Wenn das 2-te 'on' event zwischen 3 und 10 sekunden nach dem ersten kommt, dann wird ein trigger generiert
define myseq sequence btn1:on 3:10 btn1:on
Das hier schaut sehr interessant aus! Gibt es eine Möglichkeit dieses in die vorhandene DEF einzufügen, ohne noch einen weiteren Notify zu basteln?

Viele Grüße

Paul

Zitat von: inoma am 30 Dezember 2018, 15:12:38
Hast Du Dir überhaupt mal die Mühe gemacht, in die FHEM Commandref nach Sequence zu schauen?
So steht es im Wiki: Ein sequence kann verwendet werden, um ein neues Event zu generieren, wenn eine bestimmte Folge von anderen Events in einem festgelegten Zeitraum eingetroffen ist

Zitat von: inoma am 30 Dezember 2018, 15:12:38
Das 2-te 'on' event muss innerhalb von 10 sekunden nach dem ersten kommen, dann wird ein trigger generiert

Sequence ist gedacht, wenn man verschiedene Tastenkombinationen hintereinander drückt, aber wie
Will man das darstellen wenn ein Device viele "Fehlauslösungen" hat.

Diese Fehlauslösungen kommen wohl unregelmäßig.
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Byte09

Zitat von: stebar_ am 29 Dezember 2018, 23:48:02
Hallo Zusammen,

ich habe ein Thema bei den Anfängerfragen erstellt. Ich hoffe hier bin ich richtig. Ich möchte folgendes zusätzlich erreichen, wenn ein Notify zwei mal ausgelöst hat, soll eine Lampe eingeschaltet werden, hat den Hintergrund, dass der PIR der das Notify erzeugt, viele "Fehlauslösungen" hat. Der vorhandene Code schaltet die Lampe für 120 Sekunden ein, wenn der PIR auslöst und es draußen dunkel ist. Außerdem wird ein nachtriggern durch den PIR erlaubt.

DEF:
(PIR:tripped1:.motion) {my $r1 = Value("Lampe"); my $r2 = Value("SonneWeg");if (($r1 eq "on" && $r2 eq "on") ||($r1 eq "off" && $r2 eq "on")){fhem ("cancel mySleep quiet; set Lampe on; sleep 120 mySleep; set Lampe off")}}

Vielleicht hat jemand eine Idee, wie ich das umsetzen kann  ;)

Viele Grüße

Hi ,

da ich glaube das das hier ein wenig abdriftet und sequence ggf. etwas 'drüber' ist kannst du es mit einem MSwitch statt eines Notifys einrichten.
In der aktuellen Version hat es die Funktion ( schalte erst bei x events in x sekunden ) 'im Grunde' integriert, d.H du brauchst keine 2 notifys und eine sequenz , sondern nur ein MSwitch

wenn du es versuchen möchtest kannst du mich gerne anschreiben , auch per PN

gruss Byte09

stebar_

#8
Zitat von: Paul am 30 Dezember 2018, 18:41:30
Diese Fehlauslösungen kommen wohl unregelmäßig.
Ja, diese kommen unregelmäßig, allerdings wenn ich die Logs richtig gedeutet habe nicht zwei mal hintereinander.

Zitat von: Byte09 am 30 Dezember 2018, 19:25:32
In der aktuellen Version hat es die Funktion ( schalte erst bei x events in x sekunden ) 'im Grunde' integriert, d.H du brauchst keine 2 notifys und eine sequenz , sondern nur ein MSwitch
Vielen Dank für die Hilfe! Habe mir gerade ein MSwitch für das PIR Device gebaut, dass schaltet auch auf die Entsprechenden Events, also "still" und "motion". Super finde ich die Attribute "MSwitch_Help 1", sollte es auch bei anderen Modulen geben. Ansonsten hat mir noch die FHEM Referenz geholfen. Was ich allerdings nicht finde ist das "schalte erst bei x events in x sekunden". Wo parametriere ich dieses? Die Wiki Hilfe ist leider nicht mehr vorhanden.

Byte09

#9
setz die attribute 'MSwitch_Reset_EVT_CMD1_COUNT' und 'MSwitch_Reset_EVT_CMD2_COUNT' jeweils auf 2. diese zählen bei jedem auslösenden event den zähler 1 hoch und resetten dann bei 2.

bei dem entsprechenden Befehl setzt du dann als condition ' [$EVT_CMD1_COUNT] eq "2" '  oder [$EVT_CMD2_COUNT] eq "2" '  , je nachdem in welchem cmdzweig du den befehl auslöst.

wenn die 2 events in einem bestimmten zeitraum kommen müssen musst du diesen nach diesem zeitraum resetten , siehe dazu bild im anhang.

wiki: https://wiki.fhem.de/wiki/MSwitch

WICHTIG: du musst die aktuellste Version des Moduls nutzen - V 2.09

gruss Byte09


stebar_

Ich habe mithilfe von MSwitch die Anforderungen umsetzen können. Was noch fehlt ist "SonneWeg" mal schauen, werde ich die Tage noch rein basteln. Was ich gemerkt habe das das Modul MSwitch sehr mächtig ist  :D Ohne die Anleitung hätte ich es vermutlich nicht so schnell geschafft. Ich hatte die Tage ein FHEM Update durchgeführt, war schon die aktuelle Version.

Ich musste den Counter auf 3 hochdrehen, ich bin nicht so zufrieden mit den PIRs...

Viele Grüße