Kamerabild per Telegram verschicken

Begonnen von Roger54, 28 Januar 2017, 11:16:11

Vorheriges Thema - Nächstes Thema

Roger54

Hallo FHEM-Gemeinde,

bin schon seit langer Zeit ein stiller Mitleser doch nun komm ich nicht weiter und brauch eure Hilfe da ich keine Lösung gefunden habe...

Bei Betätigung meiner Haustürklingel speichere ich ein Bild meiner IPCAM in /opt/fhem/www/snapshots/$DATETIME.jpg (DATETIME=`date +%Y%m%d%H%M%S), was auch soweit funktioniert. Mein Problem besteht jetzt nun darin, dass ich nicht weis wie ich das letzte Bild per Telegram verschicken kann. Meine Versuche haben leider nicht so funktioniert...

Hab mir aus einem vorhandenen Code eine Funktion gebastelt, doch leider bekomm ich leider die Fehlermeldung:
FAILED file :/opt/fhem/www/snapshots/20170128011242.jpg
: not found or empty


sub last_pix()
{
my $img = qx(ls -1t www/snapshots/* | sed -n '1p');

fhem( "set telegram sendImage /opt/fhem/$img" );
}
1;


Wenn ich aber den Befehl direkt in FHEM eingebe set telegram sendImage /opt/fhem/www/snapshots/20170128011242.jpg wird das Bild verschickt...
Bin etwas ratlos und hoffe ihr könnt mir weiterhelfen. Bin leider ein totaler Perlnoob... :D

Gruß Roger

Grafkox

Hallo Roger,

ich habe es mit einer Ordnerüberwachung gemäß der Anleitung von Matthias umgesetzt:
FHEM-Tutorial Part 11: Benachrichtigung mit Bild bei Bewegung - IP-Kamera | haus-automatisierung.com

Ist zwar etwas aufwendig, aber funktioniert bei mir tadellos.

Viele Grüße

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

viegener

Zitat von: Roger54 am 28 Januar 2017, 11:16:11
Hallo FHEM-Gemeinde,

bin schon seit langer Zeit ein stiller Mitleser doch nun komm ich nicht weiter und brauch eure Hilfe da ich keine Lösung gefunden habe...

Bei Betätigung meiner Haustürklingel speichere ich ein Bild meiner IPCAM in /opt/fhem/www/snapshots/$DATETIME.jpg (DATETIME=`date +%Y%m%d%H%M%S), was auch soweit funktioniert. Mein Problem besteht jetzt nun darin, dass ich nicht weis wie ich das letzte Bild per Telegram verschicken kann. Meine Versuche haben leider nicht so funktioniert...

Hab mir aus einem vorhandenen Code eine Funktion gebastelt, doch leider bekomm ich leider die Fehlermeldung:
FAILED file :/opt/fhem/www/snapshots/20170128011242.jpg
: not found or empty


sub last_pix()
{
my $img = qx(ls -1t www/snapshots/* | sed -n '1p');

fhem( "set telegram sendImage /opt/fhem/$img" );
}
1;


Wenn ich aber den Befehl direkt in FHEM eingebe set telegram sendImage /opt/fhem/www/snapshots/20170128011242.jpg wird das Bild verschickt...
Bin etwas ratlos und hoffe ihr könnt mir weiterhelfen. Bin leider ein totaler Perlnoob... :D

Gruß Roger

Des Rätsels Lösung, dein Dateiname ($img) enthält nicht nur einen Dateinamen sondern auch ein Zeilenende und ein Zeilenende ist im Dateinamen nicht enthalten

sub last_pix()
{
my $img = qx(ls -1t www/snapshots/* | sed -n '1p');

$img =~ s/\s//mg;

fhem( "set telegram sendImage /opt/fhem/$img" );
}
1;


So könnte man unerwünschte Zeilenende entfernen (aber auch andere Leerzeichen auch innerhalb des Dateinamens !)

Auch wenn ich das vielleicht insgesamt anders lösen würde
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Roger54

Zitat von: viegener am 28 Januar 2017, 22:40:19
Des Rätsels Lösung, dein Dateiname ($img) enthält nicht nur einen Dateinamen sondern auch ein Zeilenende und ein Zeilenende ist im Dateinamen nicht enthalten

sub last_pix()
{
my $img = qx(ls -1t www/snapshots/* | sed -n '1p');

$img =~ s/\s//mg;

fhem( "set telegram sendImage /opt/fhem/$img" );
}
1;


So könnte man unerwünschte Zeilenende entfernen (aber auch andere Leerzeichen auch innerhalb des Dateinamens !)

Auch wenn ich das vielleicht insgesamt anders lösen würde

Hi viegener,

vielen Dank für deine Hilfe! Es funktioniert nun!

Rein Interessehalber, wie würdest du es anders lösen? Habe eben das Problem, dass meine IPCam vom IPCAM-Modul nicht unterstützt wird...


Gruß Roger

Fixel2012

Habe leider auch das Problem, dass ich meine Cam nicht ins IPCAM Modul eingebunden bekomme.

Wie holst dir denn die Bider von der Cam?

Sorry, dass ich mich hier so einklinke  ::)

Gruß Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Roger54

Zitat von: Fixel2012 am 30 Januar 2017, 12:36:03
Habe leider auch das Problem, dass ich meine Cam nicht ins IPCAM Modul eingebunden bekomme.

Wie holst dir denn die Bider von der Cam?

Sorry, dass ich mich hier so einklinke  ::)

Gruß Fixel

Hi Fixel,

kein Thema dafür ist doch das Forum da ;)
Da meine IPCam leider keine screenshoturl besitzt bzw ich keine gefunden hab erzeuge ich mit ffmpeg auf dem Raspberry einen snapshot aus dem rtsp stream der Cam.

Dafür musst du folgendes Skript als snapshot.sh in den Ordner /opt/fhem anlegen. Natürlich die IP und den Aufruf für den Stream von deiner Cam einsetzen.
#!/bin/sh
export
DATETIME=`date +%Y%m%d%H%M%S`
ffmpeg -loglevel fatal -i rtsp://192.168.2.XXX:XXX/user=XXXX_password=XXXX_channel=1_stream=1.sdp?real_stream -vframes 1 -r 1 /opt/fhem/www/snapshots/$DATETIME.jpg


in FHEM kannst du dann mit {system("sh /opt/fhem/snapshot.sh")} das Skript ausführen


Gruß Roger

Fixel2012

Zitat von: Roger54 am 30 Januar 2017, 16:13:20
Hi Fixel,

kein Thema dafür ist doch das Forum da ;)
Da meine IPCam leider keine screenshoturl besitzt bzw ich keine gefunden hab erzeuge ich mit ffmpeg auf dem Raspberry einen snapshot aus dem rtsp stream der Cam.

Dafür musst du folgendes Skript als snapshot.sh in den Ordner /opt/fhem anlegen. Natürlich die IP und den Aufruf für den Stream von deiner Cam einsetzen.
#!/bin/sh
export
DATETIME=`date +%Y%m%d%H%M%S`
ffmpeg -loglevel fatal -i rtsp://192.168.2.XXX:XXX/user=XXXX_password=XXXX_channel=1_stream=1.sdp?real_stream -vframes 1 -r 1 /opt/fhem/www/snapshots/$DATETIME.jpg


in FHEM kannst du dann mit {system("sh /opt/fhem/snapshot.sh")} das Skript ausführen


Gruß Roger
Danke dir!
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

2P4u

Hi Zusammen.
ich habe ne Frage an euch.
Mit http://192.168.188.53/tmpfs/snap.jpg?usr=Gast&pwd=**** bekomme ich ein Snapshot angezeigt.
Kann mir jemand sagen, wie ich ohne IPCAM (wird irgendwie nicht Unterstützt) ein aktuelles Bild in /opt/fhem/www/snapshots/ speichern kann?
Ich will das Bild per Telegram schicken, wenn jemand die Klingel drückt.

Danke und Grüsse Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Amenophis86

Das wirst du mittels deiner Kamera lösen müssen. Es kommt drauf an, wo die das Bild speichert. Entweder direkt dort einstellen, dass es in deinem Ordner gespeichert wird, oder mittels eines Programms das Bild in deinen Ordner verschieben. Dafür liegen aber zu wenige Infos von dir vor.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

steffen83

Hallo,

ich habe das wie folgt gelöst:
fhem ("set TelegramBot _msg Es hat geklingelt! Anbei ein Foto.");;
system('wget "http://xxx:yyy@192.168.160.30/bha-api/history.cgi?event=doorbell&index=1" -O /tmp/doorbirdbell.jpg');;
fhem ("set TelegramBot sendPhoto /tmp/doorbirdbell.jpg");;
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

2P4u

Zitat von: steffen83 am 01 Juni 2017, 07:22:23
Hallo,

ich habe das wie folgt gelöst:
fhem ("set TelegramBot _msg Es hat geklingelt! Anbei ein Foto.");;
system('wget "http://xxx:yyy@192.168.160.30/bha-api/history.cgi?event=doorbell&index=1" -O /tmp/doorbirdbell.jpg');;
fhem ("set TelegramBot sendPhoto /tmp/doorbirdbell.jpg");;


DANKE! Genau so hats geklappt. Sowas wollte ich haben. Perfekt!
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

KernSani

@Roger54: Könntest du noch [Gelöst] vor das Subject des ersten Posts schreiben?
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...