FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: shootingstar am 11 Februar 2018, 10:29:27

Titel: Kommandos im notify nacheinander ausführen
Beitrag von: shootingstar am 11 Februar 2018, 10:29:27
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
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: Otto123 am 11 Februar 2018, 10:42:54
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
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag 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
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: Otto123 am 11 Februar 2018, 11:24:55
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'")}
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: KernSani am 11 Februar 2018, 17:59:27
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...
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: crusader am 12 Februar 2018, 02:10:59
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
Titel: Kommandos im notify nacheinander ausführen
Beitrag von: Ma_Bo am 12 Februar 2018, 03:20:09
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.
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag 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
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: Wernieman am 12 Februar 2018, 10:12:17
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 ...
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: Otto123 am 12 Februar 2018, 10:15:31
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
Titel: Antw:Kommandos im notify nacheinander ausführen
Beitrag von: Ma_Bo am 12 Februar 2018, 10:36:49
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.