Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

Ich werde da wohl auch noch eine Änderung machen, so dass msgChat und msgChatId entweder den chat bezeichnen oder den peer, wenn es keine Gruppe ist, dadurch dürfte sich das Handling für die meisten vereinfachen, da man immer an den chatId zurücksenden kann.

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

viegener

#1291
Da ich nächste Woche ausnahmsweise mal geschäftlich nicht unterwegs bin und so bei Problemen unterstützen kann, habe ich jetzt die aktuelle Version (2.2) über SVN verfügbar gemacht. Wesentliche Änderungen finden sich ja hier auch schon im Thread beschrieben:

- ACHTUNG: der Apikey wird jetzt per setkey und abgelegt und steht NICHT mehr im device direkt als internal (basierend auf patch von wmr72 https://forum.fhem.de/index.php/topic,38328.msg576714#msg576714 - Danke)
- cmdRespondChat zur Steuerung der Antwort von Kommandos in Gruppenchats
- New reading msgChat/msgChatId um den aktuellen chat Gruppe oder Peer zurückzugeben
  (Dieses Reading sollte man verwenden, wenn man auf eine Nachricht im selben chat gruppe oder peer antowrten will)
- Fehlermeldungen der Art "Bad Request:" or "Unauthorized" führen nicht mehr zu Wiederholungsversuchen
- Das TBot_List Module wird direkt aus Telegrambot angesteuert (Ich werde das Modul auch ins SVN einstellen)
- Rufzeichen in Favoriten, damit auch leere Bestätigungen gesendet werden


Das TBot_List-Modul ist ab morgen auch über SVN verfügbar - Diskussionen dazu bitte hier : https://forum.fhem.de/index.php/topic,67976.0.html


Wie immer bei Problemen bitte hier melden, insbesondere mit der sichereren Behandlung des APIKeys
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

asciidisco

Hi zusammen,
ich hab aktuell noch ein Problem mit den Sonderzeichen, vllt. kann mir da jmd. behilflich sein.
FHEM v. = 5.7 & TelegramBot v. = # $Id: 50_TelegramBot.pm 12874 2016-12-25 14:15:59Z viegener $

Wenn ich eine Nachricht abschicke: "set my_bot send Foobar" gibt es keine Probleme, sobald darin aber ein Sonderzeichen enthalten sind (sprich "set my_bot send äöüß"), timed der HTTP Request für das senden der Nachricht aus. Die Forensuche hat mich hier im Thread zu 2 Usern mit ähnlichen Problemen geführt, aber wenn ich dem Thread richtig gefolgt bin, sollten diese Probleme mit der Version die ich im Betrieb habe, ja nicht mehr existieren.

Leider gibt auch verbose=5 nicht sonderlich viel her, am Interessantesten ist wohl der Part des HTTP Requests, welches das Timeout bekommt:

2017.02.26 14:22:07 3: TelegramBot_Callback fhem_remote_bot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2017.02.26 14:22:07 3: TelegramBot_Callback fhem_remote_bot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg 289192221 : äöü


Wäre super, wenn mich jemand auf den richtigen Weg schicken könnte. Wenns mehr Infos braucht, einfach gerne Fragen.

viegener

Zitat von: asciidisco am 26 Februar 2017, 14:24:49
Hi zusammen,
ich hab aktuell noch ein Problem mit den Sonderzeichen, vllt. kann mir da jmd. behilflich sein.
FHEM v. = 5.7 & TelegramBot v. = # $Id: 50_TelegramBot.pm 12874 2016-12-25 14:15:59Z viegener $

Wenn ich eine Nachricht abschicke: "set my_bot send Foobar" gibt es keine Probleme, sobald darin aber ein Sonderzeichen enthalten sind (sprich "set my_bot send äöüß"), timed der HTTP Request für das senden der Nachricht aus. Die Forensuche hat mich hier im Thread zu 2 Usern mit ähnlichen Problemen geführt, aber wenn ich dem Thread richtig gefolgt bin, sollten diese Probleme mit der Version die ich im Betrieb habe, ja nicht mehr existieren.

Leider gibt auch verbose=5 nicht sonderlich viel her, am Interessantesten ist wohl der Part des HTTP Requests, welches das Timeout bekommt:

2017.02.26 14:22:07 3: TelegramBot_Callback fhem_remote_bot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2017.02.26 14:22:07 3: TelegramBot_Callback fhem_remote_bot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg 289192221 : äöü


Wäre super, wenn mich jemand auf den richtigen Weg schicken könnte. Wenns mehr Infos braucht, einfach gerne Fragen.

Ja, das Modul sollte an sich die Sonderzeichenprobleme lösen, es gibt aber offensichtlich sehr unterschiedliches Verhalten je nach Plattform, Perl-version etc. Kannst Du etwas zu Deiner Umgebung (Plattform und OS-Version sowie perl-version) sagen?

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

asciidisco

Danke für die Fixe Antwort, klar, gerne:

Summary of my perl5 (revision 5 version 24 subversion 1) configuration:

  Platform:
    osname=linux, osvers=3.16.0, archname=arm-linux-gnueabihf-thread-multi-64int
    uname='linux localhost 3.16.0 #1 smp debian 3.16.0 armv7l gnulinux '

viegener

Zitat von: asciidisco am 26 Februar 2017, 14:42:41
Danke für die Fixe Antwort, klar, gerne:

Summary of my perl5 (revision 5 version 24 subversion 1) configuration:

  Platform:
    osname=linux, osvers=3.16.0, archname=arm-linux-gnueabihf-thread-multi-64int
    uname='linux localhost 3.16.0 #1 smp debian 3.16.0 armv7l gnulinux '


Ist das ein raspberry mit linux jessie?

und noch eine Frage, wie hast Du JSON installiert?

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

asciidisco

#1296
Fast, ein Cubietruck mit Jessie (Igors Build).
Edit: JSON wurde damals über apt-get geholt

Edit2: Ich kann auch gerne meine Sourcen modifizieren, oder Log outputs einbauen wenn & wo gewünscht.

viegener

@asciidisco: Kannst Du mal in FHEMWeb folgendes im Kommandofeld eingeben und die Ergebnisse hier angeben?

{( return length("äöü") )}

{( return length(decode_utf8("äöü")) )}

{( return length(encode_utf8("äöü")) )}

Und noch eine Frage, was passiert, wenn Du die Nachricht direkt aus FHEMWeb verschickst?

set fhem_remote_bot msg äöü


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

asciidisco

@viegener

Bitte sehr:

{( return length("äöü") )} #6
{( return length(decode_utf8("äöü")) )} #3
{( return length(encode_utf8("äöü")) )} #12

Ich bin kein Perl Programmierer, allerdings würde ich mal behaupten, das die Ergebnisse Erwartungsgemäß aussehen...

Hier noch der verbose log, wenn ich über fhemweb den call absetze:

2017.02.26 16:40:44 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:44 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:44 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:44 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:44 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:44 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:45 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:45 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:45 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:45 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:45 5: TelegramBot_Get fhem_remote_bot: called
2017.02.26 16:40:45 5: TelegramBot_Get fhem_remote_bot: Processing TelegramBot_Get( ? )
2017.02.26 16:40:48 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:48 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( msg )
2017.02.26 16:40:48 5: TelegramBot_Set fhem_remote_bot: start send for cmd :msg: and sendType :0:
2017.02.26 16:40:48 5: TelegramBot_SendIt fhem_remote_bot: called
2017.02.26 16:40:48 5: TelegramBot_SendIt fhem_remote_bot: try to send message to :xxxxxxxx: -:äöü: - :<undef>:
2017.02.26 16:40:48 4: TelegramBot_GetFullnameForContact # Contacts is xxxxx:xxxxx_x::
2017.02.26 16:40:48 4: TelegramBot_GetFullnameForContact # name is xxxxx_xxxx
2017.02.26 16:40:48 4: TelegramBot_SendIt fhem_remote_bot: timeout for sent :30:
2017.02.26 16:40:49 5: TelegramBot_Set fhem_remote_bot: msg done succesful:
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:40:49 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:41:19 5: TelegramBot_Callback fhem_remote_bot: called from SendIt
2017.02.26 16:41:19 3: TelegramBot_Callback fhem_remote_bot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2017.02.26 16:41:19 3: TelegramBot_Callback fhem_remote_bot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg xxxxx : äöü
2017.02.26 16:41:19 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:41:19 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 16:41:19 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 16:41:19 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )


