DOIF neue Features (Sleep-Alternative)

Begonnen von Damian, 12 Juli 2015, 21:17:52

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Joesky am 26 September 2015, 12:26:18
Wie kann ich mit Hilfe von DOIF eine Methode aus 99_myUtils.pm aufrufen? Ich probiere es so:
define tkDoorOpen DOIF ([Eingangstuer] eq "open") ({ DebianMail('email@server.de', 'Tür ist geöffnet!', '');; })

Im Log bekomme ich den folgenden Fehler:
Wenn ich
{ DebianMail('email@server.de', 'Tür ist geöffnet!', '');; }
in fhem direkt ausführe, wird eine eMail ohne Fehler verschickt.

Bei mir funktioniert eine eigene Routine ohne Probleme. Übrigens: die beiden Semikolons machen an dieser Stelle grundsätzlich keinen Sinn.

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Joesky

Aber ohne das zweite Semikolon bekomme ich die Fehlermeldung, dass eine Klammer fehlt... Ich habe eben noch eine interessante Fehlermeldung im Log gefunden:
Zitat2015.09.26 12:03:48 1: reload: Error:Modul 99_myUtils deactivated:

Nach dem deactivated kommt eine leere Zeile. Kann es damit zu tun haben? Wie gesagt, in der "Shell" vom FHEM kann ich den Befehl so ausführen.
_______________
FREI STATT BAYERN

Damian

Zitat von: Joesky am 26 September 2015, 21:09:15
Aber ohne das zweite Semikolon bekomme ich die Fehlermeldung, dass eine Klammer fehlt... Ich habe eben noch eine interessante Fehlermeldung im Log gefunden:Nach dem deactivated kommt eine leere Zeile. Kann es damit zu tun haben? Wie gesagt, in der "Shell" vom FHEM kann ich den Befehl so ausführen.

keine Ahnung. Ich benutze Debianmail nicht. Bei mir funktioniert eine eigene Funktion mit mehreren Parametern mit Komma getrennt mit Anführungszeichen " und auch mit '

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

RoBra81

Zitat von: Joesky am 26 September 2015, 21:09:15
Aber ohne das zweite Semikolon bekomme ich die Fehlermeldung, dass eine Klammer fehlt... Ich habe eben noch eine interessante Fehlermeldung im Log gefunden:Nach dem deactivated kommt eine leere Zeile. Kann es damit zu tun haben? Wie gesagt, in der "Shell" vom FHEM kann ich den Befehl so ausführen.
Da es nur ein Befehl ist kannst du beide Semikolon weg lassen...

moonsorrox

Zitat von: dominik am 26 September 2015, 10:01:38
ist es möglich über DOIF ein Datum abzufragen?

moonsorrox hatte hier eine ähnliche Frage die wohl untergegangen ist (http://forum.fhem.de/index.php/topic,39070.msg335728.html#msg335728).

ich war ein paar Tage außer Gefecht gesetzt und wollte mal fragen ob es bei dir inzwischen mit dem Datum klappt.
Hast du mal ein Beispiel, wenn es gehen sollte
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

eberlrudi

Hallo ihr DOIF-Experten :)

Ich schlage mich nun seit geraumer Zeit mit einem Notify herum, welches immer 2 mal ausgelöst wird. Ich hoffe ihr könnt mir dabei helfen.


Ausgangssituation:

Meine Klingelanlage mit Analoger Kamera ist an einem Videoserver angeschlossen, welcher das Bild ins Netzwerk transportiert. Am Videoserver ist Motion-Detect aktiviert, welches beim Klingeln auslöst (weil ja die Kamera angeht) und eine UDP-Message an den FHEM-Server schickt. In FHEM setzt die UDP-Message ein Notify aus, welches das Touchpanel einschaltet und zum Raum Überwachung wechselt in dem dann das Bild per iframe zu sehen ist.

Problem:

