Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

ohosch

Sehr sonderbar, jetzt habe ich es über eine Gruppe versucht.

- Wenn ein User in die Gruppe schreibt, bekommen es alle User und alle Bots
- Wenn ein Bot in die Gruppe schreibt, bekommen es nur die User, aber nicht der andere Bot

Bei beiden Bots sind die privacy Einstellungen korrekt auf disabled gesetzt. Beide Bots habe ich noch mal aus der Gruppe raus und wieder rein genommen. Ich habe jetzt sogar beide Bots in der Gruppe als Admin definiert.

Es muss doch irgendwie möglich sein, dass der eine Bot einen Status vom anderen bekommen kann....

Viele Grüße
Oliver

DeeSPe

MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

ohosch

Schade, zumindest ist der Grund aber nachvollziehbar. Das könnte das Netz runterziehen.

Da bleibt mir dann wohl nur die Möglichkeit über das nicht mehr supportete Telegram User Modul.
Das compilieren (oder besser das configure Script) läuft da leider auf dem Pi auch nicht out of the box, das schaue ich mir später mal an.

Danke schon mal für die Antworden Dan, dann kann ich mir mehr Bastelei hier jetzt sparen.

Viele Grüße
Oliver

DeeSPe

Zitat von: ohosch am 09 April 2019, 11:58:14
Jetzt wäre es mir ganz recht, wenn eine Instanz Meldungen an die andere abgeben würde.

Was hast Du denn genau vor bzw. was meinst Du mit "eine Instanz Meldungen an die andere abgeben"?
Du kennst RFHEM und/oder FHEM2FHEM?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

viegener

Zitat von: DeeSPe am 09 April 2019, 14:47:27
NEIN!
https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots

Gruß
Dan

@ohosch: Ich habe das jetzt auch mal ins wiki eingetragen zusammen mit der Fehlermeldung in sentMsgResult - dann sollte es beim Googlen der Fehlermeldung leichter zu interpretieren sein
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fireball

hehe... ich habe das jetzt leider auch durch probieren rausgefunden... Bot2Bot geht echt nicht.

Schade... ich wollte in Tasker (mit einem anderen API Key als der FEHM-Bot) an den FEHM BOT meine Anwesenheit senden und eben beim verlassen des hauses auch.
Oder mit dem gleichen API-Key an sich selber...
Tasker hat bisher gut funktioniert, das mit dem GEOfency Plugin war nicht so stabil.

VG
René

krutojmax

Hallo zusammen,
ich nutze den TG Bot um mir die aktuellen Spritpreise in einer Gruppe zuschicken zu lassen.
Seit einigen Tagen hängt sich die Oberfläche von FHEM auf und ich muss mich per SSH verbinden und den RasPi neustarten.
Ich vermute, dass irgendwelche Leute meinen Bot in irgendwelche Gruppen hinzugefügt haben und er vlt. deswegen irgendwann ausgelastet ist und sich deswegen aufhängt. Ergo bekomme ich natürlich auch keine Nachrichten mit den Spritpreisen mehr.

- Kann ich meinen Bot irgendwie aus den Gruppen entfernen? Ich sehe nämlich unter Contacts einige Kontakte, die ich definitiv nicht kenne. In meiner Gruppe ist keiner dieser Kontakte drin.
- Kann ich feststellen, weswegen sich mein System so aufhängt? Vielleicht liege ich ja auch falsch?

viegener

Zitat von: krutojmax am 10 April 2019, 19:00:27
Hallo zusammen,
ich nutze den TG Bot um mir die aktuellen Spritpreise in einer Gruppe zuschicken zu lassen.
Seit einigen Tagen hängt sich die Oberfläche von FHEM auf und ich muss mich per SSH verbinden und den RasPi neustarten.
Ich vermute, dass irgendwelche Leute meinen Bot in irgendwelche Gruppen hinzugefügt haben und er vlt. deswegen irgendwann ausgelastet ist und sich deswegen aufhängt. Ergo bekomme ich natürlich auch keine Nachrichten mit den Spritpreisen mehr.

- Kann ich meinen Bot irgendwie aus den Gruppen entfernen? Ich sehe nämlich unter Contacts einige Kontakte, die ich definitiv nicht kenne. In meiner Gruppe ist keiner dieser Kontakte drin.
- Kann ich feststellen, weswegen sich mein System so aufhängt? Vielleicht liege ich ja auch falsch?

Ich finde jetzt wenig Ansätze um herauszulesen, dass es wirklich mit TelegramBot-Nachrichten zusammenhängt. Generell ist es relativ normal, dass einige unbekannte Kontakte unter contacts im telegramBot auftauschen, wenn man das Attribut allowUnknownContacts nicht auf 0 gesetzt hat.

Der einfachste Weg herauszufinden, ob der Telegrambot Dein System beeinträchtigt, würde sein, wenn Du das Attribut pollingTimeout auf 0 setzt. Dann werden keine Nachrichten mehr abgerufen und ganz egal in wieviele Gruppen der Bot eingetragen sein sollte.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Dia81

Zitat von: viegener am 07 April 2019, 23:22:32
Ich habe seit Monaten keine neue Version des Moduls mehr hochgeladen, deshalb bvermute ich erstmal eine andere Ursache, prüfe doch erstmal im Event monitor, welche Events dort ankommen.

Die andere Frage wäre natürlich was has Du ansonsetn geändert, was dieses Verhalten erzuegt haben könnte?

Es kann aber auch sein, dass sich auf Telegram-Server-Seite etwas geändert hat, so dass query-Daten mehrfach vom Server gesendet werden. tritt aber bei mir bisher nicht auf.

Danke für deine Antwort. Kam erst heute dazu weiter auszuprobieren. Ich habe ein Untermenü mit Queryinline aufgerufen und Telegram sofort ua fdem Handy in den Hintergrund geschickt. Das Menü wurde natürlich wieder mehrfach geöffnet und mich mit Miteillungen dazu zugespamt. Im  Event sieht das dann so aus:


2019-04-15 22:23:16.597 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:23:16.597 TelegramBot teleBot queryReplyMsgId: 9327
2019-04-15 22:23:16.739 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:23:16.739 TelegramBot teleBot sentMsgId: 9336
2019-04-15 22:23:16.739 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:23:16.856 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:23:16.856 TelegramBot teleBot sentMsgId: 9337
2019-04-15 22:23:16.856 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:23:16.990 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:23:16.990 TelegramBot teleBot sentMsgId: 9338
2019-04-15 22:23:16.990 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:23:17.115 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:23:17.115 TelegramBot teleBot sentMsgId: 9339
2019-04-15 22:23:17.115 TelegramBot teleBot sentMsgPeerId: 528847740
(...)


Hilft das zur Problemlösung weiter?

So sieht es in rictig aus:

019-04-15 22:30:06.177 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:30:06.177 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:30:06.177 TelegramBot teleBot queryReplyMsgId: 9340
2019-04-15 22:30:06.283 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:30:06.283 TelegramBot teleBot sentMsgId: 9341
2019-04-15 22:30:06.283 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:30:06.431 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:30:06.431 TelegramBot teleBot sentMsgId: 9342
2019-04-15 22:30:06.431 TelegramBot teleBot sentMsgPeerId: 528847740


2 Nachrichten sind korrekt.

