Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

vs375

Zitat von: viegener am 05 Juli 2019, 10:36:01
@vs375: Jeder (nicht nur Mitglieder in einer Gruppe) kann Kontakt zu dem Bot aufnehmen - lässt sich über Kontakte suchen (per Name / Alias) ud dann kann ein chat starten

Hallo viegener und Meck,

Jetzt funktioniert die Abfrage der Favoritenliste. Den Bot konnten wir über "Teilen" den anderen Mitgliedern verfügbar machen.
Die Frage ist somit beantwortet.

Danke
Fork
RPI2, Yamaha, Enocean, HUE, PIFace2, Garmin-Integration

devien

Hallo,

bei mir läuft der Bot seid einiger Zeit problemlos.

Allerdings bin ich gestern beim Prüfen der Firewall/dhcp -Server auf etwas gestoßen was mir spanisch vorkommt.
Ich habe eine einzelne Mac Adresse (zieht sich auch eine eigene IP) im Netz welche ich nicht zuordnen kann. Jedoch stimmen die Zeiten der Erreichbarkeit der IP im Netz mit den Aktivitäten des Telegram Bots überein.

Die Mac/IP nimmt auch ausschließlich kontakt zu 8.8.8.8 und einem Telegram Server auf.

Normalerweise würde mich das nicht wundern, aber der Telegram Bot läuft auf meinem RaspberryPi mit FHEM und Fhem hat eine eigene (andere) Mac Adresse.
Da ich weiß das Linux nicht so fest mit der Macadresse des Hostsystems verwurzelt ist wie andere OS, also halte ich es durchaus für möglich das Telegram sich "separiert".

Wisst ihr was davon?
Verhalten sich eure Bots genauso?

Gruß devien
FHEM + UniPi + Arduino = gute Lösung

viegener

Zitat von: devien am 10 Juli 2019, 11:51:10
Hallo,

bei mir läuft der Bot seid einiger Zeit problemlos.

Allerdings bin ich gestern beim Prüfen der Firewall/dhcp -Server auf etwas gestoßen was mir spanisch vorkommt.
Ich habe eine einzelne Mac Adresse (zieht sich auch eine eigene IP) im Netz welche ich nicht zuordnen kann. Jedoch stimmen die Zeiten der Erreichbarkeit der IP im Netz mit den Aktivitäten des Telegram Bots überein.

Die Mac/IP nimmt auch ausschließlich kontakt zu 8.8.8.8 und einem Telegram Server auf.

Normalerweise würde mich das nicht wundern, aber der Telegram Bot läuft auf meinem RaspberryPi mit FHEM und Fhem hat eine eigene (andere) Mac Adresse.
Da ich weiß das Linux nicht so fest mit der Macadresse des Hostsystems verwurzelt ist wie andere OS, also halte ich es durchaus für möglich das Telegram sich "separiert".

Wisst ihr was davon?
Verhalten sich eure Bots genauso?

Gruß devien

Nur zum Hintergrund: Die Telegram-Bot-Implementierung in FHEM macht ausschliesslich HTTPS requests auf das bot-api (bei telegram) - dabei wird nur die normale HTTPUtils verwendet wie für ganz viele andere Module auch. Es kommt also keine versteckte Telegram-Software zum Einsatz, die die MAC-Addresse ändern könnte.

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

devien

Zitat von: viegener am 10 Juli 2019, 14:06:24
Nur zum Hintergrund: Die Telegram-Bot-Implementierung in FHEM macht ausschliesslich HTTPS requests auf das bot-api (bei telegram) - dabei wird nur die normale HTTPUtils verwendet wie für ganz viele andere Module auch. Es kommt also keine versteckte Telegram-Software zum Einsatz, die die MAC-Addresse ändern könnte.
hm, ist logisch, dann kann er es nicht sein.

Vielen Dank das hat mir weitergeholfen zumindest diesen Kandidaten auszuschließen. ;D
FHEM + UniPi + Arduino = gute Lösung

Meck

Guten Morgen,

ich habe noch eine Verständnisfrage zum Senden von Telegram Nachrichten.

In der CommandRef ist folgendes zu entnehmen.

