Autor Thema: Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM  (Gelesen 711304 mal)

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4201
    • Meine Seite im fhemwiki
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2685 am: 24 April 2022, 19:27:40 »
Da ich irgendwie meinen Beitrag nicht editieren kann, was mir noch aufgefallen ist ein Log eintrag den ich nicht zuordnen kann:

2022.04.24 19:07:14.218 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{ Telegram("teleBot","msgText")}: Undefined subroutine &main::Telegram called at (eval 5354) line 1.

Ich kann die Meldung erstmal auch nicht zuordnen, es sieht so aus, als ob die aus einer (von Dir ?) erstellten Routine kommt. Also z.B. DOIF, notify, oder auch in den Favoriten, etc

Vielleicht schaust bei Dir irgendwo "Telegram(" vorkommt?
Denn "telebot" ist vermutlich der Name Deines TelegramBots und irgendwie wird versucht eine Routine "Telegram(" aufzurufen - vermutlich aus einem Kommando -
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline Pete37

  • Full Member
  • ***
  • Beiträge: 116
Hallo allwissendes Forum,

ich habe ein Problem mit meinem TelegramBot, das mich ziemlich ratlos macht:
Vor ein paar Tagen ist das Device sang und klanglos aus der fhem.cfg verschwunden. Vor vier Tagen habe ich noch eine Nachricht bekommen, gestern war das Device nicht mehr da. So weit so rätselhaft. Jetzt versuche ich seit gestern, das Device anhand der Daten aus einem Backup wieder neu anzulegen. Aber es tut nicht so richtig. Insbesondere sind keine Contacts gelistet, egal wie oft ich meinem Bot eine Nachricht schicke.
Meine Vermutung ist daher, dass die Verbindung zwischen Fhem und Bot nicht wirklich funktioniert. Das kann ich aber aus dem Protokoll (Verbose = 5) nicht sehen:

2022.05.27 10:59:26 5: TelegramBot_Callback DEV_SYS_TelegramBot: called from Polling
2022.05.27 10:59:26 5: TelegramBot_Callback DEV_SYS_TelegramBot: data returned :{"ok":true,"result":[]}:
2022.05.27 10:59:26 5: TelegramBot_Deepencode DEV_SYS_TelegramBot: found an ARRAY
2022.05.27 10:59:26 5: TelegramBot_Deepencode DEV_SYS_TelegramBot: encoded a String from :true: to :true:
2022.05.27 10:59:26 5: TelegramBot_Deepencode DEV_SYS_TelegramBot: found a HASH
2022.05.27 10:59:26 5: TelegramBot_Callback DEV_SYS_TelegramBot: after encoding
2022.05.27 10:59:26 5: TelegramBot_Callback DEV_SYS_TelegramBot: polling returned result? 0
2022.05.27 10:59:26 5: UpdatePoll DEV_SYS_TelegramBot: number of results 0
2022.05.27 10:59:26 5: TelegramBot_UpdatePoll DEV_SYS_TelegramBot: called
2022.05.27 10:59:26 5: TelegramBot_UpdatePoll DEV_SYS_TelegramBot: - Initiate non blocking polling - With callback set
2022.05.27 10:59:26 5: TelegramBot_readToken: Read Telegram API token from file
2022.05.27 10:59:26 4: TelegramBot_UpdatePoll DEV_SYS_TelegramBot: initiate polling with nonblockingGet with 120s
2022.05.27 10:59:26 5: TelegramBot_UpdatePoll DEV_SYS_TelegramBot: - Ende > next polling started
2022.05.27 10:59:26 4: TelegramBot_Callback DEV_SYS_TelegramBot: resulted in SUCCESS from Polling
2022.05.27 10:59:26 5: TelegramBot_Callback DEV_SYS_TelegramBot: - Ende > Control back to FHEM

Wenn ich versuche, eine Nachricht rauszuschicken, kommt der Hinweis, dass er meine Peer-ID nicht finden/zuordnen kann:
2022.05.27 11:01:54 5: TelegramBot_Set DEV_SYS_TelegramBot: called
2022.05.27 11:01:54 4: TelegramBot_Set DEV_SYS_TelegramBot: Processing TelegramBot_Set( _msg )
2022.05.27 11:01:54 5: TelegramBot_Set DEV_SYS_TelegramBot: start send for cmd :_msg: and sendType :0:
2022.05.27 11:01:54 5: TelegramBot_SendIt DEV_SYS_TelegramBot: called
2022.05.27 11:01:54 5: TelegramBot_SendIt DEV_SYS_TelegramBot: try to send message to :myID: -:Hallo: - add :<undef>: - replyid :<undef>::    options ::
2022.05.27 11:01:54 4: TelegramBot_GetFullnameForContact # Contacts is <undef>
2022.05.27 11:01:54 3: TelegramBot_SendIt DEV_SYS_TelegramBot: Failed with :FAILED peer not found :myID::
2022.05.27 11:01:54 5: TelegramBot_Callback DEV_SYS_TelegramBot: called from SendIt
2022.05.27 11:01:54 3: TelegramBot_Callback DEV_SYS_TelegramBot: resulted in NonBlockingGet: returned FAILED peer not found :myID: from SendIt
2022.05.27 11:01:54 5: TelegramBot_Callback DEV_SYS_TelegramBot: - Ende > Control back to FHEM

