Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

AndiL

Hallo Telegramer,

bei userpic fällt mir gerade was ein.
Bei WA konnte man das auch von FHEM aus mit einem set-Befehl ändern. Ich hatte das benutzt um schon am Userpic einen bestimmten Zustand zu erkennen.

Geht das in Telegram ausschließlich über den Botfather oder gibt es da nicht noch eine Möglichkeit?

Gruß
Andi
FHEM 5.8 auf RasPi 3
***********************************
FB 7390, FS20, HM mit USB-CFG, 1-wire (DS1820 und DS2408), Buderus KM200 mit GB 152, Phillips HUE und Bastelkram....

viegener

Zitat von: Carsten am 14 Oktober 2016, 11:17:52
Soweit ich weiß, muss man den Bot einmal angeschrieben haben, damit der zurückschreiben darf. Spamschutz.

Ja das ist wichtig, und gilt für einen neuen Bot und auch für jeden zusäztlichen Benutzer.
Also ein Benutzer, der etwas vom Bot empfangen soll, muss zuerst einmal den Bot kontaktieren (also ihm eine Nachricht schicken)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: AndiL am 14 Oktober 2016, 13:55:23
Hallo Telegramer,

bei userpic fällt mir gerade was ein.
Bei WA konnte man das auch von FHEM aus mit einem set-Befehl ändern. Ich hatte das benutzt um schon am Userpic einen bestimmten Zustand zu erkennen.

Geht das in Telegram ausschließlich über den Botfather oder gibt es da nicht noch eine Möglichkeit?

Gruß
Andi

Bisher gibt es meines Wissens nach nur diese Möglichkeit und leider nicht über das API
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: RaspiCOC am 11 Oktober 2016, 23:00:12
Jawoll, funktioniert so gut, dass ich das attr via TelegramBot gesetzt habe und dann das Update ebenfalls remote starten konnte!  ;D ;D ;D

Jetzt muss nur noch diese Version offiziell aufgenommen werden.

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
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

ChrisK

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 ;)

viegener

Zitat von: JoeALLb am 14 Oktober 2016, 08:49:29
Rückfrage zu meine m Problem: So wie ich es verstehe, scheint es eine besonderheit mit MEINEM FHEM zu sein?!?
Da ich die empfangenen Texte im Log sehe, nur nicht in den Readings: Kann irgendetwas verhindern, dass der Text bei mir als Reading angezeigt wird?!?
Muss/Soll ich TelegramBot mal neu einrichten? Eigentlich sehe ich darin keinen Vorteil?!
Meine Installation ist natürlich aus den urzeiten des TelegramBot, aber das sollte ja kein Problem sein, oder?

Danke für die Unterstützung.

Ich habe mir gerade den neuen log von Dir vorgenommen und bisher habe ich keine Erklärung nicht mal eine Idee. Das Problem ist so auch noch von niemandem gemeldet worden zu sein.

Es könnte sein, dass ich eine spezielle debugversion für Dich erstellen muss, denn aus dem Logfile geht hervor, dass die Nachricht ankommt, decodiert wird, auch als Nachricht gezählt wird und dann undurchsichtiger weise nicht weiterverarbeitet, sondern der gesamte Teil dort übersprungen wird aber ohne irgendeine Fehlermeldung und auch ohne, dass die sub verlassen wird.

Ich würde heute oder morgen mal eine Debugversion erstellen mit der Du nochmals den Test machen könntest - Wir können auch loginfos per PN oder email austauschen wenn das einfacher ist und dann das Ergebnis / die Lösung hier posten.


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

Vampy20

Zitat von: viegener am 14 Oktober 2016, 19:02:28
Das Problem ist so auch noch von niemandem gemeldet worden zu sein.

Dann melde ich mich auch mal. Ich beobachte den Thread schon die ganze Zeit in der Hoffnung auf einer Lösung, hab das gleiche Problem wie JoeALLb. Kann ich irgendwie bei der Fehlersuche beitragen?
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 14 Oktober 2016, 19:47:22
Dann melde ich mich auch mal. Ich beobachte den Thread schon die ganze Zeit in der Hoffnung auf einer Lösung, hab das gleiche Problem wie JoeALLb. Kann ich irgendwie bei der Fehlersuche beitragen?

Ja sicher, erstmal könntest Du mit Informationen helfen:
- Was genau funktioniert nicht - Keine Readings - grundsätzlich nicht oder nur unter bestimmten Bedingungen
- Was für ein System (rechner/betriebssystem) verwendest Du
- Welche perl-version?
- gibt es im log file andere Einträge mit Fehlern?
- Hat es schon funktioniert - wenn ja seit wann nicht mehr?

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