ZitatSet
message|msg|_msg|send [ @<peer1> ... @<peerN> ] [ (<keyrow1>) ... (<keyrowN>) ] <text>

leider finde ich noch nicht alle Zusammenhänge. Daher würde ich diese gerne im Wiki zusammentragen.

Meine Frage ist: Warum gibt es die vielen Möglichkeiten zum Senden von Telegram Nachrichten? Wie unterscheiden Sie sich?

Was ich gefunden habe und mir hergeleitet habe:

,,message" wird verwendet in Kombination mit MsgDialog
,,msg" wird verwendet in Kombination mit msg
,,_msg" finde ich zwar in ein paar Foren Beispielen bzw auch etwas im Wiki unter Staumelder Modul Talk2Fhem oder Hausüberwachung, aber nicht in der commandRef und kann mich aktuell nicht erklären woher es kommt.
,,send" ist auch nicht wirklich erklärt, ich vermute aber, dass es der Ursprung des Sendens ist und daher selbst erklärend.

Vielen Dank für eure Unterstützung.

Gruß

Meck

Edit:
Ich bin gerade dabei die Vorzüge und Nachteile der Beiden Keyboards von Telegram zu betrachten.
Mein aktueller Wissensstand ist, das es zwei Arten von Keyboards gibt. Beide lassesn sich auch mit Telegram nutzen

Da ich das Keyboard ausführlicher ins Wiki bringen möchte bitte ich um eure Meinung.
Im ersten Schritt möchte ich die Keyboard ohne Verwendung weitere Modul einbringen.

Erzeugen des Keyboards
Möglichkeit 1:
set <TelegramBot> send @<PeerID> (yes|no) (may be) are you there?

Möglichkeit 2:

set <TelegramBot> attr cmdFavorites </short>
set <TelegramBot> attr favoritesInline 0 #ist auch default 0 muss nicht gesetzt werden
set <TelegramBot> attr favorites2Col 0 #ist auch default 0 muss nicht gesetzt werden
set <TelegramBot> attr cmdFavorites /Lampe on[-Lampe on] = set Lampe on; /Lampe off[-Lampe off] = set Lampe off

Erzeugt beim Senden von /short ein Menu mit zwei Einträgen untereinander

set <TelegramBot> attr favorites2Col 1
Ist ein zwei Spaltiges Menü möglich
Kann ich auch wie bei dem Inline die Befehle ausblenden? Mit [-beschreibung] angegeben, um den Befehl oder Alias aus den Favoritenmenüs der Inline-Tastaturmenüs zu entfernen.

Welche Vor-und Nachteile gibt es? Habe ich noch eine Variante nicht gefunden?


viegener

@meck: die befehle send msg message und _msg sind alle in der funktion identisch und nur unterschiedliche namen (zum teil aus historischen gründen um keine Funktionalität zu entfernen)

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

JamBay

Problem nach Update von Stretch auf Buster auf einem Pi 3B+
Mir war am Wochenende langweilig und ich habe meinen Pi von Stretch auf Buster hochgezogen,
es hat soweit auch alles geklappt, nur der Telegram-Bot, der vorher einwandfrei lief, will nicht mehr, mit folgenden Fehlermeldungen im Log:
2019.07.15 11:11:44 3: TelegramBot_Callback myTeleBot: resulted in NonBlockingGet: returned connect to https://api.telegram.org:443: Network is unreachable from SendIt
2019.07.15 11:11:44 3: TelegramBot_Callback myTeleBot: Reached max retries (ret: NonBlockingGet: returned connect to https://api.telegram.org:443: Network is unreachable) for msg @myTelegram : fhem started - just now

Ich denke, dass durch das Update etwas kaputt gegangen ist, tue mich aber schwer das einzugrenzen, geschweige denn zu lösen.
Ist sicher kein Fehler im Modul, da es vorher einwandfrei funktioniert hat.

Was ich schon versucht habe:

Ach eines noch, polling habe ich auf 0 stehen, ich möchte im Moment keine Befehle an den Bot senden.

viegener

Zitat von: JamBay am 15 Juli 2019, 17:35:04
Problem nach Update von Jessie auf Buster auf einem Pi 3B+
Mir war am Wochenende langweilig und ich habe meinen Pi von Jessie auf Buster hochgezogen,
es hat soweit auch alles geklappt, nur der Telegram-Bot, der vorher einwandfrei lief, will nicht mehr, mit folgenden Fehlermeldungen im Log:
2019.07.15 11:11:44 3: TelegramBot_Callback myTeleBot: resulted in NonBlockingGet: returned connect to https://api.telegram.org:443: Network is unreachable from SendIt
2019.07.15 11:11:44 3: TelegramBot_Callback myTeleBot: Reached max retries (ret: NonBlockingGet: returned connect to https://api.telegram.org:443: Network is unreachable) for msg @myTelegram : fhem started - just now

Ich denke, dass durch das Update etwas kaputt gegangen ist, tue mich aber schwer das einzugrenzen, geschweige denn zu lösen.
Ist sicher kein Fehler im Modul, da es vorher einwandfrei funktioniert hat.

Was ich schon versucht habe:

Ach eines noch, polling habe ich auf 0 stehen, ich möchte im Moment keine Befehle an den Bot senden.

Die Meldung "Network is unreachable" deutet auf ein Problem bei der Verbindung zu Telegram hin (Abbruch der Verbindung oder ähnliches)

Wird der redirect in FHEM gemacht oder wenn die direkt aufrufst (beim direktaufruf ohne gültigen URL und request dürfte das normal sein)?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

JamBay

Zitat von: viegener am 16 Juli 2019, 15:50:41
Die Meldung "Network is unreachable" deutet auf ein Problem bei der Verbindung zu Telegram hin (Abbruch der Verbindung oder ähnliches)
Das würde ich auch aus der Meldung schließen. Wenn ich das 'polling' aktiviere erhalte ich ein ähnliche Meldung.
Zitat
Wird der redirect in FHEM gemacht oder wenn die direkt aufrufst (beim direktaufruf ohne gültigen URL und request dürfte das normal sein)?
Der redirect passiert wenn ich die URL im Browser aufrufe, egal an welchen PC/Pi.

Das Problem ist (für mich) aber noch größer geworden, nachdem ich noch etwas herumprobiert habe, war der Pi soweit, dass er gar nicht mehr starten wollte.
Also habe ich das Backup-Image von vor dem Update zurückgespielt (also bin wieder mit Stretch) und habe die selbe Meldung.
Leider habe ich keine Ahnung mehr was ich sonst noch verstellt haben könnte, liegt ja dann eher an meinem Netzwerk hier, oder?

viegener

Zitat von: JamBay am 16 Juli 2019, 17:28:29
Das würde ich auch aus der Meldung schließen. Wenn ich das 'polling' aktiviere erhalte ich ein ähnliche Meldung.Der redirect passiert wenn ich die URL im Browser aufrufe, egal an welchen PC/Pi.

Das Problem ist (für mich) aber noch größer geworden, nachdem ich noch etwas herumprobiert habe, war der Pi soweit, dass er gar nicht mehr starten wollte.
Also habe ich das Backup-Image von vor dem Update zurückgespielt (also bin wieder mit Jessie) und habe die selbe Meldung.
Leider habe ich keine Ahnung mehr was ich sonst noch verstellt haben könnte, liegt ja dann eher an meinem Netzwerk hier, oder?

Der redirect im Browser ist wohl normal, da das ja keine Webseite für den Browser ist sondern ein Endpunkt für Anfragen per Software

Funktioniert denn alles andere normal, ist es nur Telegram das nicht läuft?
Ist IPV6 im Spiel?



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

JamBay

Zitat von: viegener am 16 Juli 2019, 18:37:50
Ist IPV6 im Spiel?
Der Tipp war Gold wert:
ich hatte im Router IPV6 abgeschaltet, wegen einer neuen IP-Cam, bei der ich mal schauen wollte, was sie so treibt.
Da erstmal alles weiter lief, habe ich nicht mehr dran gedacht, aber scheinbar muss IPV6 für den TelegramBot aktiv sein, ist das korrekt?
Jetzt mit aktiviertem IPV6 läuft der Bot wieder in FHEM, auch Polling klappt einwandfrei.

Aber warum läuft es nicht mit IPV4?

Meck

Zitat von: viegener am 12 Juli 2019, 11:57:27
@meck: die befehle send msg message und _msg sind alle in der funktion identisch und nur unterschiedliche namen (zum teil aus historischen gründen um keine Funktionalität zu entfernen)

Danke Für deine Antwort. Dann werde ich das so für das Wiki mit aufnehmen.

Hat vielleicht noch einer ein Gedankengang bezüglich Der Keyboards für mich?

Gruß

Meck

viegener

Zitat von: JamBay am 17 Juli 2019, 19:05:34
Der Tipp war Gold wert:
ich hatte im Router IPV6 abgeschaltet, wegen einer neuen IP-Cam, bei der ich mal schauen wollte, was sie so treibt.
Da erstmal alles weiter lief, habe ich nicht mehr dran gedacht, aber scheinbar muss IPV6 für den TelegramBot aktiv sein, ist das korrekt?
Jetzt mit aktiviertem IPV6 läuft der Bot wieder in FHEM, auch Polling klappt einwandfrei.

Aber warum läuft es nicht mit IPV4?

Ich kann nur spekulieren, aber wenn ipv6 nur im router abgeschaltet ist und der fhemrechner bei der namensauflösung eine ipv6 bekommt wäre das eine Erklärung

Telegram funktioniert problemlos generell auch ohne ipv6
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Maista

@viegener

Hallo Johannes,

heute habe ich Zeit für mein Problemchen gefunden und auch eine mehr oder weniger funktionierende Lösung  ::)

Zitat von: viegener am 24 Juni 2019, 17:58:30
@Maista: Das Bot-Modul macht keine Konvertierung der Grafikformate. Telegram macht aber wohl Formatverkleinerung (also verringerung der Auflösung), ich kann Dir nicht sagen ob dabei nach JPG konvertiert wird (würde mich aber wundern).

Wenn Du ein Bild ohne Konvertierungen verschicken willst, kannst Du mal die Versendung über sendMedia durchführen, dabei sollte auch Telegram keine Konvertierung vornehmen.

Ich habe mir bei https://forum.fhem.de/index.php/topic,90083.msg825495.html#msg825495 den Code geklaut.

Das Bild wird dann auch schön erzeugt. Je nach dem was man nun für ein Style hat sieht man aber keine Beschriftung.
Bei https://forum.fhem.de/index.php/topic,38842.msg391538.html#msg391538 wird hier eine Lösung beschrieben.
Mit dem Irfanview sieht das Bild auch normal aus.

Wenn ich nun das Bild mit sendMedia verschicke sieht man nun aber im Bildbetrachter von Telegram das der Rahmen um das Bild Transparent ist.
Bild im Anhang Tanken_als_PNG_PC.png.

Die Textfarbe sollte daher Schwarz gewählt sein.
Im Windows-Telegram kann man den Text so lesen.

Bei TelegramX / Standard (Android) im Black Theme wiederum sieht man den Text nur, wenn er als Grau gerechnet wurde  :o
Ansonsten ist hier die Schrift dann Schwarz auf Schwarz.

Mein Problem ist damit zwar gelöst, aber es wird umständlich.

Warum der Telegram-Server aus dem PNG ein unscharfes JPG erzeugt bleibt mir ein Rätsel.

Gruss Gerd

Floriky

Zitat von: viegener am 17 März 2018, 14:10:18
@fkp: sendMediaGroup  lässt sich sicher realisieren, mir ist nur noch nicht ganz klar, wie man das als Telegram set-Command zur Verfügung stellt. Die einfachste Lösung wäre wohl nur Medien ohne Bildbeschreibung zuzulassen und auch nur bekannte Medientypen, die an der Erweiterung erkennbar sind. Denn man muss zwischen photo und video beim Senden unterscheiden.


@all:
Sauber wäre eine Lösung, bei der man Stück für Stück die zusendenden Medien übergibt und dann versendet. Das erfordert aber einige Umbauten.

Deshalb nochmal die Frage an die Runde, gibt es auch andere, die das benötigen? Wie sieht euer Szenario aus und welche Formate werden gebraucht und werden auch Bildbeschreibungen gewünscht?

Hallo, könnte sendMediaGroup auch super gebrauchen...  ;)