Sobald die Klingelkamera abschaltet (nach 60 Sekunden) aktiviert sie wieder das Motion-Detect im Videoserver und setzt die komplette Kette wieder in Gang.
Das Ergebnis ist, dass das Tablet wieder den Raum wechselt, dann sagt es habe geklingelt und ein blaues Bild zu sehen ist.... >:(


Nun möchte ich gerne das Notify per DOIF nach dem Auslösen in eine Zwangspause von 61 Sekunden schicken.
Ich bekomme es aber leider nicht hin.
Das lange suchen und rangieren hat mich eher verwirrt.

Ich hoffe es kann mir jemand helfen

Hier das Notify

EsKlingelt.*|cmd=trigger%20EsKlingelt
;
trigger WEB JS:location="/fhem?room=Überwachung" ;
{UDP_Msg("192.168.2.6" , "wolido:displayon")} ; sleep 3 ; {UDP_Msg("192.168.2.6" , "wolido:speak:Es hat geklingelt")} ;
sleep 39 ;
trigger WEB JS:location="/fhem?room=Küche" ;
{UDP_Msg("192.168.2.6" , "wolido:displayoff")}


Damian

ohne notify:

define di_EsKlingelt DOIF ([EsKlingelt:?])
  (trigger WEB JS:location="/fhem?room=Überwachung", {UDP_Msg("192.168.2.6" , "wolido:displayon")})
  ({UDP_Msg("192.168.2.6" , "wolido:speak:Es hat geklingelt")},trigger WEB JS:location="/fhem?room=Küche")
  ({UDP_Msg("192.168.2.6" , "wolido:displayoff")})

attr di_EsKlingelt do always
attr di_EsKlingelt wait 0,3,39
attr di_EsKlinglet cmdpause 61


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

eberlrudi

Vielen Dank für die schnelle Antwort und dem Code!

Ich habe vorhin etwas falsches geschrieben.....
Das Notify wird nicht mit UDP sondern über die http-Notify Funktion des Videoservers ausgelöst. Wie reagiert das DOIF darauf?

RegexpPart ist:

cmd=trigger%20EsKlingelt

Das Bild zeigt einen Ausschnitt der Gui vom Videoserver

Gruß


Damian

Zitat von: eberlrudi am 29 September 2015, 18:16:57
Vielen Dank für die schnelle Antwort und dem Code!

Ich habe vorhin etwas falsches geschrieben.....
Das Notify wird nicht mit UDP sondern über die http-Notify Funktion des Videoservers ausgelöst. Wie reagiert das DOIF darauf?

RegexpPart ist:

cmd=trigger%20EsKlingelt

Das Bild zeigt einen Ausschnitt der Gui vom Videoserver

Gruß

Wie sieht denn der Trigger im Event monitor aus?

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

eberlrudi

Das gibt der Event Monitor aus:

(Ich musste den Rest deaktivieren, da FHEM beim auslösen ja den Raum wechselt)


2015-09-29 19:39:14 LaCrosse LaCrosse_09 temperature: 23.2
2015-09-29 19:39:14 LaCrosse LaCrosse_09 humidity: 51
2015-09-29 19:39:16 LaCrosse LaCrosse_11 battery: ok
2015-09-29 19:39:16 LaCrosse LaCrosse_11 temperature: 20.1
2015-09-29 19:39:16 LaCrosse LaCrosse_11 humidity: 63
2015-09-29 19:39:20 notify EsKlingelt
2015-09-29 19:39:22 LaCrosse LaCrosse_09 battery: ok
2015-09-29 19:39:22 LaCrosse LaCrosse_09 temperature: 23.2
2015-09-29 19:39:22 LaCrosse LaCrosse_09 humidity: 51
2015-09-29 19:39:24 LaCrosse LaCrosse_11 battery: ok

Damian

Zitat von: eberlrudi am 29 September 2015, 19:46:01
Das gibt der Event Monitor aus:

(Ich musste den Rest deaktivieren, da FHEM beim auslösen ja den Raum wechselt)


2015-09-29 19:39:14 LaCrosse LaCrosse_09 temperature: 23.2
2015-09-29 19:39:14 LaCrosse LaCrosse_09 humidity: 51
2015-09-29 19:39:16 LaCrosse LaCrosse_11 battery: ok
2015-09-29 19:39:16 LaCrosse LaCrosse_11 temperature: 20.1
2015-09-29 19:39:16 LaCrosse LaCrosse_11 humidity: 63
2015-09-29 19:39:20 notify EsKlingelt
2015-09-29 19:39:22 LaCrosse LaCrosse_09 battery: ok
2015-09-29 19:39:22 LaCrosse LaCrosse_09 temperature: 23.2
2015-09-29 19:39:22 LaCrosse LaCrosse_09 humidity: 51
2015-09-29 19:39:24 LaCrosse LaCrosse_11 battery: ok


ja, dann sollte mein Code-Vorschlag bereits funktionieren.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

eberlrudi

Wahnsinn!! Danke!!


Es funktioniert!!!

jetzt ist DOIF gerade für mich etwas durchsichtiger geworden.
Nur die Pausen stimmen irgendwie nicht.

Das schaff ich aber alles selbst.


Vielen Dank nochmal

eberlrudi

Jetzt muss ich doch nochmal was fragen.

Ich bekomme das mit den Pausen nicht in den griff. Kann ich die auch einfach wie im Notify ins Def schreiben? Das fände ich einfacher
Ich verstehe den zusammenhang nicht ganz. 0,3,39... kann man die Null nicht auch weglassen? Werden die Pausen nach einem trigger gemacht?

Mit dem Code, den du mir geschickt hast, geht das Display an, wechselt den Raum und springt sofort wieder zurück in den Raum Küche.
Zudem bekomme ich komischerweise in den Readings mit

{UDP_Msg("192.168.2.6" , "wolido:displayoff")}: send wolido:displayoff

einen ERROR.... :o

Damian

Zitat von: eberlrudi am 29 September 2015, 21:12:28
Jetzt muss ich doch nochmal was fragen.

Ich bekomme das mit den Pausen nicht in den griff. Kann ich die auch einfach wie im Notify ins Def schreiben? Das fände ich einfacher
Ich verstehe den zusammenhang nicht ganz. 0,3,39... kann man die Null nicht auch weglassen? Werden die Pausen nach einem trigger gemacht?

Mit dem Code, den du mir geschickt hast, geht das Display an, wechselt den Raum und springt sofort wieder zurück in den Raum Küche.
Zudem bekomme ich komischerweise in den Readings mit

{UDP_Msg("192.168.2.6" , "wolido:displayoff")}: send wolido:displayoff

einen ERROR.... :o

Hast du überhaupt die aktuelle Version des Moduls? Die Features sind relativ neu.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

eberlrudi

ist das nicht im Update enthalten? das habe ich gestern erst gemacht.