Hallo zusammen,
ich habe gerade ein Brett vor dem Kopf :-\ beim erstellen eines notify´s.
Zur Erkennung und Meldung, dass es an der Haustür klingelt, möchte ich das die Webcam ein Bild in der Ram Disk ablegt und dieses im Anschluß per Telegram und Android Notifier versendet.
Das Ablegen des Fotos in der Ram Disk geht sehr schnell und ich dachte nach einem "fhem sleep 2" würden dann die Nachrichten versendet.
Leider wird immer nur das zum vorherigen Event generierte Foto gesendet, bzw. keins, wenn das Event nie auftrat.
Was mache ich falsch?
testschalter:on { fhem ("get spion image");;fhem sleep 2;;fhem ("set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg");;fhem ("set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt");;fhem ("set teleBot message 'Klingel' 'Es hat geklingelt'") }
Gruß Andreas
Hallo Andreas,
der syntax ist falsch. in der DEF (nicht im define)
testschalter:on get spion image;sleep 2;set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg;set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt;set teleBot message 'Klingel' 'Es hat geklingelt'
oder (unnötig) mit Perl Klammer
testschalter:on { fhem ("get spion image");fhem ("sleep 2");fhem ("set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg");fhem ("set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt");fhem ("set teleBot message 'Klingel' 'Es hat geklingelt'") }
Es geht auch testschalter:on { fhem ("get spion image");sleep 2;fhem ("set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg");fhem ("set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt");fhem ("set teleBot message 'Klingel' 'Es hat geklingelt'") }
Das verwendet Perl sleep und blockiert Dein FHEM für 2 sec.
Im define musst Du die ; verdoppeln!
Alles nicht getestet. Wenn es nicht läuft ins Logfile schauen.
Gruß Otto
Hallo Otto,
vielen Dank. Du hast mich erfolgreich von dem Brett :) befreit. Hab einfach zu kompliziert gedacht.
Gruß Andreas
Ach, eine "einfache" Perl Variante hatte ich vergessen:
testschalter:on {fhem("get spion image;sleep 2;set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg;set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt;set teleBot message 'Klingel' 'Es hat geklingelt'")}
Zitat von: shootingstar am 11 Februar 2018, 11:22:12
Hallo Otto,
vielen Dank. Du hast mich erfolgreich von dem Brett :) befreit. Hab einfach zu kompliziert gedacht.
Gruß Andreas
Wenn gelöst, dann bitte noch [Gelöst] vor das Subject des ersten Posts schreiben:-)
Kurz, weil mobil...
Zitat von: Otto123 am 11 Februar 2018, 10:42:54
Das verwendet Perl sleep und blockiert Dein FHEM für 2 sec.
Ja, leider.
Das hat nach meiner Beobachtung u.U. zur Folge, dass das Kommando vor dem Sleep, falls es noch in der FHEM-Command-Queue steht, erstmal 2 s warten muss, bis es ausgeführt wird.
Das Kommando nach dem sleep wird danach aber verzögerungsfrei ausgeführt :-[ .
Besser geht's mit einem DOIF-Konstrukt unter Zuhilfenahme des wait-Attributs.
Gruß crusader
Zitat von: shootingstar am 11 Februar 2018, 10:29:27
Hallo zusammen,
ich habe gerade ein Brett vor dem Kopf [emoji53] beim erstellen eines notify´s.
Zur Erkennung und Meldung, dass es an der Haustür klingelt, möchte ich das die Webcam ein Bild in der Ram Disk ablegt und dieses im Anschluß per Telegram und Android Notifier versendet.
Das Ablegen des Fotos in der Ram Disk geht sehr schnell und ich dachte nach einem "fhem sleep 2" würden dann die Nachrichten versendet.
Leider wird immer nur das zum vorherigen Event generierte Foto gesendet, bzw. keins, wenn das Event nie auftrat.
Was mache ich falsch?
testschalter:on { fhem ("get spion image");;fhem sleep 2;;fhem ("set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg");;fhem ("set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt");;fhem ("set teleBot message 'Klingel' 'Es hat geklingelt'") }
Gruß Andreas
Wenn es ein notify sein soll, versuche es in der DEF mal so, damit bleibst du auf FHEM Ebene und das sleep blockiert FHEM nicht:
testschalter:on get spion image;sleep 2;set teleBot sendPhoto /opt/fhem/rdsnapshots/spion_snapshot_1.jpg;set Sonypush msg image=/opt/fhem/rdsnapshots/spion_snapshot_1.jpg Es hat geklingelt;set teleBot message 'Klingel' 'Es hat geklingelt'"
Grüße Marcel
Tapatalk iPhone, daher kurz gehalten.
Moin Marcel,
was ist jetzt der Unterschied zu meiner ersten Variante in meiner ersten Antwort? :o
Außer das " zuviel am Ende?
Gruß Otto
Vor allem .. warum hüpft Ihr immer zwischen perl und der FHEM-Ebene?
Mann kann vieles in FHEM, ohne immer zwischen den Ebenen zu wechseln ...
Zitat von: Wernieman am 12 Februar 2018, 10:12:17
Vor allem .. warum hüpft Ihr immer zwischen perl und der FHEM-Ebene?
Ich glaube einfach: weil das Spass macht ;D ;D ;D
Zitat von: Otto123 am 12 Februar 2018, 09:46:24
Moin Marcel,
was ist jetzt der Unterschied zu meiner ersten Variante in meiner ersten Antwort? :o
Außer das " zuviel am Ende?
Gruß Otto
Entschuldige Otto, die Antwort von dir habe ich schlichtweg überlesen.
Und richtig, bei mir ist am Ende ein " zuviel.
Tapatalk iPhone, daher kurz gehalten.