Kannst du mir vllt. die Zeile sagen, in der das Request abgesetzt wird? Ich würde mir gerne mal anschauen wie URL & Parameter zusammengebaut aussehen, ich hab mir nen kleinen Client in Node.js geschrieben, der auch eine einfache Nachricht ans Telegram API schickt (mit Umlauten) & dann könnte ich mal den Aufbau der Requests vergleichen.

viegener

@asciidisco: Ich kann Dir sagen wo die Unterschiede liegen. Die Buchstaben äöü sind 3 Zeichen in unicode (also für das Versenden) aber 6 Bytes/8-Bit-Character. Dein Perl/JSON berechnet die Länge unter bestimmten Umständen anders und das führt dazu, dass der Request fehlerhaft eine falsche Länge (sprich in Characters statt in Bytes) enthält oder beim Empfangen eine falsche Länge erwartet wird.

Das entspringt wohl nicht einem Fehler des Moduls sondern entsteht im Zusammenspiel aus perl-Version, verschiedenen Modulen und includes und der verqueren Art in der perl mit unicode/UTF-8-Strings umgeht. Insbesondere verhalten sich diese Zusammenstellungen unterschiedlich.

Ich müsste also genauer wissen, ob sich das Problem im HTTPRequest-Modul eingrenzen lässt.

