Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

Begonnen von viegener, 20 Juni 2015, 18:59:41

Vorheriges Thema - Nächstes Thema

igami

Zitat von: forum-merlin am 29 März 2016, 16:35:18
FRAGE:
Wie bekomme ich es hin, dass ich auch an einzelne UserIDs etwas schicken kann?
Wenn du das über Perl machst musst du das @ mittel \ escapen.

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

forum-merlin

Danke!
funktioniert.  ;D

Einfach nicht dran gedacht das mal auszuprobieren
FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

resben

Zitat von: viegener am 29 März 2016, 00:34:47
Ja, das ist einfach: Statt des einfachen Semikolons muss beim Setzen des Attributes jeweils ein doppeltes Semikolon als Trenner angegeben werden. Das einfache Semikolon wird in fhem als Trennung zwischen Kommandos angesehen, so dass im Attribut nur der erste Teil ankommt. das set ... off wird dann als Befehl ausgeführt...

Das ging, vielen Dank für die Hilfe und die Erklärung :D

sinus61

Zitat von: Panik am 22 Januar 2016, 18:24:06
Hat es schon mal jemand geschafft, mit Tasker + Telegram einen Befehl an FHEM zu senden?

Das sollte eigentlich mit der App Touchless Chat gehen, die auch als Plugin für Tasker arbeitet. Hab es aber gerade mal probiert und nicht zum laufen bekommen.

http://forum.joaoapps.com/index.php?resources/send-message-when-you-arrive-at-work.71/

fstefan1960

Hallo,

von dem Modul bin ich ganz begeistert, nachdem ich mit yowsup immer wieder Probleme hatte. Wenns lief, wurde was geändert und wieder kam nichts mehr an.

Ich hab eine Frage, die vermutlich allen Cracks hier als banal vorkommt. Hab versucht, sie durch Lesen zu lösen, aber hab im ganzen Fred nicht die Antwort gefunden:

Ich habe eine Variable "MyIP", die ich gerne zusenden will. Wie muss ich den Befehl aufbauen?
set Telegrambot msg Die neue Ip ist $MyIP

wird genau so gesendet, aber eben nicht durch die IP ersetzt.



FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

viegener

Zitat von: fstefan1960 am 03 April 2016, 13:06:43
Hallo,

von dem Modul bin ich ganz begeistert, nachdem ich mit yowsup immer wieder Probleme hatte. Wenns lief, wurde was geändert und wieder kam nichts mehr an.

Ich hab eine Frage, die vermutlich allen Cracks hier als banal vorkommt. Hab versucht, sie durch Lesen zu lösen, aber hab im ganzen Fred nicht die Antwort gefunden:

Ich habe eine Variable "MyIP", die ich gerne zusenden will. Wie muss ich den Befehl aufbauen?
set Telegrambot msg Die neue Ip ist $MyIP

wird genau so gesendet, aber eben nicht durch die IP ersetzt.

Das ist an sich kein Problem, aber was ist eine Variable in diesem Umfeld?
Ist es eine Perlvariable, die in einem Deiner Module/MyUtils definiert wurde? --> Dann musst Du am besten in dem Modul auf der Perl ebene einen befehl zusammenbauen, der das versendet also in Perl:
fhem("set Telegrambot msg Die neue Ip ist $MyIP") Dann wird die Variable auch ersetzt.

Besser wäre aber Deine Variable zum Beispiel als State eines Dummys zu speichern, dann kannst Du üebr notify auch bei einer Änderung das Versenden automatisch auslösen (das wäre dann auch eher FHEM-"typisch").


define newIP_dummy dummy

set newIP_dummy IP 100.100.100.100

define newIP_notify notify  newIP_dummy:IP.* set Telegrambot msg New IP set: $EVTPART1


Natürlich muss dann nach feststellen der neuen IP auch der richtige set ausgeführt werden.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fstefan1960

Super,

vielen Dank. Meine große Hoffnung ist nun, dass die zugrunde liegende Technik nicht so oft geändert wird wie bei Whatsapp/yowsup. Da hatte man ja das Gefühl, dann man jeden Monat yowsup neu installieren musste.

Was bisher bei mir mit Telegram sofort läuft, ist einfach grandios. Auch, dass bei Anforderung das Menu der möglichen Kurzbefehle kommt und man dann einfach antippen kann, hat einen grandiosen WAF. Wow!

Kann man die Anmeldung weiterer User am Bot verhindern? Ansonsten muss ja nur jemand mein "doit" erraten und fährt mir die Rolläden rauf und runter :).

FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

speex

Zitat von: fstefan1960 am 03 April 2016, 16:09:54
Kann man die Anmeldung weiterer User am Bot verhindern? Ansonsten muss ja nur jemand mein "doit" erraten und fährt mir die Rolläden rauf und runter :).

Dazu einfach wenn du in Fhem im Telegrambot bist einfach unten auf Device Specific help klicken oder im commandref da wird meistens beschrieben was geht.
http://fhem.de/commandref.html#TelegramBot
In deinem Fall musst du das cmdRestrictedPeer <peername(s)> Attribut setzen.

viegener

Zitat von: speex am 03 April 2016, 18:09:57
Dazu einfach wenn du in Fhem im Telegrambot bist einfach unten auf Device Specific help klicken oder im commandref da wird meistens beschrieben was geht.
http://fhem.de/commandref.html#TelegramBot
In deinem Fall musst du das cmdRestrictedPeer <peername(s)> Attribut setzen.

Absolut richtig!
Als Ergänzung noch zwei Anmerkungen: Zur Sicherheit sollten bei cmdRestrictedPeer user ids (also die Zahlen zu den Kontakten) verwendet werden, da diese die grösste Sicherheit aufweisen, da von telegram vergeben und nicht vom Benutzer.

Ausserdem gibt es noch das Attribute:

allowUnknownContacts

Mit dem man auch neue Kontakte komplett ablehnen kann.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fstefan1960

Hallo,

je besser etwas läuft, um so mehr Wünsche weckt das ja auch.

1. Gibt es eine Methode, wie ich das Bild des Bots ändern kann?
Wenn ich mit dem BotFather chatte, zeigt er mir als mögliches Kommando an /setUserPic. Wenn ich das nutze, fordert er mich auf: Choose a bot to change profile photo.
Wenn ich dann den Namen meines Bots eingebe, kommt nur: Invalid bot selected.

2. Wenn ich den Befehl /short schicke, kommt eine Reihe Buttons zurück mit den möglichen Befehlen, die ich hinterlegt habe. Die sind allerdings typisch FHEM-Syntax-beschriftet. Kann man die mit einem Label versehen: "WoZi-Licht an" statt "set WoZiLampe_3 toggle"?

Vielen Dank

sagt Frank
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

viegener

Beides ist kein Problem (über den Botfather)

ad 1) setuserpic ist der richtige Weg. Zur Auswahl des Bots schickt der botfather ein custom keyboard mit der Auswahl des Bots wenn man nicht den Namen eintippt sondern diese Keyboard zur Auswahl benutzt geht es problemlos. Man schickt dann einfach ein Bild an den Botfather

ad 2) Bei der Definition der Favorites im botfather kann man auch angeben

short1 - Ein ganz toller Befehle
short2 - Und dieser ist noch besser
short3 - Nicht so gut


Dann schickt der bot bei Eingabe von / bereits diese Liste mit den sprechenden Beschreibungen
Ich wollte das im Bot nicht nochmal doppeln.

Ausserdem gibt es jetzt ja die Möglichkeit in den Favoriten auch sprechende Namen für die Favoriten zu hinterlegen:

/lichtan=set lights on

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Reinerlein

Hallo,

da muss ich doch mal nachfragen :)

Ich habe auch ein paar Favoriten in Fhem angelegt. Ich habe dafür die Schreibweise z.B.

/temperature = { sendPlot('weblink_aussen_Temperatur') }
und natürlich weitere mit Semikolon getrennt.

Wenn ich nun im Telegram-Client "/help" aufrufe, erhalte ich die Liste meiner Favoriten. Allerdings steht vor jedem Favoriten ein neuer Favoriten-Shortcut "/help1" durchnummeriert (in meinem Fall bis "/help11") - siehe Anhang...

Was kann ich denn da noch anpassen. So sieht es nicht sehr hübsch aus. Am Besten wäre es ja auch, wenn er den wahren Befehl gar nicht anzeigt, sondern nur den vergebenen "schönen" Aliasnamen... aber das wird wohl nicht gehen...

Danke schon mal...

Grüße
Reiner

viegener

Ich bin ja schon überzeugt  ;)   --> Also muss ich nochmal ran.

Idee wäre also für jeden Favoriten auch einen Text angeben zu können, der statt des eigentlichen Befehls angezeigt wird...
Da muss ich mir erstmal eine sinnvolle Syntax überlegen, damit das nicht zu fehleranfällig wird.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Reinerlein

Hallo,

zu Beginn kann man es auch erstmal einfach gestalten: wie wäre es mit einem Zusätzlichen Steuerattribut?
Eigentlich ist deine Syntax dafür doch schon ausreichend.

Nennen wir das Attribut mal kurz "sendShortFavorites". Wenn es z.B. "true" oder "1" ist, dann werden im Keyboard nur die Befehle der Favoriten ausgegeben (also das Ding mit dem Slash bis zum =-Zeichen).
z.B. "/temperature"
Die folgende Auswertung, wenn das als Benutzerauswahl beim Bot wieder ankommt, funktioniert ja dabei sowieso schon...

Der nächste Schritt wären dann noch kurze Beschreibungstexte, die zusätzlich oder anstatt der Befehle angezeigt werden. Da wird es schon etwas kniffliger bei der Definition und Auswertung als Anweisung :)

Btw.: Wäre ein Attribut zum Steuern, ob generell in der Fhem-Antwort nochmal der Befehl und dieser Bot-Prefix vorkommen sollen, auch nett :)

Grüße
Reiner

viegener

Zitat von: Reinerlein am 05 April 2016, 00:30:05
Hallo,

zu Beginn kann man es auch erstmal einfach gestalten: wie wäre es mit einem Zusätzlichen Steuerattribut?
Eigentlich ist deine Syntax dafür doch schon ausreichend.

Nennen wir das Attribut mal kurz "sendShortFavorites". Wenn es z.B. "true" oder "1" ist, dann werden im Keyboard nur die Befehle der Favoriten ausgegeben (also das Ding mit dem Slash bis zum =-Zeichen).
z.B. "/temperature"
Die folgende Auswertung, wenn das als Benutzerauswahl beim Bot wieder ankommt, funktioniert ja dabei sowieso schon...

Der nächste Schritt wären dann noch kurze Beschreibungstexte, die zusätzlich oder anstatt der Befehle angezeigt werden. Da wird es schon etwas kniffliger bei der Definition und Auswertung als Anweisung :)

Btw.: Wäre ein Attribut zum Steuern, ob generell in der Fhem-Antwort nochmal der Befehl und dieser Bot-Prefix vorkommen sollen, auch nett :)

Grüße
Reiner

Ich habe gerade mal eine neue Versions in github hochgeladen die dazu 2 Änderungen enthält:

- Es kann jetzt auch einen Beschreibungstext für einen Favorite definiert werden, der dann statt des Kommandos ind er Favoritenliste und Bestätigung angezeigt wird
- Die Texte die als Antworten des Bots zurückgegeben werden kann man jetzt selber umdefinieren (Dafür sind eigene Attribute text...) vorgesehen.

Vermutlich erfüllt das noch nicht ganz die Wünsche an die Favoritenliste aber es ist erstmal ein grosser Schritt dahin gemacht

Wie immer Feedback willkommen
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können