Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

Zitat von: RitterSport am 14 Oktober 2016, 22:32:10
Bei mir auch ein Problem, dabei nichts am laufendem System geändert:
me Failed - see log file for details
sentLastResult Callback returned error:Unauthorized:


Auf dem iPhone steht: Hidden room, sowie ist es mir nicht möglich eine Message an Fhem zu senden.

Das hat vermutlich nichts mit fhem/telegrammodul zu tun, sondern mit einstellungen an deinem bot - prüfe mal ob es den bot noch gibt (im botfather) und welche einstellungen er hat.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: ChrisK am 14 Oktober 2016, 16:56:21
Nur mal ein kurzer Hinweis zwischendurch, könnte für den einen oder anderen interessant sein.

Gestern bin ich über "/setcommands" gestoßen.
Damit kann man im Bot Befehle vorgeben, die per "/" angezeigt werden.
Bisher hatte ich (noch vor dem Wechsel von WhatsApp zu Telegram) ein paar notifys definiert, die auf bestimmte Begriffe reagieren. Zentral war dann der Begriff "hilfe". Hat man "hilfe" an fhem geschickt, dann kam eine Liste der verfügbaren notifys zurück (z.B. "temp" um einen Überblick der Temperaturen zuhause zu bekommen oder "benzin" um die aktuellen Benzinpreise der favorisierten Tankstellen zu kriegen).

"hilfe" hat sich mit /setcommands erübrigt und ist noch viel eleganter, da man eine Auflistung der Befehle mit Beschreibung kriegt und die direkt auswählen kann (ähnlich wie das Eintippen von "/" beim Botfather).

Das habe ich hier im Thread und in der commandref nicht gefunden, hat aber auch nicht viel mit dem Modul selbst zu tun. Wollte es aber trotzdem nicht für mich behalten ;)

Guter hinweis, ich war zwar sicher, dass ich das im wiki oder im commandref erwähnt hatte, aber finde es gerade selber nicht mehr.

Es wäre schön, wenn du das im wiki zum telegrambot einträgst, dann finden auch andere es leichter :)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Vampy20

@viegener: Vielen Dank für die Erklärung.

Ist es möglich den parse_mode für Styles (HTML oder Markdown) einzustellen? Ich würde gerne meine FHEM Nachrichten formatieren.
FHEM 5.7 auf RPi 2 (Raspbian 4.4.13+, Perl v5.20.2), HM-CFG-USB, HM-SEC-RHS, HM-ES-PMSw1-Pl, HM-LC-Bl1PBU-FM, HM-SEC-SD-2, co2mini, Philips Hue, MySensors, DashButton

viegener

Zitat von: Vampy20 am 15 Oktober 2016, 17:46:24
@viegener: Vielen Dank für die Erklärung.

Ist es möglich den parse_mode für Styles (HTML oder Markdown) einzustellen? Ich würde gerne meine FHEM Nachrichten formatieren.

Bisher hatte ich das nicht eingebaut, da nicht alle Clients unterstützt wurden, das ist aber wohl seit dem letzten update von telegram bot api der Fall.

Der Plan wäre ein Attribut "parseModeSend" mit folgenden Werten:
- 0_None - default
- 1_Markdown - wie hier beschrieben https://core.telegram.org/bots/api/#markdown-style
- 2_HTML - wie hier beschrieben https://core.telegram.org/bots/api/#html-style
- 3_InMsg - Allows using the strings Markdown or  HTML at the beginning of a message

Ich baue das mal ein
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Maista

Hallo Johannes,

kann ich mit dem Bot solche Keyboards wie hier https://core.telegram.org/bots#keyboards aufgeführt werden erzeugen?

Danke und schönes Wochenende.

Gerd

viegener

Zitat von: viegener am 15 Oktober 2016, 19:02:02
Bisher hatte ich das nicht eingebaut, da nicht alle Clients unterstützt wurden, das ist aber wohl seit dem letzten update von telegram bot api der Fall.

Der Plan wäre ein Attribut "parseModeSend" mit folgenden Werten:
- 0_None - default
- 1_Markdown - wie hier beschrieben https://core.telegram.org/bots/api/#markdown-style
- 2_HTML - wie hier beschrieben https://core.telegram.org/bots/api/#html-style
- 3_InMsg - Allows using the strings Markdown or  HTML at the beginning of a message

Ich baue das mal ein

OK Version mit obigem Attribut ist in guthub, wenn es jeman schonmal testen will. parse_mode wird jetzt für text messages gesetzt
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Vampy20

FHEM 5.7 auf RPi 2 (Raspbian 4.4.13+, Perl v5.20.2), HM-CFG-USB, HM-SEC-RHS, HM-ES-PMSw1-Pl, HM-LC-Bl1PBU-FM, HM-SEC-SD-2, co2mini, Philips Hue, MySensors, DashButton

Maista

Hallo Vampy20 & Johannes,

die Option parse_mode HTML und NONE habe ich verstanden  ::)
Konnte das über meine 99_myUtils.pm auch in der Textausgabe nachvollziehen.

Was aber macht MARKDOWN und InMsg ?

Wie sieht das in Telegram aus? Habt ihr hierzu Beispiele?

Gruss Gerd

viegener

Zitat von: Maista am 15 Oktober 2016, 22:32:28
Hallo Vampy20 & Johannes,

die Option parse_mode HTML und NONE habe ich verstanden  ::)
Konnte das über meine 99_myUtils.pm auch in der Textausgabe nachvollziehen.

Was aber macht MARKDOWN und InMsg ?

