FHEM Forum

FHEM => Automatisierung => Thema gestartet von: e3xtreme am 13 Januar 2016, 14:50:49

Titel: Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 13 Januar 2016, 14:50:49
Hallo,

Ich komme gerade aus dem Telegram Thread
Mein Plan ist es durch drücken der Klingel sofort ein Webcambild per Telegram ans Handy zu schicken,... funktioniert praktisch auch schon ziemlich gut, nur ist leider scheinbar der Schreibprozess des Pi zu langsam, sodass Telegram das zuletzt gespeicherte Bild abschickt, also das vor dem Klingeln gespeicherte und nicht das neue.

Wie kann ich da eine Schleife mit Abfrage nach der Erstellung der Datei machen, die Datei wird in meinem Fall ja überschrieben???

Habs mit sleep zwischen erstellen und abschicken versucht bin jetzt schon bei sleep 10 und viel mehr möcht ich nur ungern haben, denn sonst klingelt es wirklich stark verzögert...

oder gibt es eine Methode das ganze zu beschleunigen? Prioritäten oder sowas?? Kann ja nicht sein dass der 10 sekunden zum speichern eines Bildes braucht... :o

Klingel_Oben:.*on.* {fhem("get Cam_Gang image");

sleep 10;

fhem("set Telegram sendImage ".'@@user1 @user2'." /opt/fhem/www/snapshots/Cam_Gang_snapshot.jpg Es hat gerade oben geklingelt")}


Danke, lg
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: Otto123 am 13 Januar 2016, 16:50:41
Hallo,

Du willst das Bild quasi als "Klingelton" haben, oder warum ist das mit den 10 sec wichtig?

Ansonsten würde ich sagen mach ein DOIF für das holen des Bildes und verzögere die Ausführung des Telegram mit wait.

Gruß Otto
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 13 Januar 2016, 17:11:16
Zitat von: Otto123 am 13 Januar 2016, 16:50:41

Du willst das Bild quasi als "Klingelton" haben, oder warum ist das mit den 10 sec wichtig?


;D.. nein

das verzögert das Absenden des Bildes um 10 Sekunden, bringt aber eh nix...

Naja mein Fhem erstellt durch den Befehl ein Bild und überschreibt das alte Bild, wie kann ich das mit DOIF checken, das Bild heißt ja gleich... oder kann ich irgendwie die Erstellzeit abfragen, mal abgesehen davon, dass ich nicht weiß wie lang er zum Erstellen braucht.

was ist der unterschied zwischen sleep und wait? :o

danke
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: Otto123 am 13 Januar 2016, 17:52:27
http://fhem.de/commandref_DE.html#DOIF_wait
define Tipp DOIF ([Klingel_Oben] eq "on") (get Cam_Gang image) (set Telegram sendImage ".'@@user1 @user2'." /opt/fhem/www/snapshots/Cam_Gang_snapshot.jpg Es hat gerade oben geklingelt)
attr Tipp wait 0,10



Wie Du jetzt wirklich das Bild checkst weiß ich jetzt auch nicht. Aber das löst Deinen Ansatz etwas übersichtlicher.

Du hast geschrieben: mehr wie 10 sec willst Du nicht warten, aber was passiert dadurch? Was ist mit 11 oder 15 oder 16 ? Was ist schlimm daran. Versuch doch erstmal raus zu finden, wie lange das mit dem Bild wirklich dauert.

Gruß Otto
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: Ellert am 13 Januar 2016, 18:40:31
Zitatdass ich nicht weiß wie lang er zum Erstellen braucht.

Die Zeit kannst Du messen.
Wenn es klingelt erstelle mit "touch start" eine Datei in Deinem Snapshotverzeichnis.
Dann mache ein "get Cam_Gang image".

Mit "stat start" und stat "Cam_Gang_snapshot.jpg" kannst Du Dir die genauen Zeitstempel ansehen und die Differenzzeit errechnen, dann hast Du die Antwort.
Wie lange dauert die Erstellung?
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 13 Januar 2016, 23:32:54
Zitat von: Ellert am 13 Januar 2016, 18:40:31
Die Zeit kannst Du messen.
Wenn es klingelt erstelle mit "touch start" eine Datei in Deinem Snapshotverzeichnis.
Dann mache ein "get Cam_Gang image".

Mit "stat start" und stat "Cam_Gang_snapshot.jpg" kannst Du Dir die genauen Zeitstempel ansehen und die Differenzzeit errechnen, dann hast Du die Antwort.
Wie lange dauert die Erstellung?

Kann ich das einfach im Klartext reinschreiben in fhem, also ein notify das "touch start" ausführt?
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 13 Januar 2016, 23:34:13
Zitat von: Otto123 am 13 Januar 2016, 17:52:27
http://fhem.de/commandref_DE.html#DOIF_wait
define Tipp DOIF ([Klingel_Oben] eq "on") (get Cam_Gang image) (set Telegram sendImage ".'@@user1 @user2'." /opt/fhem/www/snapshots/Cam_Gang_snapshot.jpg Es hat gerade oben geklingelt)
attr Tipp wait 0,10



