Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

speex

Ich muss zu meiner Schande gestehen das mich das schon länger plagt da ich aber in der Vergangenheit nur selten so Kommandos abgesetzt habe hat mich das nicht gekümmert, bis vor kurzem.

Daher kann ich keine konkrete änderung nennen die das verursacht hat. ^^

Die Nachrichten sind identisch.

ich hoffe das ist so korrekt annonymisiert:

Internals:
   FAILS      0
   FUUID      ***
   NAME       teleBot
   NR         29
   OLD_POLLING 9
   POLLING    9
   SNAME      teleBot
   STATE      Polling
   TYPE       TelegramBot
   UPDATER    0
   WAIT       0
   me         ***:***:@***
   offset_id  ***
   sentLastResult SUCCESS
   sentMsgId  ***
   sentMsgOptions
   sentMsgPeer #***
   sentMsgPeerId ***
   sentMsgResult SUCCESS
   sentMsgText Image: /opt/fhem/webcam/IPCam_snapshot_2.jpg - 🚨🚪Tür Öffnung!
   sourceVersion $Id: 50_TelegramBot.pm 22708 2020-09-01 15:51:38Z viegener $
   AliasCmds:
     /cam       3
     /dor       4
     /heizen    6
     /lichtan   2
     /lichtaus  1
     /tv        5
   Contacts:
   HU_DO_PARAMS:
     NAME       
     addr       https://api.telegram.org:443
     auth       0
     boundary   TelegramBot_boundary-x0123
     buf       
     code       200
     compress   1
     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.16.1
Date: Mon, 07 Sep 2020 06:33:47 GMT
Content-Type: application/json
Content-Length: 714
Connection: close
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
     hu_blocking 0
     hu_filecount 38
     hu_port    443
     hu_portSfx
     loglevel   4
     method     POST
     path       /***/sendPhoto
     protocol   https
     redirects  0
     timeout    30
     url        https://api.telegram.org/***/sendPhoto
     args:
       ***
       /opt/fhem/webcam/IPCam_snapshot_2.jpg
       🚨🚪Tür Öffnung!
       1
       undef
       
       1
     hash:
     sslargs:
   HU_UPD_PARAMS:
     FD         4
     NAME       
     addr       https://api.telegram.org:443
     auth       0
     buf       
     code       200
     compress   1
     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
     hu_blocking 0
     hu_filecount 10606
     hu_port    443
     hu_portSfx
     isPolling  update
     loglevel   4
     method     GET
     offset     ***
     path       /***/getUpdates?offset=***&limit=5&timeout=20
     protocol   https
     redirects  0
     timeout    45
     url        https://api.telegram.org/***/getUpdates?offset=***&limit=5&timeout=20
     hash:
     sslargs:
   READINGS:
     2020-09-05 15:43:19   Contacts        ***
     2020-09-07 00:00:03   PollingErrCount 0
     2020-09-05 02:27:52   PollingLastError NonBlockingGet timed out on read from <hidden> after 45s
     2020-09-05 15:43:19   StoredCommands  meinKeyword list fl_Dor_Sensor state

     2020-09-05 15:43:19   msgChat         #***
     2020-09-05 15:43:19   msgChatId       ***
     2020-09-05 15:43:19   msgFileId       
     2020-09-05 15:43:19   msgId           ***
     2020-09-05 15:43:19   msgPeer         *
     2020-09-05 15:43:19   msgPeerId       ***
     2020-09-05 15:43:19   msgReplyMsgId   
     2020-09-05 15:43:19   msgText         meinKeyword list fl_Dor_Sensor state
     2020-09-05 15:43:19   prevMsgChat     #***
     2020-09-05 15:43:19   prevMsgFileId   
     2020-09-05 15:43:19   prevMsgId       *
     2020-09-05 15:43:19   prevMsgPeer     ***
     2020-09-05 15:43:19   prevMsgPeerId   ***
     2020-09-05 15:43:19   prevMsgReplyMsgId
     2020-09-05 15:43:19   prevMsgText     /s4@***
     2018-02-05 22:06:02   queryData       TBOT_FAVORITE_3
     2018-02-05 22:06:02   queryID         ***
     2018-02-05 22:06:02   queryPeer       ***
     2018-02-05 22:06:02   queryPeerId     ***
     2018-02-05 22:06:02   queryReplyMsgId 8
     2020-09-07 08:33:47   sentMsgId       ***
     2020-09-07 08:33:47   sentMsgPeerId   ***
     2020-09-07 08:33:47   sentMsgResult   SUCCESS
   inlinechats:
   sentQueue:
