Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

ErzGabriel

Das IF reagiert aber, wenn ich was anderes daraus aufrufe.
Alles was ich im IF eingetragen habe, kann ich nutzen, ausser die Temperaturabfrage. Tippe ich die Temperaturabfrage so in die Befehlszeile ein, klappt sie auch, nur nicht im notify in der IF Schleife. Und da verstehe ich nicht warum.

viegener

@smart.builder: Ok erste Erkenntnis - das mit dem Zuspammen im Sekundentakt ist wirklich ein Fehler, die Logik mit steigender Dauer das Wiederversenden zu machen und das Abbruchkriterium war deaktiviert.

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

viegener

Habe gerade eine neue Versions in svn eingechecked mit 2 Veränderungen

- rename von bots in fhem funktioniert jetzt wie erwartet
- bei sendefehlern werden die folgeversuche erst nach Verzögerung durchgeführt

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

smart.builder

Danke Viegener.
maxRetries ist auf 0.
Nach dem letzten Update klappt es besser. Es werden keine automatischen Retries ausgelöst.
Meine Nachrichten werden zwar verschickt und kommen an,  die JSON - Callback Fehlermeldung kommt aber immer noch.

Mit Verbose 5 stand folgendes im Logfile (meine IDs, Namen usw. habe ich ersetzt):


2017.08.15 09:24:42 4: TelegramBot_Set TelegramBot: called
2017.08.15 09:24:42 4: TelegramBot_Set TelegramBot: Processing TelegramBot_Set( sendPhoto )
2017.08.15 09:24:42 5: TelegramBot_Set TelegramBot: start send for cmd :sendPhoto: and sendType :1:
2017.08.15 09:24:42 5: TelegramBot_SendIt TelegramBot: called
2017.08.15 09:24:42 5: TelegramBot_SendIt TelegramBot: try to send message to :xxx: -:/123/456/Photo.jpg: - :<undef>:
2017.08.15 09:24:42 4: TelegramBot_GetFullnameForContact # Contacts is 11111111:xxx:@zzz:
2017.08.15 09:24:42 4: TelegramBot_GetFullnameForContact # name is xxx
2017.08.15 09:24:42 5: TelegramBot_readToken: Read Telegram API token from file
2017.08.15 09:24:42 4: TelegramBot_SendIt TelegramBot: Filename for image file :/123/456/Photo.jpg:
2017.08.15 09:24:42 4: TelegramBot_SendIt TelegramBot: timeout for sent :30:
2017.08.15 09:24:42 5: TelegramBot_Set TelegramBot: sendPhoto done succesful:
2017.08.15 09:24:43 5: TelegramBot_Callback TelegramBot: called from SendIt
2017.08.15 09:24:43 5: TelegramBot_Callback TelegramBot: data returned :{"ok":true,"result":{"message_id":555555,"from":{"id":222222222,"first_name":"ttt_bot","username":"ttt_bot"},"chat":{"id":111111111,"first_name":"xxx","username":"zzz","type":"private"},"date":111111111111,"photo":[{"file_id":"qwertz","file_size":1044,"file_path":"photos/3423423432432428.jpg","width":90,"height":51},{"file_id":"qwertz","file_size":16768,"width":320,"height":180},{"file_id":"qwertz","file_size":79019,"width":800,"height":450},{"file_id":"qwertz","file_size":81244,"width":1280,"height":720}]}}:
2017.08.15 09:24:43 5: TelegramBot_Callback TelegramBot: after encoding
2017.08.15 09:24:43 3: TelegramBot_Callback TelegramBot: resulted in Callback returned no valid JSON: JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at ./FHEM/50_TelegramBot.pm line 2104.
  from SendIt
2017.08.15 09:24:43 4: TelegramBot_Callback TelegramBot: retry count so far 1 (max: 0) for msg xxx : /123/456/Photo.jpg
2017.08.15 09:24:43 3: TelegramBot_Callback TelegramBot: Reached max retries (ret: Callback returned no valid JSON: JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at ./FHEM/50_TelegramBot.pm line 2104.
) for msg xxx : /123/456/Photo.jpg


Gruß
Viktor

viegener

@smart.builder: Ich kann nicht erkennen, dass an dem JSON-String etwas problematisch ist und bisher bist Du der einizige, den ich kenne, bei dem ein Problem auftritt mit JSON. Ich vermute auch, dass es mit der JSON-Version/Variante in Deienr Installation zusammenhängt. Eine kurze Recherche hat nur ergeben, dass die einfache perl-json-Unetrstützung nicht threadsafe ist, es könnte also passieren, dass das Problem auftritt, wenn im Hintergrund von einem anderen Thread gerade auch JSON-Bearbeitet wird.

Es gibt wohl eine CPAN-Json-XS-Bibliothek, die threadsafe wäre, vielleicht kannst Du ja die mal verwenden:

https://metacpan.org/pod/Cpanel::JSON::XS

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

awel

Hallo,
seit dem letzten Update vom 14.08.2017 funktioniert TelegramBot bei mir nicht mehr. Nachrichten werden nicht geschickt, der Bot reagiert nicht und ich erhalte z.B. folgende Fehlereinträge:
2017.08.15 17:48:40 3: TelegramBot_Callback TeleBot: resulted in NonBlockingGet: returned write to https://api.telegram.org:443 timed out from SendIt
2017.08.15 17:48:40 3: TelegramBot_Callback TeleBot: Reached max retries (ret: NonBlockingGet: returned write to https://api.telegram.org:443 timed out) for msg ...


Nach dem Rücksetzen auf die Version vor dem Update funktioniert Telegram fehlerfrei wie gewohnt.

MfG Achim

Nachtrag:
Hatte gerade auch mit der alten Version einen Fehler, den ich so regelmäßig mit der neuen Version hatte:
2017.08.15 18:09:58 3: TelegramBot_Callback TeleBot: resulted in NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first from SendIt

Danach kam die Meldung vom Bot aber doch - allerdings verspätet

viegener

@awel Wann war denn vor dem Update am 14.8. Dein letztes Update?
(Die Änderungen vom Wochenende sind relativ unkritisch für den Verbindungsaufbau)

Hast Du bei dem Update auch noch etwas anderes geändert (Server, perl, etc )?
Tritt das Problem nur einmalig auf oder dauernd?
Wird auch nichts mehr empfangen?


ZUm Nachtrag: Das Problem tritt nach einem Neustart gelegentlich auch bei mir auf, dies halte ich bisher für einen perl-Fehler, denn darauf weisen die google-quellen hin...



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

awel

@viegener:
Danke für die schnelle Reaktion! Zu Deinen Fragen:

  • Das letzte Update vorher war am 13.08.14
  • Ich habe nichts weiter geändert, nur brav Updates von fhem durchgeführt
  • In den Logs der letzten 4 Wochen finden sich keine Fehlereinträge zu Telegram, auch nicht der im Nachtrag gemeldete Eintrag nach einem Neustart. Telegram hat bisher sogar einen Neustart immer problemlos gemeldet. Es finden sich nur Einträge wie "Line 1077: 2017.08.11 00:00:28 3: TelegramBot_Callback TeleBot: Digest: Number of poll failures on 2017-08-10 is :0:", evtl. auch mal mit Wert 1 oder 2. Sieht eigentlich alles gut aus.
  • Einmalig oder dauernd? Ich habe es erst heute bemerkt, da Telegram nicht funktionierte - es wird aber auch nicht jeden Tag gefordert. TelegramBot müsste zumindest bei der oben geposteten Fehlermeldung empfangen haben: Die Message sollte eine Antwort von fhem auf eine Anfrage per Telegram sein, die muss also empfangen und ausgewertet worden sein.
Besten Dank und Gruß,
Achim

viegener

#1508
@haus-automatisierung.com: Seit wann passiert das bei Dir? Du beschreibst zwei Probleme - Hängen von FHEM und dann der SSLwants a read first. Kannst Du etwas genauer beschreiben seit wann welches Problem auftrutt?

Irgendwie its hier https://forum.fhem.de/index.php/topic,75464.0.html eine ähnliche Beschreibung, aber ich bin nicht sicher, ob dasa wirklich so ist.

Hast Du nur bei Telegrambot ein verbose 5 gesetzt
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hanswerner1

Zitat von: haus-automatisierung.com am 16 August 2017, 00:01:41
Ich habe das Problem ebenfalls seit heute. FHEM hängt sich komplett weg für ein paar Minuten. Dann kommt es wieder und der erste Eintrag im Log sieht so aus:

Ich habe seit gestern genau das gleiche Problem, alle paar Minuten hängt sich FHEM für ca. 4min weg.
Im Log sehe nur diese Fehlermeldung:
TelegramBot_Callback WEB_Telegram: resulted in NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first from Polling

Hab jetzt erstmal Telegram in der fhem.cfg auskommentiert, seit dem sind die Hänger weg.


Papaloewe

#1510
Bei mir auch dasselbe!  :'(
Aufgefallen ist mir das gestern Abend.

Die Web-GUI ist nur sporadisch für kurze Zeit erreichbar, darum fällt mir es auch schwer in das LOG zu schauen. Automatische Operationen (Notifies, DOIFs, ect.) werden teilweise auch sehr verzögert ausgeführt.

Das Polling vom TelegramBot auf 0 zu setzen scheint erstmal zu helfen!

tschu

+1
dito, bei mir auch das gleiche:


2017.08.15 22:02:47.773 2: TelegramBot_DoUrlCommand TelegramBot: FAILED http access returned error :https://api.telegram.org/bot123456789:AaBbCcDdEeFfGgHhIiJjKk_L123M_NnOoPpQq/getMe: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first:


Fhem gekillt - TelegramBot auskommentiert - danach läuft's wieder rund.


neumann

Modulentwickler
- Spotify #72490
- Nello #75127

Frank_Huber

Bei mir keine Ausfälle. Hab auf 4 Instanzen Telegram laufen. Allerdings ohne das letzte Telegram Modul Update.

Ma_Bo

Bei mir bisher auch keine Ausfälle, letztes FHEM Update war gestern gegen 10Uhr.

Grüße Marcel
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.