Vampy20

Zitat von: viegener am 14 Oktober 2016, 21:15:15
Ja sicher, erstmal könntest Du mit Informationen helfen:

Raspbian 4.4.13+ (jessie) auf Raspberry Pi B+ Perl v5.20.2

Senden funktioniert, kann aber keine Daten "empfangen" obwohl im Log der Empfang dokumentiert wird. Hier z.B. das Empfangen der Nachricht "Test":

2016.10.14 21:59:45 5: TelegramBot_Callback telebot: called from Polling
2016.10.14 21:59:45 5: TelegramBot_ParseUpdate telebot: data returned :{"ok":true,"result":[{"update_id":372018023,
"message":{"message_id":299,"from":{"id":***,"first_name":"***","last_name":"***","username":"***"},"chat":{"id":***,"first_name":"***","last_name":"***","username":"***","type":"private"},"date":1476475185,"text":"Test"}}]}:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :1: to :1:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: found an ARRAY
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: found a HASH
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :Test: to :Test:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :299: to :299:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :private: to :private:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :***: to :***:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: found a HASH
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :1476475185: to :1476475185:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: found a HASH
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: encoded a String from :372018023: to :372018023:
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: found a HASH
2016.10.14 21:59:45 5: TelegramBot_Deepencode telebot: found a HASH
2016.10.14 21:59:45 5: UpdatePoll telebot: number of results 1
2016.10.14 21:59:45 5: UpdatePoll telebot: parse result
2016.10.14 21:59:45 5: TelegramBot_UpdatePoll telebot: called
2016.10.14 21:59:45 4: TelegramBot_UpdatePoll telebot: initiate polling with nonblockingGet with 120s
2016.10.14 21:59:45 4: HttpUtils url=<hidden>
2016.10.14 21:59:45 4: TelegramBot_Callback telebot: resulted in :SUCCESS: from Polling


Anbei die Liste der aktuellen Readings:
Readings:
     2016-10-14 01:08:32   PollingErrCount 1
     2016-10-14 01:08:32   PollingLastError NonBlockingGet timed out on read from <hidden> after 245s
     2016-10-13 21:33:15   sentMsgId       296
     2016-10-13 21:33:15   sentMsgResult   SUCCESS

Somit fehlen die Readings bzgl. Empfang. Der ErrCount war schon mal auf über 300.

Es hat schon mal funktioniert, etwa seit Dienstag nicht mehr.

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

RitterSport

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.


Vampy20

Ich hab jetzt mal mein Device gelöscht und neu angelegt. Scheint zu laufen.
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 14 Oktober 2016, 22:34:13
Ich hab jetzt mal mein Device gelöscht und neu angelegt. Scheint zu laufen.

Also jetzt kommen die Nachrichten wieder an, somit Problem gelöst?

@JoeALLb: Wäre es möglich, dass Du das auch mal versuchst (Also Device neu anlegen)?



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

viegener

Ich glaube jetzt habe ich es verstanden: Kann es sein, dass bei Euch das Attribut allowUnknownContacts auf 0 gesetzt ist?
Bei JoeALLb ist es im list enthalten. War es bei Dir, Vampy20, auch vorher gesetzt?

Wenn das gesetzt ist, muss der Kontakt in der Kontaktliste enthalten sein, damit die Nachricht in den Readings auftaucht. Nachrichten von unbekannten Kontakten werden verworfen.



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

Vampy20

Das ist es, ich hatte/hab das Attribut gesetzt.
Die Frage ist nur wie konnten die Readings verschwinden und somit die Kontakte?

Jetzt funktioniert alles wieder, alle Readings sind da.
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 14 Oktober 2016, 23:06:17
Das ist es, ich hatte/hab das Attribut gesetzt.
Die Frage ist nur wie konnten die Readings verschwinden und somit die Kontakte?

Jetzt funktioniert alles wieder, alle Readings sind da.

Die readings werden ja im statefile abgelegt, wenn der bei einem absturz verlorengeht oder beim start nicht gelesen werden kann sind die readings und damit die kontakte weg. Es gibt ein attribut savestateoncontactchange, dass gesetzt werden kann um zumindest sicherzustellen, dass bei einer änderung der statefile geschrieben wird.

Ausserdem gibt es die möglichkeit mit set replaceContacts alte kontakte zum beispiel aus einem backup wieder zu setzen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können