Was auffällt, drückt man im "menü" etwas an kommt sofort die Ausgabe, es steht aber ca. 5-6 Sekunden "lädt" am oberen rand. Wird in dieser Zeit die App zugemacht tut er so als wäre die nachricht nicht angekommen und schickt diese immer wieder :(

Code dazu:

define teleBot11 notify teleBot:queryData:.Ⓜ set teleBot queryInline @[teleBot:queryPeer] (✔|🏡|🛫|❌) (Ⓜ⚠|Ⓜ☀) (🔝) Ⓜ <b>Modus </b>;; set teleBot send @[teleBot:queryPeer] Ⓜ <b>{(ReadingsVal("Automatikmodus","state",0))}</b> ⚠ <b>{(ReadingsVal("Ueberwachungsmodus","state",0))}</b> ☀ <b>{(ReadingsVal("Beschattung","state",0))}</b>

Dia81

Hier nochmal im Ganzen bei einmaligen Klick auf (M) und sofortiges App-Hintergrundschicken.

Menü 1 X angedrückt kommt nach schließen 3-4 mal:


2019-04-15 22:38:11.313 TelegramBot teleBot queryPeer: André
2019-04-15 22:38:11.313 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:38:11.313 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:38:11.313 TelegramBot teleBot queryReplyMsgId: 9351
2019-04-15 22:38:11.458 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:11.458 TelegramBot teleBot sentMsgId: 9360
2019-04-15 22:38:11.458 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:11.580 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:11.580 TelegramBot teleBot sentMsgId: 9361
2019-04-15 22:38:11.580 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:13.220 TelegramBot teleBot queryID: 2271383748913111387
2019-04-15 22:38:13.220 TelegramBot teleBot queryPeer: André
2019-04-15 22:38:13.220 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:38:13.220 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:38:13.220 TelegramBot teleBot queryReplyMsgId: 9351
2019-04-15 22:38:13.339 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:13.339 TelegramBot teleBot sentMsgId: 9362
2019-04-15 22:38:13.339 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:13.470 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:13.470 TelegramBot teleBot sentMsgId: 9363
2019-04-15 22:38:13.470 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:13.699 TelegramBot teleBot Contacts:  ....
2019-04-15 22:38:13.738 TelegramBot teleBot queryID: 2271383750856839372
2019-04-15 22:38:13.738 TelegramBot teleBot queryPeer: André
2019-04-15 22:38:13.738 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:38:13.738 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:38:13.738 TelegramBot teleBot queryReplyMsgId: 9351
2019-04-15 22:38:13.879 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:13.879 TelegramBot teleBot sentMsgId: 9364
2019-04-15 22:38:13.879 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:14.062 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:14.062 TelegramBot teleBot sentMsgId: 9365
2019-04-15 22:38:14.062 TelegramBot teleBot sentMsgPeerId: 528847740

viegener

Zitat von: Dia81 am 15 April 2019, 22:42:25
Hier nochmal im Ganzen bei einmaligen Klick auf (M) und sofortiges App-Hintergrundschicken.

Menü 1 X angedrückt kommt nach schließen 3-4 mal:


2019-04-15 22:38:11.313 TelegramBot teleBot queryPeer: André
2019-04-15 22:38:11.313 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:38:11.313 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:38:11.313 TelegramBot teleBot queryReplyMsgId: 9351
2019-04-15 22:38:11.458 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:11.458 TelegramBot teleBot sentMsgId: 9360
2019-04-15 22:38:11.458 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:11.580 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:11.580 TelegramBot teleBot sentMsgId: 9361
2019-04-15 22:38:11.580 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:13.220 TelegramBot teleBot queryID: 2271383748913111387
2019-04-15 22:38:13.220 TelegramBot teleBot queryPeer: André
2019-04-15 22:38:13.220 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:38:13.220 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:38:13.220 TelegramBot teleBot queryReplyMsgId: 9351
2019-04-15 22:38:13.339 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:13.339 TelegramBot teleBot sentMsgId: 9362
2019-04-15 22:38:13.339 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:13.470 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:13.470 TelegramBot teleBot sentMsgId: 9363
2019-04-15 22:38:13.470 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:13.699 TelegramBot teleBot Contacts:  ....
2019-04-15 22:38:13.738 TelegramBot teleBot queryID: 2271383750856839372
2019-04-15 22:38:13.738 TelegramBot teleBot queryPeer: André
2019-04-15 22:38:13.738 TelegramBot teleBot queryPeerId: 528847740
2019-04-15 22:38:13.738 TelegramBot teleBot queryData: Ⓜ
2019-04-15 22:38:13.738 TelegramBot teleBot queryReplyMsgId: 9351
2019-04-15 22:38:13.879 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:13.879 TelegramBot teleBot sentMsgId: 9364
2019-04-15 22:38:13.879 TelegramBot teleBot sentMsgPeerId: 528847740
2019-04-15 22:38:14.062 TelegramBot teleBot sentMsgResult: SUCCESS
2019-04-15 22:38:14.062 TelegramBot teleBot sentMsgId: 9365
2019-04-15 22:38:14.062 TelegramBot teleBot sentMsgPeerId: 528847740


OK, ich habe Dein Szenario jetzt mal bei mir nachgestellt. Ja auch bei mir (unter iOS) wird der Event mehrfach generiert. Das Problem liegt aber ganz woanders. Bei der Benutzung von queryInline muss nach der Übertragung von queryData (also nach dem ein Knopf gedrückt wurde) zwingend eine Antwort (queryAnswer) mit der queryId gesendet werden.

Du sendest aber nur eine "normale" Nachricht, damit bleibt die Betätigung des Buttons unbestätigt und wird wohl von Telegram wiederholt bis die Reaktion (answer9 erfolgt ist.

Wenn Du also in Deiner Reaktion auf einen Knopf im notify statt

set teleBot send @[teleBot:queryPeer] ...

besser folgendes einfügst

set teleBot queryAnswer [teleBot:queryID] ...

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

Dia81

Zitat von: viegener am 17 April 2019, 00:16:09
OK, ich habe Dein Szenario jetzt mal bei mir nachgestellt. Ja auch bei mir (unter iOS) wird der Event mehrfach generiert. Das Problem liegt aber ganz woanders. Bei der Benutzung von queryInline muss nach der Übertragung von queryData (also nach dem ein Knopf gedrückt wurde) zwingend eine Antwort (queryAnswer) mit der queryId gesendet werden.

Du sendest aber nur eine "normale" Nachricht, damit bleibt die Betätigung des Buttons unbestätigt und wird wohl von Telegram wiederholt bis die Reaktion (answer9 erfolgt ist.

Wenn Du also in Deiner Reaktion auf einen Knopf im notify statt

set teleBot send @[teleBot:queryPeer] ...

besser folgendes einfügst

set teleBot queryAnswer [teleBot:queryID] ...

sollte es funktionieren

Vielen Dank für deine Hilfe, werde es hoffentlich Ostern rum direkt testen dies zu ändern. Hoffe das dann dadurch trotzdem nur derjenige die "Antwort" bekommt der auch den Befehl gesendet hat. Meine Frau und ich nutzen das System nämlich beide und nur derjenige der was "tippt" soll ja auch die "Antwort" bekommen. Teste es und werde berichten :)

Dia81

Zitat von: viegener am 17 April 2019, 00:16:09
OK, ich habe Dein Szenario jetzt mal bei mir nachgestellt. Ja auch bei mir (unter iOS) wird der Event mehrfach generiert. Das Problem liegt aber ganz woanders. Bei der Benutzung von queryInline muss nach der Übertragung von queryData (also nach dem ein Knopf gedrückt wurde) zwingend eine Antwort (queryAnswer) mit der queryId gesendet werden.

Du sendest aber nur eine "normale" Nachricht, damit bleibt die Betätigung des Buttons unbestätigt und wird wohl von Telegram wiederholt bis die Reaktion (answer9 erfolgt ist.

Wenn Du also in Deiner Reaktion auf einen Knopf im notify statt

set teleBot send @[teleBot:queryPeer] ...

besser folgendes einfügst

set teleBot queryAnswer [teleBot:queryID] ...

sollte es funktionieren

So kam heute zum testen. Leider funktioniert dies nicht :(

Habe besipeilweise folgenden Code nach deinem Rat geändert:

define teleBot11 notify teleBot:queryData:.Ⓜ set teleBot queryAnswer [teleBot:queryID] (✔|🏡|🛫|❌) (Ⓜ⚠|Ⓜ☀) (🔝) Ⓜ <b>Modus </b>;; set teleBot queryAnswer [teleBot:queryID] Ⓜ <b>{(ReadingsVal("Automatikmodus","state",0))}</b> ⚠ <b>{(ReadingsVal("Ueberwachungsmodus","state",0))}</b> ☀ <b>{(ReadingsVal("Beschattung","state",0))}</b>

Wenn ich jetzt auf Ⓜ drücke erscheint das untermenü nicht im Chatverlauf sondern taucht nur kurz am oberen Rand auf.
Das aber immerhin nur einmal... :)

Siehe Foto...

Andere Ideen? Muss dorch irgendwie ansteuerbar sein. Warum auch immer diese "mehrfach"-Meldungen aufeinmal auftauchen :((




Dia81

Im Anhang hab ich mal ein Foto wie es bei Klick auf (M) normalweise und mit dem "alten" Code aussehen sollte. Hier ist auch wieder das "lädt" auffällig was beim "schließen" der App das Untermenü dann nettterweise 4 x öffnet.


andies

Zitat von: Dia81 am 22 April 2019, 22:28:07
Im Anhang hab ich mal ein Foto wie es bei Klick auf (M) normalweise und mit dem "alten" Code aussehen sollte.
Ich wusste gar nicht, dass man da auch nette Icons senden kann. Gibst du die einfach ein? Codiert? Wo kann man da was nachlesen?


Gesendet von iPad mit Tapatalk Pro
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann