FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mickey am 28 September 2016, 11:15:48

Titel: Mit Telegram Bilder senden
Beitrag von: Mickey am 28 September 2016, 11:15:48
Hallo Fhem liebe Gemeinde,

ich komme hier nicht weiter. Ich wollte mir das neuste Bild per Telegram senden lassen was per FTP auf dem PI gelegt wurde.

Das eine Datei abgelegt wurde, sendet mir Telegram zuverlässig.

set Telegram mgs Hier kommt ein Text  $EVENT

Wie kann ich jetzt das Bild mitsenden, oder nur senden?
Mit: set Telegram sendPhoto var/www/upload/camera/$EVTPART1 geht es nicht.

Die Bilder liegen auf dem PI unter var/www/upload/camera

Danke für eure Hilfe

Titel: Antw:Mit Telegram Bilder senden
Beitrag von: marvin78 am 28 September 2016, 11:21:23
Zu wenig Infos, unvollständiger Text.

Ich gehe aber davon aus, dass deine Bilder unter

/var/www/upload/cameraliegen.
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Mickey am 28 September 2016, 11:54:47
Hallo,

ja, dass stimmt genau  :D

Grüße
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Mickey am 28 September 2016, 12:03:09
 :o :o :o

Danke, ich fasse es ja nicht - da fehlte nur ein /

Jetzt sendet er die Bilder, aber nur den "oberen" Teil des Bildes.
Das Ganze Bild wird nicht übertragen.

Gibt es da eine Lösung?

Danke euch, echt vielen Dank
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Mickey am 28 September 2016, 12:13:28
Das wird gesendet
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: viegener am 26 Oktober 2016, 12:43:01
Vermutlich sendest Du das Bild bereits bevor es vollständig gespeichert ist?

Einfachste Lösung ist da noch ein fhem-Kommando sleep einzubauen, wenn die Übertragung nach einer festen Zeit sicher erfolgt ist.
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: benz_freak am 26 Oktober 2016, 16:40:44
du könntest auch mit "fuser" gucken ob sich die Datei noch im zugriff befindet und erst danach dein set ausführen
http://openbook.rheinwerk-verlag.de/unix_guru/node178.html (http://openbook.rheinwerk-verlag.de/unix_guru/node178.html)
MFG Benjamin
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: kalle86 am 31 Januar 2017, 16:00:27
Hallo,

Ich möchte ebenfalls das neuste Bild was von meiner Kamera gemacht wurde und auf dem FTP-Server abgelegt wurde mir per Telegram zuschicken lassen.

1.)
Wie kann ich ein Event erzeugen das ausgelöst wird wenn eine neue datei im ordner gespeichert wird.

2.)
Da ein neues Bild ja immer einen neuen Dateinamen aufweist müsste ich evtl. ein Reading erzeugen, das den Dateinamen der zuletzt gespeicherten Datei anzeigt, um beim senden Befehl dann auf das Reading (Dateiname) zuzugreifen. Wie hast du das am geschicktesten angestellt?

LG
Kalle
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: kalle86 am 02 Februar 2017, 17:33:12
Ich habe es hinbekommen so wie ich es mir vorgestellt habe...!  ;D

In diesem Forumbeitrag habe ich die Lösung gefunden:
https://forum.fhem.de/index.php/topic,65875.0.html (https://forum.fhem.de/index.php/topic,65875.0.html)

dort befindet sich eine Youtube Anleitung für eine Ordnerüberwachung von Matthias

LG
Kalle
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Sven am 28 März 2017, 14:19:00
Ich wollte nochmal das Thema aufgreifen....

Das Versenden über Telegram funzt bei mir soweit alles. Aber wie sieht das Versenden eines Bilds aus, welches von einem http-Zugriff stammt? Ich habe eine Cam, mit der ich per http-Zugriff das aktuelle Bild abgreifen kann. So ist der Aufruf: http://username:password@<servername>:<HTTP-Port>/Streaming/channels/1/picture

Ich würde gerne, ohne das Bild irgendwo auf dem Pi ablegen zu müssen, versenden. Geht das mit Telegram auch? Bisher habe ich nur die "sendImage"-Funktion mit Zugriff auf lokale Pfade gesehen. Finden konnte ich noch keine Beispiele die es mit hhtp zeigen....

Hat jemand eine Idee oder gar Lösung?

LG
Sven
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Prof. Dr. Peter Henning am 28 März 2017, 15:11:20
Das geht, wenn das Bild von außerhalb der Firewall erreichbar ist.

LG

pah
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Sven am 28 März 2017, 15:19:07
...ausserhalb ist relativ....  ;)

Ich habe an meinem Router 5 Ports, von denen ich jeden als separates Netz definieren kann. Mein Heimnetz indem auch FHEM ist, liegt im Bereich 192.168.1.0. Meine Videoüberwachung liegt im Netz 192.168.0.0. Auf dem Router sind entsprechend Firewall-Regeln definiert. Netz 0 darf nach Netz 1 nix. Netz 1 darf mit dem typischen Ports für Video-Cams (80,443,554 und 8000) auf Netz 0 zugreifen.
Aufruf vom PC per http auf CAM zeigt mir auch das Bild.

Wie wäre dann der Aufruf im Fhem? Aufruf "set Telegram message @emfänger ACHTUNG!\nEs wurde eine Bewegung\nauf der Terasse registriert!!" klappt ja bereits. Wie baue ich dann den hhtp-Link mit rein?

LG
Sven
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Sven am 28 März 2017, 15:21:05
Nachtrag: Wichtig ist ja doch, dass FHEM das Bild erreichen kann, damit es dann verschickt werden kann... oder sehe ich das falsch?

LG
Sven
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Prof. Dr. Peter Henning am 28 März 2017, 17:00:34
Zitatoder sehe ich das falsch?
Ja, und darum ist der Spruch
Zitat...ausserhalb ist relativ....
sinnlos.

Was heißt "FHEM muss finden" ? Das Modul holt keine Bilder aus dem Web, sondern nur aus dem Filesystem. Will man also ein Bild versenden, das NICHT im lokalen Verzeichnisbaum zu finden ist, geht das zwar mit dem Telegram-Api auch. Das Api bekommt dann aber nur die URL geliefert, und holt sich das Bild nachträglich von der angegebenen Adresse. Und zwar auch diurch eine Firewall hindurch. Auf diese Weise sendet mir meine Türstation die Fotos des Kilngelnden.

LG

pah
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Sven am 28 März 2017, 17:23:39
Danke pah...

langsam verstehe ich wie du das gemeint hast....
Das bedeutet ich sende mir also dann den Link meiner Cam und muss nur dafür sorge tragen, dass dieser dann von extern erreichbar ist? Telegram holt sich darauf hin das Bild.

Mit welchem Befehl arbeitest Du dann mit Deiner Türstation? mit message oder sendImage?

LG
Sven
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Sven am 28 März 2017, 17:41:54
Zitat von: Prof. Dr. Peter Henning am 28 März 2017, 17:00:34

Auf diese Weise sendet mir meine Türstation die Fotos des Kilngelnden.

LG

pah

Genau nach diesem Prinzip habe ich es mit nem Bewegungsmelder vor. Auf der Terrasse reagiert mein Bewegungsmelder zuverlässig und sendet mir ne Nachricht per Telegram bei Bewegung. Nur soll jetzt noch das Bild dabei sein. Kannst Du mir da mal deinen Code-Schnipsel für den Sende-Befehl verraten? *liebfrag* Ich test gerde sämtliche Kombinationen. Es kommt immer nur der Text, aber nie das Bild. Klicke ich dann auf dem Link am Handy, dann kommt das Bild. Nur sollte es ja direkt kommen. Derzeit teste ich intern. Muss da der Telegram-Dienst (also von extern) auch schon drauf zugreifen können?

Alternativ habe ich mir auch testweise ein Bild auf einen externen Webserver gelegt. Aber auch hier will der Zugriff irgendwie nicht...  :-[

LG
Sven
Titel: Antw:Mit Telegram Bilder senden
Beitrag von: Prof. Dr. Peter Henning am 28 März 2017, 19:17:52
ZitatKannst Du mir da mal deinen Code-Schnipsel für den Sende-Befehl verraten?

Das nutzt nichts. Denn erstens ist der ursprüngliche Speicherort durch einen Webserver erreichbar (den von DoorPi),
#!/bin/bash
last=`ls -tr /home/doorpi/records/*.jpg | tail -1`
Token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ChatId=-44444444444 ##HenningPrivate
echo "Sending photo $last" > /home/doorpi/sendphoto.log
curl -s -k "https://api.telegram.org/bot${Token}/sendPhoto" -d photo="http://<url>/doorpi/$last" -d chat_id=$ChatId >> /home/doorpi/sendphoto.log
exit 0

und zweitens ist das von außen noch durch einen apache Reverse Proxy geschützt, dieser macht einen Rewrite der URL, so dass diese auf den DoorPi-Webserver zeigt.
<Location /doorpi>
  ProxyPass http://192.168.0.xxx:80/
  ProxyPassReverse http://192.168.0.xxx:80/
  ProxyHTMLURLMap /        /doorpi/
  ProxyHTMLURLMap /doorpi/   /doorpi/

  RewriteEngine On
  RewriteRule ^(.*)/(.+)\.jpg$ http://192.168.0.xxx:80/$2.jpg [QSA,P,L]
 
  Order deny,allow
  Allow from all
</Location>



LG

pah