Moin zusammen,
habe mal wieder ein Problem :)
Gerne hätte ich das Telegram mir photos beim Türklingeln schickt. Das geht auch automatisch mit dem letzten Bild.
Jetzt mächte ich die Bilder aber auch durch Telegram anfordern.
Da sich bei älteren Bildern die URLs stets ändern schreibt mir eine SUB den Zweig in ein Reading also z.b:
Telegram_4p
/opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
2018-03-28 19:10:59
Wenn ich jetzt ein
set TeleBot sendPhoto /opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
eingebe dann kommt das Photo auch. Ich brauche aber die Relative Verzweigung.
Also habe ich versucht:
set TeleBot sendPhoto [Kamerabildummy:Telegram_4p]
das ist gescheitert. Kein bild kommt.
Gebe ich den Befehl über die Kommandozeile ein erscheint:
FAILED file :/opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
: not found or empty
mache ich
set TeleBot sendPhoto /opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
kommt das Bild. ?!
Es ist aber der gleiche Zweig
----
Wenn ich versuche in der Telegram Subroutine den Link als Variable zu setzen:
my $Klingel3Bild = ReadingsVal("dummyKamerabild","Telegram_4p",0);
fhem("set teleBot sendImage $Klingel3Bild");
kommt ebenfalls kein Bild beim auslösen. Was mache ich falsch?
Zitat von: Andre0909 am 28 März 2018, 19:30:24
Moin zusammen,
habe mal wieder ein Problem :)
Gerne hätte ich das Telegram mir photos beim Türklingeln schickt. Das geht auch automatisch mit dem letzten Bild.
Jetzt mächte ich die Bilder aber auch durch Telegram anfordern.
Da sich bei älteren Bildern die URLs stets ändern schreibt mir eine SUB den Zweig in ein Reading also z.b:
Telegram_4p
/opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
2018-03-28 19:10:59
Wenn ich jetzt ein
set TeleBot sendPhoto /opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
eingebe dann kommt das Photo auch. Ich brauche aber die Relative Verzweigung.
Also habe ich versucht:
set TeleBot sendPhoto [Kamerabildummy:Telegram_4p]
das ist gescheitert. Kein bild kommt.
Gebe ich den Befehl über die Kommandozeile ein erscheint:
FAILED file :/opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
: not found or empty
mache ich
set TeleBot sendPhoto /opt/fhem/www/tablet/images/Kamera/Cam1_20180327_132936.jpg
kommt das Bild. ?!
Es ist aber der gleiche Zweig
----
Wenn ich versuche in der Telegram Subroutine den Link als Variable zu setzen:
my $Klingel3Bild = ReadingsVal("dummyKamerabild","Telegram_4p",0);
fhem("set teleBot sendImage $Klingel3Bild");
kommt ebenfalls kein Bild beim auslösen. Was mache ich falsch?
Hab's in Telegram Thread verschoben aber krieg Thread über Tapatalk leider nicht gelöscht
Gesendet von iPhone mit Tapatalk
Moin,
was mir auffaellt:
Einmal schreibst Du Kamerabildummy und einmal dummyKamerabild
Und TeleBot bzw. teleBot
Tippfehler sind immer moegliche Ursachen und erschwert darueber hinaus die Fehlersuche unnoetig.
Ansonsten wuerde ich mal einen Blick in den Logfile werfen. Da stehen bestimmt mehr Hinweise zu Deinem Problem.
Gruss
Michael
Du hast recht aber das ist leider nur ein Tippfehler. Entscheidend ist ja die Fehlermeldung , dass der link nicht gefunden wurde der aber als direkt Eingabe geht, daher frag ich mich in das Modul überhaupt Verzweigungen aus readings oder Variablen akzeptiert. Wobei rein logisch ja kein unterschiede sein sollte zwischen sendphoto /../../ oder sendphoto Variable mit der Variable /../../ ...
Ich guck morgen mal was ich noch im log bekomme
Gesendet von iPhone mit Tapatalk
Zitat von: miot am 29 März 2018, 07:56:21
Moin,
was mir auffaellt:
Einmal schreibst Du Kamerabildummy und einmal dummyKamerabild
Und TeleBot bzw. teleBot
Tippfehler sind immer moegliche Ursachen und erschwert darueber hinaus die Fehlersuche unnoetig.
Ansonsten wuerde ich mal einen Blick in den Logfile werfen. Da stehen bestimmt mehr Hinweise zu Deinem Problem.
Gruss
Michael
So also ich kapier es immer noch nicht. Folgendes geht:
set teleBot sendPhoto /opt/fhem/www/tablet/images/Kamera/Cam1_20180327_203314.jpg
Der Link
/opt/fhem/www/tablet/images/Kamera/Cam1_20180327_203314.jpg
aus dem Device "dummyKamerabild" und dem Reading "Telegram_1p"
wird über eine SUB in eine Variable geschrieben:
my $Klingel1Bild = ReadingsVal("dummyKamerabild","Telegram_1p",0);
ausgeführt wird die TelegramSUB über folgende Befehle
fhem("set teleBot send 🏠 $Klingel1");
fhem("set teleBot sendPhoto $Klingel1Bild");
Der erste Teil, Datum und Uhrzeit kommt an aber der 2. nicht.
Hallo.
Hast Du wie empfohlen einen Blick in den Logfile geworfen?
Hast Du den Inhalt Deiner Variable unmittelbar vor dem Versenden geprueft?
Ein wenig mehr Engagement muesstest Du schon an den Tag legen um den Fehler in den 3 Zeilen Code zu finden... Ich hab's bei mir nachvollzogen und es funktioniert ohne Probleme - also empfehle ich Dir Schritt fuer Schritt alles durchzugehen und der Fehler wird sich finden.
Frohe Osterfeiertage
Michael
Zitat von: miot am 30 März 2018, 08:49:44
Hallo.
Hast Du wie empfohlen einen Blick in den Logfile geworfen?
Hast Du den Inhalt Deiner Variable unmittelbar vor dem Versenden geprueft?
Ein wenig mehr Engagement muesstest Du schon an den Tag legen um den Fehler in den 3 Zeilen Code zu finden... Ich hab's bei mir nachvollzogen und es funktioniert ohne Probleme - also empfehle ich Dir Schritt fuer Schritt alles durchzugehen und der Fehler wird sich finden.
Frohe Osterfeiertage
Michael
ich hatte im Logfile keine entsprechende Fehlermeldung gefunden. Da ich aber natürlich genug Engagement in der Fehlersuche habe, habe ich durch viel Forensuche mittlerweile die Lösung gefunden. Problem war die eigentliche SUB, welche die Bilder speichert. Ich mach es mal ausführlicher jetzt, falls noch jemand das Problem hat.
sub last_pic($)
{
my ($p) = @_;
my $ss = "".$p."p";
my $file = qx(ls -lt --time-style='+%Y-%m-%d %H:%M:%S' www/tablet/images/Kamera/*.jpg | sed -n $ss | awk '{print \$8}');
$file =~ s/\s//mg;
my $file2 = ".././$file";
my $file3 = "/opt/fhem/$file";
fhem( "setreading dummyKamerabild reading_$ss $file2" );
fhem( "setreading dummyKamerabild Telegram_$ss $file3" );
return $file2;
}
Diese speichert Links meiner Kamerabilder im entsprechenden Reading meines Dummies.
Für Telegram setze ich daher entsprechend das file3 um.
Problem war, das wohl der Link auch Zeilenenden mitspeichert, die bei der Übergabe der Variable von Telegram dann nicht mehr als Link anerkannt werden. Daher musste
$file =~ s/\s//mg;
eingefügt werden. Der Link wird nun korrekt erkannt.
Durch den Trigger "Klingel" krege ich also die letzen 3 x Türklingelinfos samt Screen:
if(@array[0] eq "Klingel")
{
my $Klingel1 = ReadingsVal("FritzBoxCallList2","1-timestamp",0);
my $Klingel2 = ReadingsVal("FritzBoxCallList2","2-timestamp",0);
my $Klingel3 = ReadingsVal("FritzBoxCallList2","3-timestamp",0);
my $Klingel1Bild = ReadingsVal("dummyKamerabild","Telegram_1p",0);
my $Klingel2Bild = ReadingsVal("dummyKamerabild","Telegram_4p",0);
my $Klingel3Bild = ReadingsVal("dummyKamerabild","Telegram_6p",0);
fhem("set teleBot send 🏠 $Klingel1");
fhem("set teleBot sendPhoto $Klingel1Bild");
fhem("set teleBot send 🏠 $Klingel2");
fhem("set teleBot sendPhoto $Klingel2Bild");
fhem("set teleBot send 🏠 $Klingel3");
fhem("set teleBot sendPhoto $Klingel3Bild");
}