Mit Telegrambot an bestimmten User senden?

Begonnen von Bytechanger, 13 August 2016, 18:22:40

Vorheriges Thema - Nächstes Thema

Bytechanger

Hi,

habe seit einiger Zeit TelegramBot als Notalternative zu WhatsApp installiert. Wenn WhatsApp mal wieder ausfällt (wie jetzt) geht alles über Telegrambot.

Nun wollte ich einem bestimmten (bekannten) benutzer eine Nachricht senden.
Irgendwie kommt die aber immer nur bei der standard ID an??
Was mache ich falsch?

Sende mit
{ fhem "set Telegram message @123456 teest";; }

Die ID ist bekannt und auch in der Liste des zuletzt empfangenen Nachricht (msgPeerId).
Trotzdem kommt es immer bei der defaultPeer an?!

Greets

Byte

JoWiemann

Hallo,

das Problem ist das @. So sollte es funktionieren:

{ fhem "set Telegram message " . '@123456' . " teest";; }

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

DeeSPe

Zitat von: JoWiemann am 13 August 2016, 19:26:57
Hallo,

das Problem ist das @. So sollte es funktionieren:

{ fhem "set Telegram message " . '@123456' . " teest";; }

Grüße Jörg

Geht auch so:
{ my $id = 123456789;; fhem("set Telegram message @".$id." teest");; }
Die Variable $id kann natürlich auch anders befüllt werden. Ich benutze dabei z.B. ein userattr TelegramID welches ich jedem Bewohner hinzugefügt habe.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Jack-Luck

Hi,

stehe jetzt auch vor dem Problem das ich eine Nachricht nur an einem Empfänger Senden möchte, was allerdings nicht geht.


3DDrucker:progress_completion_percent:.* {
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 5 == 0) {
            fhem("get 3DDruckerKamera image");
            fhem("sleep 2; set telebot sendImage @123456789 ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");
        }
    }
}


gebe ich jedoch das direkt bei Fhem ein, dann klappt das.
set telebot sendImage @123456789 ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %

Danke für eure Unterstützung

t1me2die

Probiere es mal wie folgt:


3DDrucker:progress_completion_percent:.* {
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 5 == 0) {
            fhem("get 3DDruckerKamera image");
            fhem("sleep 2; set telebot sendImage \@123456789 ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");
        }
    }
}


Gruß Mathze

DeeSPe

Innerhalb von Perl muss das @ escaped werden.
Also:
fhem("sleep 2; set telebot sendImage \@123456789 ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");

Gruß
Dan

EDIT: Huch, da war jemand schneller und ich habe es beim Absenden nicht bemerkt!
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe