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: JoeALLb am 10 Oktober 2016, 12:09:33
ok, ein revert ist nicht so einfach, da ich configDB verwende und meine Konfiguration sich daher nicht im Backup befindet....

Anbei ein Auszug ais dem VerboseLog 5.
Meines erachtens sehe ich dort den Text, den ich per Handy an den Pot sende (einmal den sinnvollen text "ggggggvv",  einmal "tttttttttttt").
Beide Texte habe ich nur am Handy eingegeben, und sie erscheinen tatsächlich im TemegramBot-Log. Im Modul bei FHEM erscheinen sie
jedoch nicht.
Könnte das schon weiterhelfen?

2016.10.10 12:03:23 5: TelegramBot_ParseUpdate telegram: data returned :{"ok":true,"result":[{"update_id":461154800,
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :1: to :1:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found an ARRAY
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :2124: to :2124:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :tttttttttttt: to :tttttttttttt:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :######: to :######:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :147####307: to :147####307:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :private: to :private:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :147####307: to :147####307:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :######: to :######:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :147####803: to :147####803:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :461154###: to :46###4800:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_UpdatePoll telegram: called
2016.10.10 12:03:23 4: TelegramBot_UpdatePoll telegram: initiate polling with nonblockingGet with 60s
2016.10.10 12:03:23 2: TelegramBot_Callback telegram: resulted in :SUCCESS: from Polling
2016.10.10 12:03:23 5: TelegramBot_Callback telegram: called from Polling
2016.10.10 12:03:23 5: TelegramBot_ParseUpdate telegram: data returned :{"ok":true,"result":[{"update_id":461#####01,
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :1: to :1:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found an ARRAY
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :147####803: to :147####803:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :private: to :private:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :147####307: to :147####307:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :######: to :######:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :147####307: to :147####307:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :######: to :######:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :ggggggvv: to :ggggggvv:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :2125: to :2125:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: encoded a String from :461#####01: to :461#####01:
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.10 12:03:23 5: TelegramBot_UpdatePoll telegram: called
2016.10.10 12:03:23 4: TelegramBot_UpdatePoll telegram: initiate polling with nonblockingGet with 60s
2016.10.10 12:03:23 2: TelegramBot_Callback telegram: resulted in :SUCCESS: from Polling


Auch bei Dir die Frage gibt es 2 Bots in derselben FHEM-Instanz?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

JoeALLb

Nein, nur einer!!

root@debian:/opt/fhem#  perl fhem.pl  7072 "list TYPE=TelegramBot"|grep NAME
   NAME       telegram
   SNAME      telegram
     NAME
     NAME
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

RaspiCOC

ZitatKurze Frage: Benutzt Du zwei unabhängige Bots, die beide per Polling Nachrichten empfangen?

Ja, das ist richtig! Ich könnte aber einen zu Testzwecken deaktivieren, was ich jetzt gleich mal machen werde.

EDIT: Oder auch nicht, da ich gerade sehe, dass es kein "disable" gibt. Allerdings, jetzt etwa 1,5 h nach dem Reset kommen eingehende Nachrichten noch immer an.

viegener

Zitat von: RaspiCOC am 10 Oktober 2016, 13:08:01
Ja, das ist richtig! Ich könnte aber einen zu Testzwecken deaktivieren, was ich jetzt gleich mal machen werde.

EDIT: Oder auch nicht, da ich gerade sehe, dass es kein "disable" gibt. Allerdings, jetzt etwa 1,5 h nach dem Reset kommen eingehende Nachrichten noch immer an.

Das disable (zumindest kein empfang) geht über setzen des Pollingtimeouts auf 0

Ich denke aber, dass das die Erklärung ist, ich hatte so etwas zu Testzwecken auch in Betrieb aber habe es in letzter Zeit nicht mehr genutzt, deshalb ist mir das wohl nicht aufgefallen. Ich versuche eine Testversion zu machen bevor ich morgen geschäftlich wieder unterwegs bin.

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

RaspiCOC

Ok, pollingtimeout ist jetzt auf 0.

Werde das jetzt mal ein paar Tage beobachten.

OT: Das schöne an diesem Modul ist, dass es eine deutliche schnellere Kommunikation/Interaktion zwischen User und FHEM ermöglicht, als das WebFrontend oder andFHEM es können.

JoeALLb

... da schließe ich mich an: ich versende über dieses Modul zwischenzeilich sogar Statusmeldungen von meinem Internet-Router (DHCP-IP-änderungen, gewisse WLAN-Ereignisse, etc...) Sehr tolles Modul für solche Dinge!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

viegener

Zitat von: JoeALLb am 10 Oktober 2016, 14:32:23
... da schließe ich mich an: ich versende über dieses Modul zwischenzeilich sogar Statusmeldungen von meinem Internet-Router (DHCP-IP-änderungen, gewisse WLAN-Ereignisse, etc...) Sehr tolles Modul für solche Dinge!

Vielen Dank für die Blumen :)

Das Problem mit mehreren parallelen Bots werde ich wohl hoffentlich auch lösen können...

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

JoeALLb

Zitat von: viegener am 10 Oktober 2016, 14:36:46
Das Problem mit mehreren parallelen Bots werde ich wohl hoffentlich auch lösen können...

Aber mir hilft das nicht, oder? Denn ich habe ja nur einen Bot...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

viegener

Zitat von: JoeALLb am 10 Oktober 2016, 14:52:24
Aber mir hilft das nicht, oder? Denn ich habe ja nur einen Bot...

Ja, dazu habe ich leider noch keine Lösung, vermute aber, dass es vielleicht am JSON-Modul oder am Encoding liegen könnte.

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

viegener

@JoeALLb: im github befindet sich jetzt eine Testversion, die mehr logausgaben enthält. Vielleicht kannst Du das mal ausprobieren und nochmal den log mit verbose 5 posten?

@RaspiCOC: die Version in github enthält auch Änderungen für mehrere Bots, das sollte hoffentlich auch gehenn Rückmeldung erwünscht.

github-Link: https://github.com/viegener/Telegram-fhem/blob/master/50_TelegramBot.pm
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

JoeALLb

Anbei mein Log nach einem shutdown/restart mit dem neuen Modul.
Danach habe ich vom Handy an den Bot den schlauen Text "-gggggggggggggggg" geschickt.
Im Log finde ich den wieder, jedoch in keinem Reading des Moduls, welches mir immer noch
PollingLastError=NonBlockingGet timed out on read from <hidden> after 125s
ausgibt. Ich hoffe, das hilft weiter.?!

2016.10.11 07:55:54 3: TelegramBot_Define telegram: called
2016.10.11 07:56:37 4: TelegramBot_Set telegram: called
2016.10.11 07:56:37 4: TelegramBot_Set telegram: Processing TelegramBot_Set( ? )
2016.10.11 07:56:37 4: TelegramBot_Set telegram: called
2016.10.11 07:56:37 4: TelegramBot_Set telegram: Processing TelegramBot_Set( ? )
2016.10.11 07:56:37 5: TelegramBot_Get telegram: called
2016.10.11 07:56:37 5: TelegramBot_Get telegram: Processing TelegramBot_Get( ? )
2016.10.11 07:57:15 5: TelegramBot_Callback telegram: called from Polling
2016.10.11 07:57:15 5: TelegramBot_Callback telegram: data returned :{"ok":true,"result":[]}:
2016.10.11 07:57:15 5: TelegramBot_Deepencode telegram: found an ARRAY
2016.10.11 07:57:15 5: TelegramBot_Deepencode telegram: encoded a String from :1: to :1:
2016.10.11 07:57:15 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.11 07:57:15 5: TelegramBot_Callback telegram: after encoding
2016.10.11 07:57:15 5: TelegramBot_Callback telegram: polling returned result? 0
2016.10.11 07:57:15 5: TelegramBot_UpdatePoll telegram: called
2016.10.11 07:57:15 4: TelegramBot_UpdatePoll telegram: initiate polling with nonblockingGet with 60s
2016.10.11 07:57:15 2: TelegramBot_Callback telegram: resulted in :SUCCESS: from Polling
2016.10.11 07:57:37 5: TelegramBot_Callback telegram: called from Polling
2016.10.11 07:57:37 5: TelegramBot_Callback telegram: data returned :{"ok":true,"result":[{"update_id": 4611548XX,
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: found an ARRAY
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from : 4611548XX: to : 4611548XX:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :-gggggggggggggggg: to :-gggggggggggggggg:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :2130: to :2130:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :XXmyname: to :XXmyname:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :1488793XX: to :1488793XX:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :1476169057: to :1476169057:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :XXmyname: to :XXmyname:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :private: to :private:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :1488793XX: to :1488793XX:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: encoded a String from :1: to :1:
2016.10.11 07:57:37 5: TelegramBot_Deepencode telegram: found a HASH
2016.10.11 07:57:37 5: TelegramBot_Callback telegram: after encoding
2016.10.11 07:57:37 5: TelegramBot_Callback telegram: polling returned result? 1
2016.10.11 07:57:37 5: TelegramBot_UpdatePoll telegram: called
2016.10.11 07:57:37 4: TelegramBot_UpdatePoll telegram: initiate polling with nonblockingGet with 60s
2016.10.11 07:57:37 2: TelegramBot_Callback telegram: resulted in :SUCCESS: from Polling



Anbei noch ein list des Bots
fhem> list telegram
Internals:
   CFGFN
   DEF        155MYBOT9588:####API####0
   FAILS      0
   NAME       telegram
   NR         258
   OLD_POLLING 9
   POLLING    9
   SNAME      telegram
   STATE      Polling
   TYPE       TelegramBot
   Token      155MYBOT9588:####API####0
   UPDATER    0
   URL        https://api.telegram.org/bot155MYBOT9588:####API####0/
   WAIT       0
   me         155MYBOT9588:cXXX5:@myNBot
   offset_id  461154803
   sentLastResult SUCCESS
   sentMsgId  2129
   sentMsgPeer
   sentMsgPeerId 1488793XX
   sentMsgResult SUCCESS
   sentMsgText Image: /mnt/surveillance/@Snapshot/FOSCAM-R2-20161010-1800410122.jpg
   Contacts:
   Hu_do_params:
     NAME
     addr       https://api.telegram.org:443
     boundary   TelegramBot_boundary-x0123
     buf        HTTP/1.1 200 OK
Server: nginx/1.10.1
Date: Tue, 11 Oct 2016 05:56:15 GMT
Content-Type: application/json
Content-Length: 538
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

{"ok":true,"result":{"message_id":2129,"from":{"id":155MYBOT9588,"first_name":"cXXX5","username":"myNBot"},"chat":{"id":1488793XX,"first_name":"XXmyname","type":"private"},"date":1476168975,"photo":[{"file_id":"AgADBAADuKcxG7SvSgk2EnvH7VpSJhjfaBkABNrDZYPol3k-a80BAAEC","file_size":1001,"width":90,"height":51},{"file_id":"AgADBAADuKcxG7SvSgk2EnvH7VpSJhjfaBkABPGP_mFF5QYVbM0BAAEC","file_size":10410,"width":320,"height":180},{"file_id":"AgADBAADuKcxG7SvSgk2EnvH7VpSJhjfaBkABNP4TiX2Rmxybc0BAAEC","file_size":21445,"width":640,"height":360}]}}
     code       200
     conn
     data
     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
     httpheader HTTP/1.1 200 OK
Server: nginx/1.10.1
Date: Tue, 11 Oct 2016 05:56:15 GMT
Content-Type: application/json
Content-Length: 538
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
     hu_blocking 0
     hu_filecount 1
     loglevel   4
     method     POST
     path       /bot155MYBOT9588:####API####0/sendPhoto
     protocol   https
     redirects  0
     timeout    30
     url        https://api.telegram.org/bot155MYBOT9588:####API####0/sendPhoto
     args:
       1488793XX
       /mnt/surveillance/@Snapshot/FOSCAM-R2-20161010-1800410122.jpg

       1

       1
     Hash:
     Sslargs:
   Hu_upd_params:
     FD         23
     NAME
     addr       https://api.telegram.org:443
     buf
     code       200
     displayurl <hidden>
     header     agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
     hideurl    1
     host       api.telegram.org
     httpheader HTTP/1.1 200 OK
Server: nginx/1.10.1
Date: Tue, 11 Oct 2016 06:02:38 GMT
Content-Type: application/json
Content-Length: 23
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
     hu_blocking 0
     hu_filecount 8
     isPolling  update
     loglevel   4
     method     GET
     offset     461154803
     path       /bot155MYBOT9588:####API####0/getUpdates?offset=461154803&limit=5&timeout=60
     protocol   https
     redirects  0
     timeout    125
     url        https://api.telegram.org/bot155MYBOT9588:####API####0/getUpdates?offset=461154803&limit=5&timeout=60
     Hash:
     Sslargs:
   Readings:
     2016-10-11 08:54:56   PollingErrCount 284
     2016-10-11 08:54:56   PollingLastError NonBlockingGet timed out on read from <hidden> after 125s
     2016-10-11 08:56:15   sentMsgId       2129
     2016-10-11 08:56:15   sentMsgResult   SUCCESS
   sentQueue:
Attributes:
   DbLogExclude .*
   allowUnknownContacts 0
   cmdFavorites /short
   cmdKeyword dofhem
   cmdRestrictedPeer 1488793XX 133974XXX XXmyname
   comment    favorites
set Sonos_Kueche play;set Sonos StopAll; /kuch=setreading telegram currentSpeakPlayer Sonos_Wohnzimmer ; /all=setreading telegram currentSpeakPlayer Sonos_Joe ; /wohnzimmer=setreading telegram currentSpeakPlayer Sonos_Wohnzimmer ; /kinder=setreading telegram currentSpeakPlayer Sonos_Jim,Sonos_Joe ; /schlafzimmer=setreading telegram currentSpeakPlayer Sonos_Schlafzimmer ; /all=setreading telegram currentSpeakPlayer Sonos_Jim,Sonos_Joe,Sonos_Schlafzimmer,Sonos_Wohnzimmer ; /speakvolume=setreading telegram currentSpeakVolume ; /snap=set CamCP snap
   defaultPeer 1488793XX
   event-on-change-reading .*
   group      telegram
   pollingTimeout 60
   pollingVerbose 2_Log
   room       2 Todo,4 Webcam,System
   verbose    5
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

RaspiCOC

Die Github-Version werde ich mal testen. Schaffe ich vielleicht heute. [Was passiert da eigentlich bei einem "update check / update"? Wird die dann wieder durch die offizielle ersetzt?]

Ansonsten laufen jetzt in- und outbound Nachrichten einwandfrei, nachdem ich den zweiten Bot auf send-only gesetzt hatte.

RaspiCOC

Github-Version: Habe ich auf den FHEM-Pi gepackt. Dann mittels reload 50_TelegramBot aktiviert. Kein FHEM Restart.

Dann den zweiten Bot "Alarmbot" wieder auf PollingTimeout 25 gesetzt. Mal ausprobiert. Verzögerung von wenigen Sekunden. Ersten Bot "FHEMBot" getestet. Keine Nachricht geht ein. Beide Bots resettet. Alarmbot outbound geschickt; kommt sofort an. Inbound funktionierte ebenfalls. FHEMBot outbound funktionierte ebenfalls. Inbound leider nun hier Fehlanzeige.

Schreib mir mal, was ich systematisch testen soll. Vielleicht macht das Sinn.

JoeALLb

mir wurde gesagt, dass der TelegramBot einen kompletten fhem-restart benötigt und ein simples reload nicht ausreicht. Vielleicht kannst Du das noch testen?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

RaspiCOC

shutdown restart wird gemacht. Sehe aber gerade, dass eine neue Version (vielleicht liegt es aber daran, dass ich jetzt eine inofficial Version habe) über die Update-Verteilung reinkommt. Verzichte jetzt mal auf das Update...