[gelöst] TelegramBot - Probleme beim Senden an nur einen Empfänger

Begonnen von davedeluxe, 25 Juli 2017, 20:38:36

Vorheriges Thema - Nächstes Thema

davedeluxe

Hi,

ich habe folgendes notify erstellt:
Cam:LastSnapFilename:.* {
my $r1 = Value("Cam:LastSnapFilename");;
my $r2 = Value("Cam.Bewegung.Dummy");;
if ($r1 = ".*" && $r2 eq "on") {
fhem ("set telegrambot sendImage @12345678 /media/Snapshots/[Cam:LastSnapFilename]");} }


Leider ignoriert er die Empfänger ID und sendet stattdessen an den eingetragenen defaultPeer.
Kann mir jemand sagen wie ich das notify richtig erstelle?

Danke, Dave

amenomade

PeerID prüfen.
Es muss die Id sein, und nicht der Username.
Evtl manuell den Befehl im Fhemweb prüfen
set telegrambot sendImage @12345678 /media/Snapshots/dummyDatei

Ansonsten, verbose 5 auf TelegramBot setzten, und Log schauen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

davedeluxe

Danke aber das ist nicht das Problem.
Der Befehl funktioniert im Fhemweb, ich nutze ihn so ähnlich auch anderweitig.
Ich vermute das Problem liegt an dem @ innerhalb eines "Script´s" Spich innerhalb von {(" ");}

rabehd

sub NachrichtVersenden($$)
{
my ($Wer, $Was) = @_;
my $text = "set Nachrichten message @" . $Wer . " " . $Was;
Log 3, "Telegram an: " . $Wer . " Text: " . $Was;
fhem($text);


so funktioniert es bei mir
Auch funktionierende Lösungen kann man hinterfragen.

dev0


RaspiLED

#5
Hi, hast Du mal versucht das @ zu escapen? Also \@ zu nehmen. Alternativ: Ich meine ich hätte auch mal was ,mittels Variable in diesem Kontext gelesen...

Edit: Schaust Du hier für Lösungen ;-)
https://forum.fhem.de/index.php?topic=56628.msg481451#msg481451

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

davedeluxe

So hab ich´s zum laufen bekommen:

Cam:LastSnapFilename:.* {
my $r1 = Value("Cam:LastSnapFilename");;
my $r2 = Value("Cam.Bewegung.Dummy");;
if ($r1 = ".*" && $r2 eq "on") {
fhem ('set telegrambot sendImage @12345678 /media/Snapshots/[Cam:LastSnapFilename]');} }


Also einfach die " durch ' ersetzt.
Danke für die Hilfe!