Kannst Du mal folgendes in FHEMWEB in Kommandofeld eingeben:

{( $defs{"fhem_remote_bot"}->{HU_DO_PARAMS}->{loglevel} = 2 )}

und dann den Request mit den Umlauten nochmals absenden. Der Inhalt des logs wäre interessant.

dann kannst Du das wieder zurücksetzen

{( delete ($defs{"fhem_remote_bot"}->{HU_DO_PARAMS}->{loglevel}) )}


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

asciidisco

Verstehe, leider scheint ein höheres debug level hier wenig zu bringen:

2017.02.26 18:38:55 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 18:38:55 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( send )
2017.02.26 18:38:55 5: TelegramBot_Set fhem_remote_bot: start send for cmd :send: and sendType :0:
2017.02.26 18:38:55 5: TelegramBot_SendIt fhem_remote_bot: called
2017.02.26 18:38:55 5: TelegramBot_SendIt fhem_remote_bot: try to send message to :xxxxxxxxxx: -:äöü: - :<undef>:
2017.02.26 18:38:55 4: TelegramBot_GetFullnameForContact # Contacts is xxxx:xxxxxx::
2017.02.26 18:38:55 4: TelegramBot_GetFullnameForContact # name is xxxxxxx
2017.02.26 18:38:55 4: TelegramBot_SendIt fhem_remote_bot: timeout for sent :30:
2017.02.26 18:38:55 2: HttpUtils url=<hidden>
2017.02.26 18:38:55 5: TelegramBot_Set fhem_remote_bot: send done succesful:
2017.02.26 18:38:55 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 18:38:55 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 18:38:55 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 18:38:55 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 18:39:25 5: TelegramBot_Callback fhem_remote_bot: called from SendIt
2017.02.26 18:39:25 3: TelegramBot_Callback fhem_remote_bot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2017.02.26 18:39:25 3: TelegramBot_Callback fhem_remote_bot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg xxxxxx : äöü
2017.02.26 18:39:25 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 18:39:25 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )
2017.02.26 18:39:25 4: TelegramBot_Set fhem_remote_bot: called
2017.02.26 18:39:25 4: TelegramBot_Set fhem_remote_bot: Processing TelegramBot_Set( ? )


<hidden> steht so im Log...

hartenthaler

Bei meinem Raspi mit Jessi lauten die Antworten ebenfalls 6, 3 und 12. Und ich habe keine Probleme mit Umlauten, wenn ich diese direkt über das Telegram-Device schicke.

Wenn ich aber über das TalkToMe/TalkToUser-Device (Chatbot) Nachrichten aus FHEM, wie etwas den Wetterbericht, über das Telegram-Device verschicke, dann werden die Umlaute zerstört und ein Text, der in FHEM korrekt aussieht, kommt beim Chat-Client dann so an:
Hier ist der aktuelle Wetterbericht für Berlin: Stark bewölkt.

Da ist irgendeine Codierung/Decodierung zuviel. Erstaunlich: das "ü" in "für Berlin" ist ok, das "ö" in "bewölkt" ist kaputt, was daher kommt, dass die Quellen für diese Teilstrings verschieden sind. Ich habe mal mitprotokolliert (von der Anfrage im Client "wie ist das wetter" bis zur Antwort durch meinen Chatbot) und bin der Meinung, dass der Fehler bereits in TalkToMe passiert und das Telegram-Device am Ergebnis unschuldig ist. Richtig?
2017.02.26 18:06:26 5: TelegramBot_Callback Telegram.James.Bot: called from Polling
2017.02.26 18:06:26 5: TelegramBot_Callback Telegram.James.Bot: data returned :{"ok":true,"result":[{"update_id":xxx,
"message":{"message_id":4819,"from":{"id":yyy,"first_name":"Hermann","last_name":"Hartenthaler"},"chat":{"id":zzz,"first_name":"Hermann","last_name":"Hartenthaler","type":"private"},"date":1488128785,"text":"wie ist das wetter"}}]}:
2017.02.26 18:06:26 5: TelegramBot_Deepencode Telegram.James.Bot: encoded a String from :true: to :true:
...
2017.02.26 18:06:26 4: TelegramBot_ParseMsg Telegram.James.Bot: text   :wie ist das wetter:
...
2017.02.26 18:06:26 5: TALKTOUSER TalkToUser_Hermann: called function TALKTOUSER_Notify()
2017.02.26 18:06:26 5: TALKTOUSER TalkToUser_Hermann: Telegram.James.Bot is having an update
...
2017.02.26 18:06:26 5: TALKTOUSER TalkToUser_Hermann: Update: msgText was set to wie ist das wetter in Telegram.James.Bot
...
2017.02.26 18:06:26 4: TALKTOUSER_IOWrite TalkToUser_Hermann: Calling IOWrite, lets see what happens
2017.02.26 18:06:26 5: TALKTOME_Write: Variable device - TalkToUser_Hermann
2017.02.26 18:06:26 5: TALKTOME_Write: Variable sourceDeviceName - Telegram.James.Bot
2017.02.26 18:06:26 5: TALKTOME_Write: Variable sourceDeviceType - TelegramBot
2017.02.26 18:06:26 5: TALKTOME_Write: Variable modSourceDeviceName - @Telegram.James.Bot:@aaa
2017.02.26 18:06:26 5: Starting notify loop for TalkToMe, 1 event(s), first is Query from TalkToUser_Hermann
...
2017.02.26 18:06:26 5: TALKTOME_Write: Variable query - wie ist das wetter (UTF8: )
2017.02.26 18:06:26 5: TALKTOME_Write: Variable query - wie ist das wetter (UTF8: 1)
...
2017.02.26 18:06:27 5: TALKTOME: called function TALKTOME_helpers_ReadingsTimestamp to get the reading 'description-2' from 'Wetter.Berlin.Vorhersage' with a default of 'Error'
2017.02.26 18:06:27 5: TALKTOME_DispatchToInterpreter: reply is: Hier ist der aktuelle Wetterbericht f r Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.
.
2017.02.26 18:06:27 5: TALKTOME_Write: Variable answer - Hier ist der aktuelle Wetterbericht f r Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.
. (UTF8: 1 / Valid: 1)
2017.02.26 18:06:27 5: TalkToMe: dispatch TALKTOUSER###TalkToUser_Hermann###REPLY###Telegram.James.Bot###TelegramBot###@Telegram.James.Bot:@xxx###Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.\n.
2017.02.26 18:06:27 4: TALKTOUSER_Parse TalkToMe: Variable TALKTOUSER: TALKTOUSER / device: TalkToUser_Hermann / answertype: REPLY / sourceDeviceName: Telegram.James.Bot / sourceDeviceType: TelegramBot / modSourceDeviceName: @Telegram.James.Bot:@xxx / answer: Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.
.
2017.02.26 18:06:27 5: TALKTOUSER_Parse TalkToMe: Variable answer - Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.
.
2017.02.26 18:06:27 4: TALKTOUSER_Parse TalkToMe: Updating Telegram.James.Bot with the reply
2017.02.26 18:06:27 5: msg @Telegram.James.Bot:@xxx 0 | | Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.\n.
2017.02.26 18:06:27 5: Cmd: >msg TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.\n.<
2017.02.26 18:06:27 5: Cmd: >set Telegram.James.Bot message  TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.\n.<
2017.02.26 18:06:27 4: TelegramBot_Set Telegram.James.Bot: called
2017.02.26 18:06:27 4: TelegramBot_Set Telegram.James.Bot: Processing TelegramBot_Set( message )
2017.02.26 18:06:27 5: TelegramBot_Set Telegram.James.Bot: start send for cmd :message: and sendType :0:
2017.02.26 18:06:27 5: TelegramBot_SendIt Telegram.James.Bot: called
2017.02.26 18:06:27 5: TelegramBot_SendIt Telegram.James.Bot: try to send message to :Hermann_Hartenthaler: -:TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht für Berlin: Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.\n.: - :<undef>:
2017.02.26 18:06:27 4: TelegramBot_GetFullnameForContact # Contacts is xxx:Hermann_Hartenthaler::
2017.02.26 18:06:27 4: TelegramBot_GetFullnameForContact # name is Hermann_Hartenthaler
2017.02.26 18:06:27 4: TelegramBot_SendIt parseMode 0
2017.02.26 18:06:27 4: TelegramBot_SendIt Telegram.James.Bot: timeout for sent :30:
2017.02.26 18:06:27 5: TelegramBot_Set Telegram.James.Bot: message done succesful:
2017.02.26 18:06:27 3: msg globalMsg: ID=zzz.zzz.1 TYPE=push ROUTE=Telegram.James.Bot STATUS=OK PRIORITY=0 TITLE='' MSG='TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht für Berlin:  Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.\n.'
2017.02.26 18:06:27 5: Starting notify loop for TalkToMe, 1 event(s), first is Reply sent to TalkToUser_Hermann
...

