Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

OliS.

Guten Abend!

Ich habe jetzt den kompletten Thread durch, und hoffe, nichts überlesen zu haben.
Ist es möglich, dass sich zwei Bots untereinander unterhalten? Hintergrund ist, ich möchte gern mit dem Modul so eine Art FHEM2FHEM über das Internet realisieren. Bsw. sollen Temperaturwerte eines Sensors meines Heim-FHEM an mein Büro-FHEM übertragen werden.

Ich habe es mit

DOIF ([Sensor:temperature])(set fhem_home_bot message @1234567 [Sensor:temperature])

versucht. Wobei "@1234567" die ID meines Büro-Bots ist. Das funktioniert allerdings so nicht. Kann es sein, dass sich nur "echte" Clients mit Bots unterhalten können und umgekehrt?

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

igami

Nein, das ist nicht möglich. Ein Bot kann nur eine Nachricht an einen Empfänger schreiben wenn dieser ihm vorher geschrieben hat.

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

Ma_Bo

Theoriemodus an
Kann man diese nicht in eine Gruppe einladen und selber dann die Gruppe wieder verlassen ?
Theoriemodus aus
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

igami

Zitat von: Ma_Bo am 30 April 2016, 22:44:45
Theoriemodus an
Kann man diese nicht in eine Gruppe einladen und selber dann die Gruppe wieder verlassen ?
Theoriemodus aus
Müsste dann mal einer testen ;)
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

viegener

Zitat von: igami am 30 April 2016, 22:59:20
Müsste dann mal einer testen ;)

Muss keiner testen. Leider geht das nicht, telegram unterbindet sogar, dass ein Bot Nachrichten von anderen Bots sieht in einer Gruppe sieht. Ich habe das mal im Zuge von der Einführung von Supergruppen getestet und es steht wohl auch auf der Webseite von telegram.

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

OliS.

Zitat von: viegener am 30 April 2016, 23:18:58
Muss keiner testen. Leider geht das nicht, telegram unterbindet sogar, dass ein Bot Nachrichten von anderen Bots sieht in einer Gruppe sieht. Ich habe das mal im Zuge von der Einführung von Supergruppen getestet und es steht wohl auch auf der Webseite von telegram.

Ok, so etwas in der Art dachte ich mir schon. Vielen Dank für die Antwort und für das Modul. Ich werde es trotzdem als Rückfallstufe nutzen, falls ich mal nicht per VPN in mein Netz komme.

Danke und einen schönen 1. Mai.

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

spel

Hallo,

nachdem yowsup7Whatsapp nur ca. 5 Tage lief, bin ich jetzt auf Telegram umgestiegen und sehr zufrieden.

Ein paar Verständnisfragen habe ich allerdings noch:
- in seinem eigenen "Chat" darf man den Bot nicht rauslöschen weil er dann angehalten ist und ich keine Nachrichten mehr empfangen kann, richtig?
- als DefaultPeer habe ich mich (natürlich) eingetragen. Wäre es möglich, dass jmd. anderes sich mit dem bot verbinden kann? Sowas möchte ich natürlich nicht... Da verstehe ich den Ablauf noch nicht so ganz.

Und wie ist der Befehl zum BotFather hin, um sich alle seine Bots anzeigen zu lassen. Kann ich den BotFather-Chat löschen und anhalten - oder was passiert dann?

Danke!

viegener

Zitat von: spel am 01 Mai 2016, 14:40:39
Hallo,

nachdem yowsup7Whatsapp nur ca. 5 Tage lief, bin ich jetzt auf Telegram umgestiegen und sehr zufrieden.

Ein paar Verständnisfragen habe ich allerdings noch:
- in seinem eigenen "Chat" darf man den Bot nicht rauslöschen weil er dann angehalten ist und ich keine Nachrichten mehr empfangen kann, richtig?
- als DefaultPeer habe ich mich (natürlich) eingetragen. Wäre es möglich, dass jmd. anderes sich mit dem bot verbinden kann? Sowas möchte ich natürlich nicht... Da verstehe ich den Ablauf noch nicht so ganz.

Und wie ist der Befehl zum BotFather hin, um sich alle seine Bots anzeigen zu lassen. Kann ich den BotFather-Chat löschen und anhalten - oder was passiert dann?

Danke!

Der bot ist auch ohne in einer Gruppe oder einem sonstigen Chat enthalten ist weiter erreichbar. Man kann üblicherweise auch bots als Kontakt suchen indem man den @-Namen eingibt, dann erscheinen Bots auch in der Kontaktsuche

Ja jemand anders kann dem Bot Nachrichten schicken und auch Komandos ausführen, wenn das Attribute cmdRestrictedPeer nicht gesetzt ist (aber z.B. cmdKeyword ). Dieses Attribute vor Öffnung von Komandos auf jeden Fall auf gültige contact IDs setzen !!!

Den botfather chat kann man aus dem eigenen Client löschen, die Bots bleiben danach erhalten.
Die Bots auflisten kann man durch Ausführung eines der Kommandos im botfather z.B. /setabouttext . Dann erscheint eine Tastatur mit allen bots.

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

viegener

Ich habe gerade noch ein paar Versuchen gemacht:

Egal ob man den Chat im Client löscht (oder nur den Verlauf löscht), der Bot kann weiterhin Nachrichten an den Benutzer senden.

Erst wenn man in den Optionen im chat "Bot anhalten" wählt, wird der Bot geblockt und es lassen sich keine Nachrichten mehr an den Benutzer verschicken.

Durch "neu starten" lässt sich das aber leicht lösen.

=> Dies sind die Optionen im Android-Client in iOS / Web  etc heisst das unter Umständen anders.

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

weini

Nachdem WA an deren Protokoll schraubt und alle nicht konformen Zugriffe block bin ich vor einer Woche auf TelegramBot umgestiegen.
Großes Kompliment, das Modul ist toll implementiert und es macht deutlich mehr Laune, mit einer "offiziellen" Schnittstelle und der damit verbundenen Stabilität und Verläßlichkeit zu arbeiten.

Eine kleine Erweiterungsanfrage hätte ich aber:
Ich habe bei "yowsup" immer das Attribut "allowedCommand" genutzt, um nur "set" und "get" zuzulassen.
Im FHEM Modul "allowed" gibt es mit dem Attribut "allowedCommands" eine ähnliche Implementierung der selben Funktionalität.

Das Attribut "cmdTriggerOnly" vom TelegramBot hilft mir nicht weiter, da ich damit für zig Devices extra Notifys anlegen müsste.

Es wäre super, wenn das im TelegramBot noch ergänzt werden könnte. Vielleicht kann man den notwendigen Code ja teilweise sogar bei einem der beiden anderen Module "entleihen".

viegener

Zitat von: weini am 04 Mai 2016, 18:25:07
Nachdem WA an deren Protokoll schraubt und alle nicht konformen Zugriffe block bin ich vor einer Woche auf TelegramBot umgestiegen.
Großes Kompliment, das Modul ist toll implementiert und es macht deutlich mehr Laune, mit einer "offiziellen" Schnittstelle und der damit verbundenen Stabilität und Verläßlichkeit zu arbeiten.

Eine kleine Erweiterungsanfrage hätte ich aber:
Ich habe bei "yowsup" immer das Attribut "allowedCommand" genutzt, um nur "set" und "get" zuzulassen.
Im FHEM Modul "allowed" gibt es mit dem Attribut "allowedCommands" eine ähnliche Implementierung der selben Funktionalität.

Das Attribut "cmdTriggerOnly" vom TelegramBot hilft mir nicht weiter, da ich damit für zig Devices extra Notifys anlegen müsste.

Es wäre super, wenn das im TelegramBot noch ergänzt werden könnte. Vielleicht kann man den notwendigen Code ja teilweise sogar bei einem der beiden anderen Module "entleihen".

OK, ich hatte schon selber darüber nachgedacht, aber auf die erste Anfrage aus der Community gewartet. Kommt auf die Todoliste und sollte bald machbar sein.
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

weini

Das klingt spitze, würde mich sehr freuen!

Vielen Dank im Voraus!

viegener

OK, neue Version im github mit allowedCommands (analog FHEMWeb und yowsup)

Bitte mal ausprobieren, bevor ich das über udpate verfügbar mache.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

weini

Hallo Johannes!

Das ging ja schnell.
Funktioniert bei mir einwandfrei: Wenn das Attribut gesetzt ist, dann werden Befehle dich nicht in der Liste stehen abgelehnt.

Für die Dokumentation: "allowendCommands" wirkt auch für Favoriten.

Seiteneffekte mit "cmdTriggerOnly" habe ich nicht getestet. Prinzipiell könnte man das jetzt durch "attr allowed_<tgbName> allowedCommands trigger" ablösen, dann muss aber in der Nachricht "trigger" als Befehl mitgegeben werden.

Nochmal 1000 Dank für die schnelle Hilfe!

Viele Grüße,
Christian

viegener

Gern geschehen !

Ich habe in diesem Zusammenhang cmdTriggerOnlyas deprecated markiert und werde es in einem der nächsten Versionen entfernen. Damit mache ich mir über Wechselwirkungen weniger Sorgen  :D

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