Wenn ich dem Bot eine Nachricht schicke, passiert in Fhem gar nichts.

Ich habe das Device schon mehrfach gelöscht und wieder neu angelegt. Hat nichts geändert. Der Bot hat jetzt sicher zwei Jahre anstandslos funktioniert. Weiß jemand Rat, in welche Richtung ich weiter suchen kann? Ich weiß grad nicht, was ich noch probieren könnte.

UPDATE: Vor einer halben Stunde ist eine Nachricht vom Bot auf meinem Handy angekommen. Allerdings ohne das Menü, das dabei sein sollte. Und jetzt funktioniert das Senden schon wieder nicht mehr: "peer not found"...

UPDATE: GELÖST! Als ich bei der Peer-ID die ID selber (also die Zahlen, aber ohne @) eingegeben habe, gingen die Nachrichten plötzlich raus. Und Für eingehende Nachrichten musste ich "allowUnknownContacts" vorübergehend auf 1 setzen, damit er "mich kennenlernen konnte". Dadurch wurde ich wieder als Contact gelistet und jetzt kann ich "allowUnknownContacts" wieder auf 0 setzen und der Bot funktioniert wieder, so wie ich das kenne!!

Vielen Dank schon mal,
Pete37
« Letzte Änderung: 27 Mai 2022, 13:33:57 von Pete37 »
Fhem auf Raspberry Pi3 mit Fritzbox inkl. Steckdosen, Philips Hue inkl. Orsam Lightify-Lampen, eq-3 Max!, SONOS, Rollotron Rolläden, Asus ZenPad, Samsung Galaxy xCover 3

Offline TWART016

  • Hero Member
  • *****
  • Beiträge: 1180
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2687 am: 14 Oktober 2022, 18:37:26 »
Ich sende eine queryInline set Telegram queryInline (Ja:Yeinschalten|Nein:Xausgeschalten) Soll das Licht eingeschalten werden?
Kann ich nach dem Drücken auf Ja oder Nein die queryInline Nachricht löschen lassen?

Offline stera

  • Full Member
  • ***
  • Beiträge: 351
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2688 am: 14 Oktober 2022, 22:53:52 »
Ja, du kannst anhand der msg id das wieder löschen.

Bin nun am Handy, könnte Dir aber sonst ein Beispiel zeigen.

Gruß SteRa

Offline TWART016

  • Hero Member
  • *****
  • Beiträge: 1180
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2689 am: 15 Oktober 2022, 00:59:30 »
msgDelete kenne ich. Nur muss ich die Verknüpfung zu der "Antwort" herstellen. Die ID bekomme ich leider nicht heraus.

Offline stera

  • Full Member
  • ***
  • Beiträge: 351
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2690 am: 15 Oktober 2022, 07:13:32 »
Man hat doch sogar nur eine Änderung im Reading "queryReplyMsgId", dass dort erst die ID generiert wird, wenn man Antwortet. Wenn sich das ändert und vllt. im Zusammenhang mit dem Reading "queryData" kann ich doch die Nachricht z.B. mit einem DoIf löschen..

Gruß,
Stefan