2017.02.26 18:06:27 5: HttpUtils request header:
GET /api/xxx/sensors/2 HTTP/1.0
Host: 192.168.2.80
User-Agent: fhem
Content-Type: application/json

2017.02.26 18:06:27 5: HttpUtils request header:
GET /botxxx:xxx/getUpdates?offset=557823300&limit=5&timeout=120 HTTP/1.0
Host: api.telegram.org
agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8

2017.02.26 18:06:27 5: HttpUtils request header:
GET /api/xxx/sensors/7 HTTP/1.0
Host: 192.168.2.80
User-Agent: fhem
Content-Type: application/json

2017.02.26 18:06:27 5: HttpUtils request header:
GET /api/xxx/sensors/3 HTTP/1.0
Host: 192.168.2.80
User-Agent: fhem
Content-Type: application/json

2017.02.26 18:06:27 4: <hidden>: HTTP response code 200
2017.02.26 18:06:27 4: HttpUtils <hidden>: Got data, length: 988
2017.02.26 18:06:27 5: HttpUtils response header:
HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Sun, 26 Feb 2017 17:06:27 GMT
Content-Type: application/json
Content-Length: 988
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubdomains
2017.02.26 18:06:27 5: TelegramBot_Callback Telegram.James.Bot: called from SendIt
2017.02.26 18:06:27 5: TelegramBot_Callback Telegram.James.Bot: data returned :{"ok":true,"result":{"message_id":4820,"from":{"id":xxx,"first_name":"James","username":"fhem_James_Bot"},"chat":{"id":xxx,"first_name":"Hermann","last_name":"Hartenthaler","type":"private"},"date":1488128787,"text":"TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht f\u00fcr Berlin: Stark bew\u00c3\u00b6lkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bew\u00c3\u00b6lkt bis bedeckt. In den \u00c3\u00bcbrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt gr\u00c3\u00b6\u00c3\u009ftenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis m\u00c3\u00a4\u00c3\u009fig aus S\u00c3\u00bcdwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bew\u00c3\u00b6lkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus S\u00c3\u00bcdwest bis S\u00c3\u00bcd.\n."}}:
...
2017.02.26 18:06:27 5: TelegramBot_Deepencode Telegram.James.Bot: found a HASH
2017.02.26 18:06:27 5: TelegramBot_Deepencode Telegram.James.Bot: encoded a String from :TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht f r Berlin: Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.
.: to :TalkToUser_Hermann 0 | | Hier ist der aktuelle Wetterbericht für Berlin: Stark bewölkt. Meist niederschlagsfrei. Relativ mild. Heute Nachmittag und am Abend ist es zwischen der Prignitz und Uckermark stark bewölkt bis bedeckt. In den übrigen Landesteilen kommt auch kurzzeitig die Sonne zum Vorschein. Es bleibt größtenteils niederschlagsfrei. Die Temperatur liegt zwischen 7 und 10 Grad. Der Wind weht schwach bis mäßig aus Südwest.In der Nacht zum Montag ist es meist stark, teils aufgelockert bewölkt. Es bleibt niederschlagsfrei. Die Tiefsttemperatur liegt zwischen 6 und 3 Grad. Der schwache Wind weht aus Südwest bis Süd.
.:
2017.02.26 18:06:27 5: TelegramBot_Deepencode Telegram.James.Bot: found a HASH
2017.02.26 18:06:27 5: TelegramBot_Deepencode Telegram.James.Bot: found a HASH
2017.02.26 18:06:27 5: TelegramBot_Callback Telegram.James.Bot: after encoding
2017.02.26 18:06:27 5: TelegramBot_Callback Telegram.James.Bot: resulted in :SUCCESS: from SendIt
2017.02.26 18:06:27 5: Starting notify loop for Telegram.James.Bot, 3 event(s), first is sentMsgResult: SUCCESS
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