Wie sieht das in Telegram aus? Habt ihr hierzu Beispiele?

Gruss Gerd

markdown ist nur eine andere Formatierung --> siehe den obigen Link

Inmsg soll heissen in der Message selbst befindet sich die Angabe wie formatiert ist, als am Anfang der Text "HTML", dann ist die Nachricht HTML formatiert, am Anfang "markdown" dann ist sie mit markdown formatiert, anonsten unformatiert
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Carsten

Die setcommands benutze ich auch. Ein paar Hinweise noch dazu:


  • Es dauert manchmal einige Zeit, bis Änderungen wirksam werden. Vor allem, wenn man sie mehrfach kurz hintereinander ändert, scheint es länger zu dauern, bis die neuen commands bei allen Clients in der Vorschlagsliste auftauchen.
  • Die Liste ist nicht geheim. Jeder, der irgendwie den Bot findet, kann auch die Liste sehen. Daher muss zum einen natürlich sichergestellt werden, dass nicht jeder auch die Commands ausführen kann und zum zweiten sollten die Commands selbst keine sicherheitsrelevanten Infos beinhalten
  • Wenn Telegram "denkt", dass der Empfänger des Commands nicht eindeutig ist, hängt der Client automatisch ein "@<Botname>" an. Aus "/LichtAn" wird dann "/LichtAn@Botname". Das ist wohl eigentlich dazu gedacht, um in einer Gruppe mit mehreren Bots nicht gleichzeitig alle Bots zu triggern, die den Befehl unterstützen. In der Praxis wird das aber nach einem nicht erkennbaren Muster auch manchmal angehängt, obwohl es gar nicht nötig wäre. Teilweise wurden bei mir zwei nacheinander abgesetzte identische Befehle einmal um den Botnamen ergänzt und einmal nicht. Sowohl im Gruppenchat, als auch im Direktchat. "@<Botname>" sollte daher beim Parsen des Befehls rausgefiltert werden

@viegener: Wäre es möglich, die Funktion "editMessageText" zum implementieren? Könnte das ganz gut gebrauchen, um die letzte Statusmeldung aktuell zu halten, ohne jedesmal eine neue Nachricht zu schicken.


speex

Bzgl. der InlineKeyboards fände ich auch super interessant!
Wäre damit auch so etwas möglich wie einen Link zu einer anderen App auf dem Phone? (Bot schickt mir ein Bild von der Kamera, und zusätzlich noch einen inlineButton zb. zum Surveillance Station App von Synology)

Ansonsten noch mal eine Frage zu den replyKeyboards, ich hatte ja schon mal in der Vergangenheit darauf hingewiesen das einem die confirmation immer wieder gezeigt wird solange bis man praktisch wieder manuell "/" eingibt und wieder die ursprügnliche befehls liste angezeigt bekommt.
Hab eher zufällig heute noch mal ein bisschen bei telegram rumgestöbert und bin zufällig auf folgendes gestossen https://core.telegram.org/bots/api/#replykeyboardhide verstehe ich das richtig das man zuvor beschriebenes verhalten so lösen könnte das nach dem confirm das Replykeyboard wieder ausgeblendet wird?

JoeALLb

Zitat von: viegener am 14 Oktober 2016, 22:56:52
Ich glaube jetzt habe ich es verstanden: Kann es sein, dass bei Euch das Attribut allowUnknownContacts auf 0 gesetzt ist?

Jetzt gehts wieder ;-)
Da müssen dann wohl beim Update die Contacts rausgeflogen sein? Danke!!!!!
Sollten wir den Grund des verwerfens der Nachricht eventuell ins Log mit aufnehmen?

Jetzt geht wieder alles, schnell und zuverlässig!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

RaspiCOC

Zitat von: viegener am 14 Oktober 2016, 15:16:08
Ich nehme das vermutlich am Wochenende in die offizielle Version auf, möchte aber erst nochmal schauen, dass ich das problem von    JoeALLb lösen kann

Weiterhin, nun nach mehreren Tagen alles top! Das Update ist aber noch nicht im Repository, oder?

viegener

Zitat von: RaspiCOC am 17 Oktober 2016, 11:51:14
Weiterhin, nun nach mehreren Tagen alles top! Das Update ist aber noch nicht im Repository, oder?

Korrekt, ist noch nicht im SVN / offiziellen Update. Etwas Zeitmangel, könnte noch ein paar Tage dauern.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: Maista am 15 Oktober 2016, 20:35:05
Hallo Johannes,

kann ich mit dem Bot solche Keyboards wie hier https://core.telegram.org/bots#keyboards aufgeführt werden erzeugen?

Danke und schönes Wochenende.

Gerd

Bisher ist die Keyboard-Erzeugung nur intern im Modul und wird für Favoriten und Bestätigungen genutzt.




Zitat von: speex am 16 Oktober 2016, 20:01:16
Bzgl. der InlineKeyboards fände ich auch super interessant!
Wäre damit auch so etwas möglich wie einen Link zu einer anderen App auf dem Phone? (Bot schickt mir ein Bild von der Kamera, und zusätzlich noch einen inlineButton zb. zum Surveillance Station App von Synology)

Die neuen Inlinekeyboards habe ich noch nicht ausprobiert, sie würden sich aus meiner Sicht speziell für die Bestätigung für Favoriten eignen.

Generell sind die Keyboards (inline oder normal) für eine Dialogfunktion sicher hilfreich, allerdings würde das aus meiner Sicht schwierig über FHEM-Befehle zu machen sein. Aufrufe von Funktionen aus Perl wären hier vermutlich besser...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können