Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

binford6000

ZitatEs gibt einen set Befehle (replaceContacts), da kann man den Inhalt des alten Readings aus dem Backup wieder setzen (ACHTUNG: Nicht über setreading sondern über set ... replaceContacts ...)

Moin,
mit replaceContacts hat es funktioniert. Den set-Befehl hab ich irgendwie übersehen...
Vielen Dank fürs Helfen!

VG Sebastian

binford6000

#2701
Hello again,
diesmal mit einem anderen Problemchen:
In https://forum.fhem.de/index.php/topic,77297.msg1259756.html#msg1259756 habe ich bereits geschrieben dass ich meine Dialoge nicht mehr aufrufen kann. Es passiert nichts und im TelegramBot steht die Fehlermeldung:
Callback returned error :Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message:


Der Dialog wird laut Log aber korrekt zusammengebaut und ausgeliefert.
Sämtliche Versuche mit

  • set fhembot msgDelete [fhembot:_sentMsgId]
  • set fhembot msgDelete [fhembot:sentMsgId] (wobei die leer ist?)
  • set fhembot reset
haben leider nicht zum Erfolg geführt. Normales senden mit zB
msg push blabla
funktioniert aber nach wie vor.

VG Sebastian

EDIT: Problem gelöst! Siehe geändertes notify im Wiki und den Beitrag von Beta-User im msgDialog-Thread:

viegener

Ich habe eine neue Version des Moduls eingechecked ins SVN

Darin gibt es ein neues Reading, dass den Zeitpunkt einer Nachricht, wie sie von telegram empfangen wurde angibt. Der Zeitstempel wird in lokaler Zeit in der Form eines Readingtimestamps im Inhalt angegeben. Dies kann auch dafür verwendet werden, um auf alte Nachrichten, die durch ein Problem nicht kurzfristig empfangen wurden nicht mehr zu reagieren.

Ausserdem sind noch ein paar Korrekturen in der neuen Version
Bei Problemen einfach melden.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Ruggy

Ich hatte vor ca. zwei Jahren TelegramBot eingerichtet.
Mir werden Bilder von einer Überwachungskamera an mein Handy mit Telegramm geschickt (nach dem Klingeln an der Haustüre).
Dies funktioniert bisher soweit ohne Probleme.

Ich habe jetzt vor, dass meine Bilder von der Überwachungskamera, zusätzlich noch an ein anderes Handy geschickt werden.
Für mein Vorhaben muss ich ja die Nachricht noch an einen anderen @Username (2. Handy) schicken und vorher auch dort Telegram installieren und einrichten.
Bzw. ich muss den 2. Kontakt in meine Readings angezeigt bekommen.

Jetzt ist mir aber aufgefallen, dass ich damals bei der ersten Einrichtung, ich es anscheinend nicht richtig eingerichtet habe. Anscheinend habe ich den Token nicht angegeben.

Zumindest wird im Device teleBot (mein TelegramBot) mit "RawDefinition" u.a. folgendes angezeigt:


defmod teleBot TelegramBot
attr teleBot allowUnknownContacts 0
attr teleBot defaultPeer MeinName
attr teleBot pollingTimeout 120
attr teleBot room Alarm


Unter Readings steht folgendes:

Contacts  1234567890:MeinName:

also ohne @Username

(1111111111 und MeinName habe ich fürs Forum abgeändert).
Außerdem ist die Zahl 1111111111 auch nicht die selbe Zahl, wie in meinen Token in der API steht, dort steht z.B. 2222222222.


Aber funktioniert hat es ja bisher trotzdem. Kann in beide Richtungen Nachrichten schicken.
Wie kann das sein?


Sollte ich jetzt das Device teleBot löschen und neu anlegen und diesmal mit dem token?
Kann ich den selben Namen "teleBot" wieder verwenden?

Also so wie in Wiki; hier das Beispiel aus Wiki:
define myTelegramBot TelegramBot 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw


Oder wird es danach zu Problemen führen und das bisherige (mit einem Handy) funktioniert auch nicht mehr?

Vielen Dank
Viele Grüße
Ruggy

viegener

Zitat von: Ruggy am 23 Februar 2023, 19:57:19
Ich hatte vor ca. zwei Jahren TelegramBot eingerichtet.
Mir werden Bilder von einer Überwachungskamera an mein Handy mit Telegramm geschickt (nach dem Klingeln an der Haustüre).
Dies funktioniert bisher soweit ohne Probleme.

Ich habe jetzt vor, dass meine Bilder von der Überwachungskamera, zusätzlich noch an ein anderes Handy geschickt werden.
Für mein Vorhaben muss ich ja die Nachricht noch an einen anderen @Username (2. Handy) schicken und vorher auch dort Telegram installieren und einrichten.
Bzw. ich muss den 2. Kontakt in meine Readings angezeigt bekommen.