Also damit führt er den 2. Befehl gar nicht erst aus....
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: Otto123 am 13 Januar 2016, 23:55:01
Ja hast Recht mein Fehler: Der Klingelknopf müsste 10 sec gedrückt bleiben damit das funktioniert  ???

Wenn Du ein Log 1, ("Es klingelt") in Dein notify schreiben. Dann hast Du den Datumsstempel im Logfile. Den Zeit Stempel des Bildes hast Du ja im Bild.

Gruß Otto
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: Ellert am 14 Januar 2016, 09:42:26
ZitatKann ich das einfach im Klartext reinschreiben in fhem, also ein notify das "touch start" ausführt?
Jain, touch sind Linuxbefehle, Du musst die Syntax beachten, wie hier beschrieben http://fhem.de/commandref_DE.html#command (http://fhem.de/commandref_DE.html#command), also die Befehle in Anführungszeichen setzen. "stat" zeigt den Zeitstempel µs genau, ein Logeintrag ist nur sekundengenau. "stat start" und "stat /opt/fhem/www/snapshots/Cam_Gang_snapshot.jpg" kannst Du auch im Webfrontend in der Eingabezeile ausführen und im Logfile nachsehen.

Das müsste auch in der Eingabezeile klappen: "touch start";;get Cam_Gang image
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: viegener am 14 Januar 2016, 22:02:28
Schau doch mal, ob die Lösung hier funktioniert, da Du die Anfrage ja mehrfach gestellt hast.

http://forum.fhem.de/index.php/topic,38328.msg391119.html#msg391119 (http://forum.fhem.de/index.php/topic,38328.msg391119.html#msg391119)
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 15 Januar 2016, 00:01:49
Zitat von: viegener am 14 Januar 2016, 22:02:28
Schau doch mal, ob die Lösung hier funktioniert, da Du die Anfrage ja mehrfach gestellt hast.

http://forum.fhem.de/index.php/topic,38328.msg391119.html#msg391119 (http://forum.fhem.de/index.php/topic,38328.msg391119.html#msg391119)

Hallo danke für den Tipp, es klappt zwar jetzt so wie es soll, jedoch muss man auf der Klingel gefühlt um einiges länger drauf bleiben, dass es überhaupt klingelt, kann es sein, dass er da einen Befehl wegschmeißt, weil er grad zwei notifies ausführen möchte??
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 15 Januar 2016, 00:11:21
Zitat von: Ellert am 14 Januar 2016, 09:42:26
Das müsste auch in der Eingabezeile klappen: "touch start";;get Cam_Gang image

Nö tuts nicht, ohne den Teil nach den ;; schreibt er "forbidden command" und mit schreibt er "Unknown command"... :o
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: viegener am 15 Januar 2016, 00:13:01
Zitat von: e3xtreme am 15 Januar 2016, 00:01:49
Hallo danke für den Tipp, es klappt zwar jetzt so wie es soll, jedoch muss man auf der Klingel gefühlt um einiges länger drauf bleiben, dass es überhaupt klingelt, kann es sein, dass er da einen Befehl wegschmeißt, weil er grad zwei notifies ausführen möchte??

Ich denke dazu müsstest Du Dir erstmal die Events im Eventmonitor anschauen. Wenn ich Deinen Notify richtig verstehe, wird der doch getriggert, wenn man den Knopf drückt. Wird das wiederholt gesendet oder nur einmalig?

Wenn das beim ersten Drücken und nur einmalig ausgelöst wird ist mir unklar, warum man da länger drücken muss bzw wie da mehrere notfies entstehen sollten. "Weggeworfen" werden Befehle nicht.

Johannes
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: Ellert am 15 Januar 2016, 09:48:24
ZitatNö tuts nicht, ohne den Teil nach den ;; schreibt er "forbidden command" und mit schreibt er "Unknown command"... :o
Welches Betriebssystem verwendest Du?
Titel: Antw:Klingel soll Nachricht mit Foto von Webcam per Telegram schicken
Beitrag von: e3xtreme am 15 Januar 2016, 14:42:09
Zitat von: viegener am 15 Januar 2016, 00:13:01

Wenn das beim ersten Drücken und nur einmalig ausgelöst wird ist mir unklar, warum man da länger drücken muss bzw wie da mehrere notfies entstehen sollten. "Weggeworfen" werden Befehle nicht.

Johannes

Hah...
Ich hab den Fehler gefunden, der ws. auch das lange Delay verursacht hat...
Das Logfile war bereits 78MB groß, weil sich ein andres Notify in Endlosschleife Ein-und ausgesachalten hat... das zu öffnen verursachte diese Verzögerung
Darum ws. auch das Problem von vorher, jetzt klappt es perfekt, vielen Dank nochmal...