viegener

Zitat von: asciidisco am 26 Februar 2017, 18:47:49
Verstehe, leider scheint ein höheres debug level hier wenig zu bringen:


Ja das ist wohl richtig. Weiterer Versuch, kannst Du die Nachricht nochmals senden und direkt wenn die Fehlermeldung da ist ein list fhem_remote_bot und bitte das Ergebnis hier in code-tags einstellen?
rund ich muss erstmal rausfinden, ob die Nachricht korrekt gesendet wird oder ob nur die Antwort nicht vollständig empfangen wird.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

asciidisco

Klar. Gerne.

Internals:
   CFGFN
   DEF        xxxxx:xxxxxxx
   FAILS      0
   NAME       fhem_remote_bot
   NR         226
   POLLING    0
   SNAME      fhem_remote_bot
   STATE      Static
   TYPE       TelegramBot
   Token      xxxxx:xxxxxxxxx
   UPDATER    0
   URL        https://api.telegram.org/botxxxxxxx:xxxxxxx/
   WAIT       0
   me         xxxxxxxx:FHEMremote:@fhem_remote_bot
   sentLastResult NonBlockingGet timed out on read from <hidden> after 30s
   sentMsgId
   sentMsgPeer xxxxxxxx
   sentMsgPeerId xxxxxxxx
   sentMsgResult WAITING
   sentMsgText äüö
   Contacts:
     xxxxxx  xxxxxxx:xxxxxx:
   Hu_do_params:
     FD         26
     NAME
     addr       https://api.telegram.org:443
     boundary   TelegramBot_boundary-x0123
     buf
     code       200
     data       --TelegramBot_boundary-x0123

Content-Disposition: form-data; name="chat_id"



xxxxxxxx

--TelegramBot_boundary-x0123

Content-Disposition: form-data; name="text"



äüö

--TelegramBot_boundary-x0123

Content-Disposition: form-data; name="parse_mode"



Markdown

--TelegramBot_boundary-x0123--
     displayurl <hidden>
     header     agent: TelegramBot/1.0