Jetzt ist mir aber aufgefallen, dass ich damals bei der ersten Einrichtung, ich es anscheinend nicht richtig eingerichtet habe. Anscheinend habe ich den Token nicht angegeben.

Zumindest wird im Device teleBot (mein TelegramBot) mit "RawDefinition" u.a. folgendes angezeigt:


defmod teleBot TelegramBot
attr teleBot allowUnknownContacts 0
attr teleBot defaultPeer MeinName
attr teleBot pollingTimeout 120
attr teleBot room Alarm


Unter Readings steht folgendes:

Contacts  1234567890:MeinName:

also ohne @Username

(1111111111 und MeinName habe ich fürs Forum abgeändert).
Außerdem ist die Zahl 1111111111 auch nicht die selbe Zahl, wie in meinen Token in der API steht, dort steht z.B. 2222222222.


Aber funktioniert hat es ja bisher trotzdem. Kann in beide Richtungen Nachrichten schicken.
Wie kann das sein?


Sollte ich jetzt das Device teleBot löschen und neu anlegen und diesmal mit dem token?
Kann ich den selben Namen "teleBot" wieder verwenden?

Also so wie in Wiki; hier das Beispiel aus Wiki:
define myTelegramBot TelegramBot 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw


Oder wird es danach zu Problemen führen und das bisherige (mit einem Handy) funktioniert auch nicht mehr?

Vielen Dank
Viele Grüße
Ruggy

Das token steht grundsätzlich nicht im Bot selber sondern wird separat abgelegt. Da Senden und Empfangen geht ist Dein token offensichtlich valide.

Das Token hat nichts mit der Adresse / ID eines contacts zu tun.

Wenn Du einen neuen Benutzer in den Contacts haben wilst, muss dieser den Bot in Telegram anschreiben. Damit er in den Contacts auftaucht, muss aber (kurzzeitig) allowUnknownContacts auf 1 gesetzt werden.

Dann solltest Du den Kontakt auch anschreiben können.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Ruggy

Danke.

Ja, senden und empfangen geht.
Habe nur in einem Video über die Einrichtung von telegram gesehen, dass dort bei den internals bei URL der token mit steht. Das URL habe ich gar nicht.
Aber es funktioniert ja.

Zitat von: viegener am 23 Februar 2023, 23:01:39
Wenn Du einen neuen Benutzer in den Contacts haben wilst, muss dieser den Bot in Telegram anschreiben.

Da ist dann mein Bot gemeint, welcher unter Internals bei "me" steht? @meinName_bot?

Muß ich dann im 2. Handy einen Neuen Kontakt mit diesem @meinName_bot anlegen und an diesen eine Nachricht schicken?

viegener

Zitat von: Ruggy am 24 Februar 2023, 15:09:31
Danke.

Ja, senden und empfangen geht.
Habe nur in einem Video über die Einrichtung von telegram gesehen, dass dort bei den internals bei URL der token mit steht. Das URL habe ich gar nicht.
Aber es funktioniert ja.

Da ist dann mein Bot gemeint, welcher unter Internals bei "me" steht? @meinName_bot?

Muß ich dann im 2. Handy einen Neuen Kontakt mit diesem @meinName_bot anlegen und an diesen eine Nachricht schicken?

Nein Du solltest den Bot nach Namen oder @... Name suchen und dann einen chat damit starten - danach ist das ein ganz normaler chat in der Liste in Telegram
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Parador

Hallo Zusammen,
ich nutze den TelegramBot gerne und intensiv, DANKE für die viele Arbeit. Oft nutze ich den Bot zusammen mit msgDialog und auch mit Clients am Smartphone und Desktop. Ich bin deshalb nicht ganz sicher wo meine Frage hingehört und beginne jetzt mal hier....

Wenn ich mein Zauberwort für den msgDialog sende und mein Auswahlmenü zu sehen bekomme, kann ich am Client mit dem ich sende perfekt damit arbeiten. Oft ist es aber so, dass am anderen Client also z.B. am Desktop, das Auswahlmenü weiter in der ersten Position stehen bleibt und auch nicht verschwindet, wenn der Befehl abgearbeitet ist. Da der Dialog aber schon beeendet ist, kann ich dann auch keine zweite Reaktion auslösen (was gut ist). Besser wäre aber, wenn der Dialog auf beiden Clients durchlaufen/beendet wird.

Ist das nun etwas, was nur bei mir auftritt, oder haben das mehrere? und ist es eher etwas von msgDialog, oder doch eher TelegramBot?

Danke für Euere Unterstützung schon jetzt....