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: Reinerlein am 15 Februar 2016, 13:09:05
Zu dem ausfallenden Internet:
Ich habe das mal gerade beobachtet. Erst steht dort ein "WAITING" drin, und nach kurzer Zeit (vielleicht 20-60s, ich habe leider nicht auf die Uhr gesehen) dann "NonBlockingGet: returned connect to to https://api.telegram.org:443 timed out" (mit dem doppelten "to").

Wie möchtest du denn a) erkennen? Zwischen b) und c) sehe ich ja noch eine gute Differenzierbarkeit, aber bei a) hört die Erkennbarkeit doch auf, oder? Sonst könntest du mit deinem Code ja die allgemeine Fehlersuche in Fhem revolutionieren :)

Hallo Reiner,
das mit der Meldung hilft, denn das entspricht der Meldung, die ich bei mir provoziert habe.

Bei a) war ich vielleicht nicht ausführlich genug. Ich meinte damit, wenn beim Erstellen der Daten innerhalb von FHEM für den Request ein Problem auftritt (Content zu lang, Contact nicht bekannt, etc), ist das voraussichtlich nicht selbstreparierend. Es gibt die Phase in dem die Daten für den Request zusammengestellt werden, bevor der eigentliche Request an die HTTPUtils/http-nonblocking get übergeben wird. Diesen Fall kann ich im Code natürlich unterscheiden. Sollte hier ein Problem auftreten würde ich keine Wiederholung versuchen.

Also keine Revolution, nicht mal besonders ausgefuchst...
Gruss,
Johannes

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

viegener

Zitat von: Reinerlein am 09 Februar 2016, 13:52:12
Hallo Johannes,

besteht die Möglichkeit, dass das Modul Nachrichten für den Versand puffert, wenn gerade keine Verbindung zum Internet besteht?

Ich habe momentan eine halbdefekte Fritzbox im Betrieb (der Austausch zieht sich leider hin) die in unmotivierten Zeitabständen das Internet neu verbindet. Wenn gerade in einem solchen Zeitraum eine Message versendet werden sollte, wird sie nach einer Timeout-Fehlermeldung verworfen...

Grüße
Reiner

@Reiner: So  ich habe in github mal eine erste Version gestellt, die Nachrichten puffert und weider versendet in abgestuften Intervallen.
Es gibt esin Attribut maxRetries, bei dem man die Werte 0 (kein erneuter Versuch) bis 5 (5 weitere Sendeversuche) einstellen kann. Der erste Neuversuch findet nach 10s statt, dann nach 100s, 1000s(15min), 10000(~3h), ~1tag

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

ulli

Ich habe zur Zeit immer das Problem das sich mein FHEM verabschiedet mit folgender Fehlermeldung im Log:
2016.02.21 00:00:17 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-02-20 is :1:
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.14/Carp.pm line 140.


Kann sich das wer erklären?

viegener

Zitat von: ulli am 21 Februar 2016, 10:59:07
Ich habe zur Zeit immer das Problem das sich mein FHEM verabschiedet mit folgender Fehlermeldung im Log:
2016.02.21 00:00:17 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-02-20 is :1:
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.14/Carp.pm line 140.


Kann sich das wer erklären?

Im ersten Moment bin ich mal überfragt, denn Carp ist ein perl-Core-Modul, dass vermutlich an verschiedenen Stellen indirekt zum Einsatz kommt.

Die TelegramBot-Meldung sagt eigentlich nur aus, dass über die letzten 24h nur einmal ein Problem beim Pollen von Nachrichten aufgetreten ist. Das ist also eher gut und eigentlich auch kein Fehler. Ob die danachfolgende Meldung damit zusammenhängt kann ich erstmal nicht beurteilen.

Du solltest mal global stacktrace einschalten, um damit mehr Info über den Verursacher zu bekommen. Ausserdem wäre es gut bei Telegram mal das Attribut verbose auf den Wert 5 zu setzen, um festzustellen, wo möglicherweise das Problem auftritt.

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

Spiff

Hi,

ich versuceh auch gerade, das Modul einzurichten.
Leider (, leider) ist fhem bei mir auf einem Windows-PC installiert und ich habe SSL-Probleme.
Nachrichten kommen weder rein, noch gehen sie raus. Über den Browser funktioniert es.

Ich habe diese beiden sslVersion-Einstellungen ausprobiert:

TLSv12:!SSLv3
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error SSL wants a read first SSL connect attempt failed with unknown error SSL wants a read first


SSLv23:!SSLv3:!SSLv2
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed


Ich nutze ActivePerl 5.16.3.1603 und das IO-Socket-SSL-Package ist in der Version 1.955 (site) und 1.84 (perl) installiert.

Hat jemand eine Idee, was ich noch probieren könnte?

Danke + Gruß
Spiff.

viegener

Zitat von: Spiff am 21 Februar 2016, 17:16:33
Hi,

ich versuceh auch gerade, das Modul einzurichten.
Leider (, leider) ist fhem bei mir auf einem Windows-PC installiert und ich habe SSL-Probleme.
Nachrichten kommen weder rein, noch gehen sie raus. Über den Browser funktioniert es.

Ich habe diese beiden sslVersion-Einstellungen ausprobiert:

TLSv12:!SSLv3
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error SSL wants a read first SSL connect attempt failed with unknown error SSL wants a read first


SSLv23:!SSLv3:!SSLv2
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed


Ich nutze ActivePerl 5.16.3.1603 und das IO-Socket-SSL-Package ist in der Version 1.955 (site) und 1.84 (perl) installiert.

Hat jemand eine Idee, was ich noch probieren könnte?

Danke + Gruß
Spiff.

Ich habe leider jetzt aktuell keinen Windows-Rechner mit perl / FHEM, deshalb kann ich vermutlich nicht helfen. Die erste Meldung kommt aber zumindest auch unter Linux vor. Normalerweise tritt diese Meldung unter Linux nur gelegentlich auf (bei mir). Vielleicht ist das auch unter Windows nur ein sporadischer Fehler?

Vielleicht gibt es ja andere, die es unter Windows zum Laufen gerbacht haben?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Spiff

Hi,

was mir vielleicht helfen würde, wäre, wenn jemand mir bestätigen könnte, dass es vielleicht mit den Versionen von IO::SOCKET::SSL, die ich drauf habe und der aktuellen fhem-Version nicht funktioniert.
Die aktuelle Version ist ja 2.024, die bekomme ich auf meiner Version von ActivePerl 5.16.3.1603 nicht installiert.
Ich kann Perl leider gerade nicht aktualisieren, weil dann wiederum ein anderes notweniges, aber veraltetes Package seinen Dienst versagt...  ::)

Könnte jemand mal auf IO::SOCKET::SSL 1.84 und/oder 1.955 downgraden und sehen, ob es auf Nicht-Windows-Systemen dann läuft?
Nur, wenns nicht zu umständlich ist... ich habe leider kein anderes System zur Verfügung.

Danke + Gruß
Spiff

The-Holgi

Hallo,
habe folgende Meldung im log gefunden:
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 319, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 555, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 972, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 1831, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 1841, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 1941, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 2006, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 2020, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 2024, <$fh> line 1323.


Hat jemand eine Idee was das zu bedeuten hat ?
Funktionieren tut das Modul wie gehabt, die Meldungen sind aber neu. Eventuell nach update von whezzy auf jessie aufgetaucht.

Gruß Holgi
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

viegener

@The-Holgi: Musste mich auch erst schlau machen, die Meldung ist neu mit perl 5.20. Sollte in diesem Fall nicht problematisch sein. Ich werde aber einen Fix machen, damit die Meldung nicht mehr auftauchen wird. Bei mir kommt sie wg. perl 5.14 nicht vor.

Danke für den Hinweis!
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

The-Holgi

HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

viegener

@The-Holgi: Im Github ist eine neue Version, die keine Fehler mehr produzieren sollte (hoffentlich)...

Ausserdem habe ich eine neue Möglichkeit hinzugefügt bei Favoriten noch eine Sicherheitsabfrage vorzusehen, damit man nicht unabsichtlich einen Befehl verschickt. Dazu setzt man einfach ein Fragezeichen vor den Favoriten. Also steht dann in der Liste so etwas wie:
list mydummy; ?set confirmationdevice on; set justanotherdevice off

Beim Aufruf des 2. Favoriten wird dann erst eine Rückfrage gesendet (Keyboard mit Befehl oder Abbruch) und nur wenn die Bestätigung gesendet wird beginnt die Ausführung.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

speex

Wenn ich die "Confirmation" - Abbreche liefert er mir immer wieder das Confirmation Keyboard zurück zeigt mir also nicht mehr die Standard "Favorite" befehle ansonsten wäre das ein klasse feature, Vielen Dank!! :)

viegener

@speex: Ich konnte das bisher bei mir nicht nachstellen, kannst Du mir sagen wo und wie genau das auftritt?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

speex

Wenn Ich einen Befehl absetze und die "Sicherheitsfrage" bestätige oder abbreche - ist egal - zeigt er mir immer wieder die sicherheitsfrage anstatt das ursprüngliche "favorite-keyboard" mit dem "favorite-attribut-command" komm ich dann wieder raus und er liefert mir wieder das favorite keyboard. - hoffe das war jetzt nachvollziehbar. :)

Ich drück halt immer faul auf das quadrat mit den vier punkten. :D

viegener

@speex: Der entscheidende Hinweis war das Quadrat mit den 4 Punkten.

Leider ist das von Dir beobachtete Verhalten eigentlich ein Fehler im telegram client. Die Custom-Keyboards werden eigentlich nur einmal angezeigt und sollten dann wieder verschwinden, der Telegram-Client merkt sich immer das letzte und zeigt es bei Druck auf den Knopf mit den 4 Punkten an. Wenn das letzte Custom-Keyboard eben die Bestätigungsabfrage war, erscheint eben das bei Druck auf den Knopf.

Da ich kein Custom-Keyboard liefern kann, ohne dass es angezeigt wird, habe ich leider keine Möglichkeit das von Dir gewünschte Verhalten (Nach der Bestätigung wird ein Favorite-Keyboard gesendet aber nicht angezeigt) herzustellen.

Leider musst Du nach der Bestätigung noch einmal das favorite-cmd senden, damit das keyboard wieder erscheint.


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