Offline andies

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3429
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2691 am: 15 Oktober 2022, 08:05:09 »
Evtl so
defmod TelegramBot_loeschen notify TelegramBot:sentMsgResult:.SUCCESS {if ((ReadingsVal("Profil", "housemode", "normal") eq "normal") and (ReadingsNum("TelegramBot","sentMsgId", 0)>0)) {fhem("defmod TelegramBot_loeschen_".ReadingsVal("TelegramBot","sentMsgId", 0)." at +11:00:00 set TelegramBot msgDelete ".ReadingsVal("TelegramBot", "sentMsgId", 0))} }nach 11 Stunden wird das gelöscht. Bei mir aber jede Nachricht, wenn ich zu Hause bin.
FHEM 6.1 auf RaspPi3 (Raspbian:  5.15.32-v7+); Perl: v5.28.1
SIGNALduino (433 MHz) und HM-UART (868 MHz)
wenige Brennenstuhl-IT, Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Offline TWART016

  • Hero Member
  • *****
  • Beiträge: 1180
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2692 am: 22 Oktober 2022, 02:59:18 »
Über queryReplyMsgId habe ich es mittlerweile hinbekommen. Musste nur set Telegram msgDelete [Telegram:queryReplyMsgId] im DOIF hinzufügen

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1560
  • 🏠⚙️💡🛠📱
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2693 am: 19 November 2022, 19:22:13 »
Hallo Zusammen,
vor einigen Tagen habe ich mein Telegrambot device neu anlegen müssen. Es funktioniert auch alles bis auf eine Nachricht an eine Gruppe via
set fhembot msg @#Gruppe TextEs kommt nur
sentMsgResult NonBlockingGet: returned FAILED peer not found :#Gruppenname:zurück. Mach ich ein
set fhembot msg @-1234567 Text
landet die Nachricht in der gewünschten Gruppe. Irgendwie findet die Gruppe nicht in das reading contacts. Ein manuelles Eintragen hat jedenfalls nicht geholfen. Dei Gruppe ist auch korrekt als
msgContactPush -1234567::#Gruppennameim RESIDENTS Modul hinterlegt.

Kann mir bitte mal jemand auf die Sprünge helfen?!

VG Sebastian

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4201
    • Meine Seite im fhemwiki
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2694 am: 20 November 2022, 19:59:21 »
@binford6000: Was steht denn bei Deinem fhembot im Reading Contacts?

Wenn es dort nicht gelistet ist, versuche doch mal eine Nachricht (von einem anderen Account in Telegram) an die Gruppe zu senden. Danach sollte es im Reading Contacts enthalten sein
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1560
  • 🏠⚙️💡🛠📱
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2695 am: 20 November 2022, 21:54:55 »
Hi,
Zitat
Was steht denn bei Deinem fhembot im Reading Contacts?
da stehen nur meine beiden ROMMATES drin. Früher (aus einem alten Backup) stand da auch die Gruppe drin.
Ein manuelles Setzen via setreading hat nichts gebracht. Auch Nachrichten von den anderen Gruppenteilnehmern in die Gruppe
lassen den fhembot nicht in contacts auftauchen. Extra dafür auch wieder allowUnknownContacts wieder auf 1 gesetzt.
Aber bisher leider ohne Erfolg...

VG Sebastian

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4201
    • Meine Seite im fhemwiki
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2696 am: 20 November 2022, 21:59:21 »
Hi,da stehen nur meine beiden ROMMATES drin. Früher (aus einem alten Backup) stand da auch die Gruppe drin.
Ein manuelles Setzen via setreading hat nichts gebracht. Auch Nachrichten von den anderen Gruppenteilnehmern in die Gruppe
lassen den fhembot nicht in contacts auftauchen. Extra dafür auch wieder allowUnknownContacts wieder auf 1 gesetzt.
Aber bisher leider ohne Erfolg...

VG Sebastian

Erhält denn der Bot die Nachrichten der anderen den Bot?
und ist der Bot in Telegram noch in der Gruppe gelistet?

Nur zur Sicherheit: Hast Du in Telegram den Bot neu angelegt? oder nur in FHEM?

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

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1560
  • 🏠⚙️💡🛠📱
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2697 am: 20 November 2022, 22:02:01 »
Zitat
Erhält denn der Bot die Nachrichten der anderen den Bot?
Nein.
Zitat
und ist der Bot in Telegram noch in der Gruppe gelistet?
Ja.
Zitat
Nur zur Sicherheit: Hast Du in Telegram den Bot neu angelegt? oder nur in FHEM?
Nur in FHEM. Die Gruppe in Telegram habe ich nicht angerührt.

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4201
    • Meine Seite im fhemwiki
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2698 am: 20 November 2022, 22:16:07 »
@binford6000: Ich habe es gerade bei mir nochmal durchgetestet: Wenn der Kontakt im bot in FHEM fehlt. Reicht es "allowUnknownContacts" auf 1 zu setzen, dann eine Nachricht in die Gruppe zu senden, die auch vom Bot empfangen wird und danach stehen die Kontakte wieder korrekt da in FHEM.

Also den Ablauf nochmal so durchführen und dann prüfen.

Falls das nicht klappt, gibt es noch eine Alternative: Es 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 ...)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1560
  • 🏠⚙️💡🛠📱
Antw:Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM
« Antwort #2699 am: 20 November 2022, 22:20:09 »
Danke dir für den Hinweis - probiere ich gleich morgen aus! Möchte den WAF am späten Sonntag Abend nicht überstrapazieren...  ;)
VG Sebastian