User-Agent: TelegramBot/1.0

Accept: application/json

Accept-Charset: utf-8

Content-Type: multipart/form-data; boundary=TelegramBot_boundary-x0123
     hideurl    1
     host       api.telegram.org
     hu_blocking 0
     hu_portSfx
     loglevel   1
     method     POST
     path       /botxxxxxxx:xxxxxxxxx/sendMessage
     protocol   https
     redirects  0
     timeout    30
     url        https://api.telegram.org/botxxxxxx:xxxxxxx/sendMessage
     args:
       xxxxxxx
       äüö
       undef
       0
       undef
       1
     Hash:
     Sslargs:
   Hu_upd_params:
     header     agent: TelegramBot/1.0

User-Agent: TelegramBot/1.0

Accept: application/json

Accept-Charset: utf-8
     hideurl    1
     isPolling  update
     method     GET
     timeout    5
     url
   Helper:
     Dblog:
       Sentmsgid:
         Logdb:
           TIME       1488125760.2847
           VALUE      268
       Sentmsgpeerid:
         Logdb:
           TIME       1488175230.27618
           VALUE      XXXXXXXXXXX
       Sentmsgresult:
         Logdb:
           TIME       1488175230.27618
           VALUE      NonBlockingGet timed out on read from <hidden> after 30s
       State:
         Logdb:
           TIME       1488183747.69219
           VALUE      msg äüö
   Readings:
     2017-02-26 13:49:49   Contacts        xxxxx:xxxxxxx:
     2017-02-26 13:49:52   PollingErrCount 0
     2017-02-26 13:59:19   msgChat
     2017-02-26 13:59:19   msgFileId
     2017-02-26 13:59:19   msgId           256
     2017-02-26 13:59:19   msgPeer         xxxxxxxx
     2017-02-26 13:59:19   msgPeerId       xxxxxxxx
     2017-02-26 13:50:36   msgReplyMsgId   0
     2017-02-26 13:59:19   msgText         Test
     2017-02-26 13:59:19   prevMsgChat
     2017-02-26 13:59:19   prevMsgFileId
     2017-02-26 13:59:19   prevMsgId       256
     2017-02-26 13:59:19   prevMsgPeer     XXXXXXX
     2017-02-26 13:59:19   prevMsgPeerId   XXXXXXX
     2017-02-26 13:59:19   prevMsgReplyMsgId 0
     2017-02-26 13:59:19   prevMsgText     Test
     2017-02-27 07:00:30   sentMsgId
     2017-02-27 07:00:30   sentMsgPeerId   XXXXXXXX
     2017-02-27 07:00:30   sentMsgResult   NonBlockingGet timed out on read from <hidden> after 30s

Qwz80

Hi,

seit dem Update Heute läuft der SVG Versand leider gar nicht mehr. Fehler sind u.A.

ERROR evaluating my $NAME='Telegram';my $EVENT='msgText: Bad';my $EVTPART1='Bad';my $EVTPART0='msgText:';my $SELF='TelegramSVGsend3';my $TYPE='TelegramBot';{TelegramBot_ExecuteCommand($defs{"Telegram"}, 312456017, '{plotAsPng("SVG_FileLog_Luftfeuchtigkeit_3")}'); return;}: Not enough arguments for main::TelegramBot_ExecuteCommand at (eval 3568) line 1, near "'{plotAsPng("SVG_FileLog_Luftfeuchtigkeit_3")}')"

3: TelegramSVGsend3 return value: Not enough arguments for main::TelegramBot_ExecuteCommand at (eval 3568) line 1, near "'{plotAsPng("SVG_FileLog_Luftfeuchtigkeit_3")}')"




Ich nutze z.B sowas, was bis gestern lief

Telegram:msgText:.Schlafzimmer {TelegramBot_ExecuteCommand($defs{"Telegram"}, 312456017, '{plotAsPng("SVG_FileLog_Luftfeuchtigkeit_1")}'); return;}

Muss ich etwas an den Parametern ändern? Hatte alles nach der Anleitung gemacht https://waschto.eu/telegrambot-kommuniziere-mit-deiner-fhem-installation