Attributes:
   allowUnknownContacts 0
   cmdFavorites /s
   cmdKeyword meinKeyword
   cmdRestrictedPeer *** *** ***
   cmdReturnEmptyResult 0
   cmdSentCommands /last
   defaultPeer ***
   favorites  /lichtaus[Licht aus]=set master_LED off;
/lichtan[Licht an]=set master_LED on;
/cam[Eingang Foto]=get IPCam image;
/dor[Tür Status]=list fl_Dor_Sensor state;
/tv[TV Ausschalten]=set W_S_Medien off;
/heizen[5min. Heizen]=set Heizung controlMode boost
   pollingTimeout 20
   pollingVerbose 0_None
   room       notification
   saveStateOnContactChange 1
   textResponseResult Nachricht : $peer\n Befehl:$cmd:\n Ergebnis:\n$result\n

viegener

@speex: nimm mal testweise das Attribut "textResponseResult" ganz heraus
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

speex


viegener

Zitat von: speex am 07 September 2020, 19:05:11
Mit entferntem "textResponseResult" selbes Ergebnis.

Dann habe ich erstmal gar keine Idee.

Kannst Du feststellen, ob das Kommando mehrfach ausgeführt wird oder nur das Ergebnis zweimal kommt?
Sind Gruppen beteiligt bei der Kommunikation mit dem Bot
Gibt es mehrere Bots
Ist FHEM auf aktuellem Stand

Mehr Informationen was wirklich passiert - welche Meldungen für welche Kommandos - nur Fehlermeldungen wären auch hilfreich, denn bisher gehe ich davon aus, dass das Problem nur bei Dir besteht
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

speex

Zu erster Frage weiß ich nicht wie ich das sicher beurteilen kann ich würde behaupten es wird nur einmal ausgeführt und doppelt geantwortet wenn ich den list command absetze erscheint folgendes im Eventmonitor:
2020-09-09 15:52:08 TelegramBot teleBot Contacts: ***
2020-09-09 15:52:08 TelegramBot teleBot msgId: ***
2020-09-09 15:52:08 TelegramBot teleBot msgPeer: ***
2020-09-09 15:52:08 TelegramBot teleBot msgPeerId: ***
2020-09-09 15:52:08 TelegramBot teleBot msgChat: #***
2020-09-09 15:52:08 TelegramBot teleBot msgChatId: ***
2020-09-09 15:52:08 TelegramBot teleBot msgText: /s4@***
2020-09-09 15:52:08 TelegramBot teleBot msgReplyMsgId:
2020-09-09 15:52:08 TelegramBot teleBot msgFileId:
2020-09-09 15:52:08 TelegramBot teleBot sentMsgResult: SUCCESS
2020-09-09 15:52:08 TelegramBot teleBot sentMsgId: ***
2020-09-09 15:52:08 TelegramBot teleBot sentMsgPeerId: ***
2020-09-09 15:52:08 TelegramBot teleBot sentMsgResult: SUCCESS
2020-09-09 15:52:08 TelegramBot teleBot sentMsgId: ***
2020-09-09 15:52:08 TelegramBot teleBot sentMsgPeerId: ***


Zu zweiter Frage ja der Bot ist in einer Gruppe und ich schicke die commands in die Gruppe.

Nein nur ein telegramBot ist definiert.

Fhem ist up to date.

viegener

Zitat von: speex am 09 September 2020, 16:00:09
Zu erster Frage weiß ich nicht wie ich das sicher beurteilen kann ich würde behaupten es wird nur einmal ausgeführt und doppelt geantwortet wenn ich den list command absetze erscheint folgendes im Eventmonitor:
2020-09-09 15:52:08 TelegramBot teleBot Contacts: ***
2020-09-09 15:52:08 TelegramBot teleBot msgId: ***
2020-09-09 15:52:08 TelegramBot teleBot msgPeer: ***
2020-09-09 15:52:08 TelegramBot teleBot msgPeerId: ***
2020-09-09 15:52:08 TelegramBot teleBot msgChat: #***
2020-09-09 15:52:08 TelegramBot teleBot msgChatId: ***
2020-09-09 15:52:08 TelegramBot teleBot msgText: /s4@***
2020-09-09 15:52:08 TelegramBot teleBot msgReplyMsgId:
2020-09-09 15:52:08 TelegramBot teleBot msgFileId:
2020-09-09 15:52:08 TelegramBot teleBot sentMsgResult: SUCCESS
2020-09-09 15:52:08 TelegramBot teleBot sentMsgId: ***
2020-09-09 15:52:08 TelegramBot teleBot sentMsgPeerId: ***
2020-09-09 15:52:08 TelegramBot teleBot sentMsgResult: SUCCESS
2020-09-09 15:52:08 TelegramBot teleBot sentMsgId: ***
2020-09-09 15:52:08 TelegramBot teleBot sentMsgPeerId: ***


Zu zweiter Frage ja der Bot ist in einer Gruppe und ich schicke die commands in die Gruppe.

Nein nur ein telegramBot ist definiert.

Fhem ist up to date.

Hast du irgendwelche automatismen (doif, msg, notify, etc) am laufen, die meldungen versenden?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

speex

Ein notify und ein doif die Nachrichten die dadurch abgesetzt werden kommen nur einmal.

viegener

Zitat von: speex am 14 September 2020, 19:02:10
Ein notify und ein doif die Nachrichten die dadurch abgesetzt werden kommen nur einmal.

1) Ich stochere einfach nur weiter rum, weil ich das Problem bei mir nicht nachstellen kann. Also vermute ich weiter etwas spezielles bei Dir.
Hier meinte ich, ob es einen Automatismus gibt, der auf Telegram-Nachrichten reagiert und möglicherweise doppelt versendet.

2) Generell: Hast Du sonst Spezialitäten in Deiner Installation? Versuche doch mal zu analysieren, ob Du von irgendwo Skripte verwendest die etwas besonderes machen?


Zitat von: speex am 09 September 2020, 16:00:09

Zu zweiter Frage ja der Bot ist in einer Gruppe und ich schicke die commands in die Gruppe.



3) Versuche dochmal den Bot direkt zu kontaktieren (ohne Gruppe) - ändert das etwas?

4) Gibt es Favoriten, die nur einmalige Antworten versenden - Wenn ja was ist der Unterschied zwischen diesen (konkrete Beispiele können hilfen)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

h002

Zitat von: speex am 14 September 2020, 19:02:10
Ein notify und ein doif die Nachrichten die dadurch abgesetzt werden kommen nur einmal.

Was passiert, wenn du
attr teleBot textResponseConfirm 0
setzt (falls nicht schon probiert)?

Ich hatte das Problem auch mal. So sah meine Config aus, bei der nix doppelt zurück kam:

define Telegram TelegramBot
attr Telegram allowUnknownContacts 0
attr Telegram cmdFavorites /cmd
attr Telegram cmdKeyword doit
attr Telegram cmdReturnEmptyResult 0
attr Telegram cmdTimeout 600
attr Telegram defaultPeer xxx
attr Telegram favorites /[Rollos auf TV-Stellung]=set WZ.Rollade.Links pct 75;;;;set WZ.Rollade.Mitte pct 55;;;;set WZ.Rollade.Mitte.Links pct 75;;;;set WZ.Rollade.Mitte.Rechts pct 75;;;;set WZ.Rollade.Rechts pct 75;;\
/[Schalfen]=set RollladenPosition Schlafen;;\
/[Aufstehen]=set RollladenPosition Aufstehen;;\
/[Wetter-Kurzinfo]=get Wetter state
attr Telegram parseModeSend 0_None
attr Telegram pollingTimeout 180
attr Telegram room Server
attr Telegram textResponseConfirm 0


viegener

Zitat von: h002 am 15 September 2020, 16:39:48
Was passiert, wenn du
attr teleBot textResponseConfirm 0
setzt (falls nicht schon probiert)?



TextResponseConfirm ist eigentlich ein Text der gesendet wird, wenn vor der Ausführung eines Favoriten der Befehl explizit bestätigt werden soll. Also ist es ein Text (diesen auf 0 zu setzen führt vermutlich dass eben kein Text mit der Abfrage kommt, aber nicht mehr) und der Text wird vor der Ausführung gesendet.

Das sollte mit diesem Problem nichts zu tun haben, da die Antwort/Rückgabe des Befehls ja mehrfach kommt.

@speex: Ich vermute inzwischen, dass das Problem dadurch entsteht, dass defaultPeerCopy nicht gesetzt ist. Setze mal defaultPeerCopy auf 0
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Dracolein

#2515
Hallo zusammen, eine Frage hätte ich:

Die von FHEM via Telegram versendeten Nachrichten kommen auf meinem iPhone fast immer mit einer deutlichen Zeitverzögerung an; teils 10 Sekunden.
Ich hab Telegram vollständig entsprechend dem FHEM-Wiki eingebunden, was alles problemlos funktioniert.
Besteht hier irgendeine Möglichkeit, etwas zu beeinflussen?

Hintergrund:
Ich nutze Telegram bisher nur, um in seltenen Fällen ein paar nicht zeitkritische Infos von FHEM an mich zu senden.
Da ich meine Haustürklingel seit ein paar Tagen allerdings auch in FHEM eingebunden habe, war der Gedanke, mithilfe von Telegram hier auch eine Statusnachricht auf dem Smartphone zu erhalten (funktioniert auch vom Grundsatz her), allerdings sind hier 10 Sekunden Delay ungenügend.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

viegener

Zitat von: Dracolein am 18 September 2020, 09:16:09
Hallo zusammen, eine Frage hätte ich:

Die von FHEM via Telegram versendeten Nachrichten kommen auf meinem iPhone fast immer mit einer deutlichen Zeitverzögerung an; teils 10 Sekunden.
Ich hab Telegram vollständig entsprechend dem FHEM-Wiki eingebunden, was alles problemlos funktioniert.
Besteht hier irgendeine Möglichkeit, etwas zu beeinflussen?

Hintergrund:
Ich nutze Telegram bisher nur, um in seltenen Fällen ein paar nicht zeitkritische Infos von FHEM an mich zu senden.
Da ich meine Haustürklingel seit ein paar Tagen allerdings auch in FHEM eingebunden habe, war der Gedanke, mithilfe von Telegram hier auch eine Statusnachricht auf dem Smartphone zu erhalten (funktioniert auch vom Grundsatz her), allerdings sind hier 10 Sekunden Delay ungenügend.

Ich kenne keine Möglichkeite die Verzögerung auf telegram-Seite oder in der App zu beeinflussen. Bei mir ist aber nur die Push-Meldung auf dem iPhone verzögert, also die Benachrichtigung und der entsprechende Ton.

Also wenn ich das iPhone entsperrt habe und aus FHEM versende, dann erhöht sich der Zähler für die Nachrichten in Sekundenbruchteilen. Das popup und der Ton kommen dann etwa 2-3 Sekunden später, das variiert aber auch.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Dracolein

Ja ich kann es auch nicht wirklich reproduzieren, manchmal kommt die Meldung binnen sekundenbruchteilen und manchmal 10-15 Sekunden zu spät. Dabei ist es egal, ob sich mein SMartphone im heimischen WLAN befindet, oder per 3G verbunden ist.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

speex

Sorry für die späte Antwort @viegener.

Das Attribut defaultPeerCopy 0 hats gebracht!

Die Bot responses kommen nicht mehr doppelt.

Danke!

Albatros_

Hallo zusammen,

wäre es möglich das Modul um die Funktion "sendVideo" aus der Telegram Bot API zu erweitern ? https://core.telegram.org/bots/api#sendvideo
Ich nutze das Modul um Videos von den IPCams am Haus zu verschicken. Aktuell nutze ich sendMedia, was prima funktioniert, aber dazu führt, dass aus einem mp4 Video ein GIF gemacht wird. d.h. man kann die Videos im Telegram dann nicht per scroll balken bedienen. Auch die Streaming funktion der Videos fällt dann weg.
Ich konnte den Unterschied bereits per Python script ausprobieren und würde mich freuen wenn das auch im FHEM funktionieren würde.

Auszug aus Python script:
bot.send_video(chat_id="############", video=open(outputvid, 'rb'), supports_streaming=True)

supports_streaming    Boolean    Optional    Pass True, if the uploaded video is suitable for streaming

Grüße
Sebastian