Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

Die Version mit allowedCommands (und dem neuen reply set command) ist auch jetzt als 1.7 in SVN
und ab morgen über update verfügbar

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

HenryD

Bei mir funktioniert Telegram seit der Nacht vom 11.5. zum 12.5 nicht mehr. Im Modul steht der Fehler: Callback returned error:Unauthorized.
Wenn ich vom Telefon eine Meldung an den Bot senden will, erscheint auf dem Telefon hinter der Meldung ein rotes Ausrufezeichen.
Außerdem hat sich auf den Telefonen der Name des FHEM Bots geändert. Dort steht jetzt "Name Hidden".
Ich hatte vor zwei Tagen die FHEM Konfiguration erweitert. Ich hatte am 10.5. für meine Hue Leuchten ein notify hinzugefügt, das diese nach einem Stromausfall ausgeschalten werden. Dazu hatte ich FHEM mehrmals neu gestartet um diese Funktion zu testen. Dabei sollte nichts passiert sein, denn da habe ich bei jedem Neustart die entsprechende Telegram Nachricht bekommen. Danach habe ich FHEM aktualisiert und noch einmal neu gestartet. Am 11.5 sind noch 5 Meldungen gekommen. Die letzte um 20:56 Uhr.
Hat jemand eine Idee?
FHEM auf Raspi2, HomeMatic, Enocean, Hue, Modbus, LaCrosse Temperatur/Feuchte, Baumarkt Steckdosen, Telegram Bot

JanHH

Ich habe noch eine Frage zu allowedCommands:
Ich möchte nur ganz bestimmte (in Perl formulierte) Kommandos zulassen.
Also habe ich allowedCommands auf {status()} gesetzt (das ist eine Funktion in 99_utils.pm, die den Hauszustand ad Telegram sendet, z.B. ob alle Fenster zu sind).
Laut Logfile hat das auch geklappt:
2016.05.13 12:07:01 3: TelegramBot_Attr Telegram: modified allowed_Telegram with commands :{status()}:

Jedoch bekomme ich
TelegramBot FHEM :
    Befehl:{status()} :
  Ergebnis:
Forbidden command {status()}.


Mache ich was falsch, oder geht das so nicht?
Ich kann natürlich notfalls über einen Dummy und ein Notfify darauf arbeiten, aber das wäre "von hinten durch die Brust ins Auge"...

justme1968

die perl ebene kann man nur komplett erlauben. genau so wie die shell ebene. jeweils mit dem schlüsselwort perl bzw. shell.

du kannst aber mit cmdalias den jeweiligen perl code einen namen auf der fhem ebene geben und dieses dann gezielt erlauben. ohne gleich komplett perl zu erlauben.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

JanHH

Danke! Das war das Bit, welches mir noch gefehlt hat. Nun läuft alles wie geschmiert.
Viel stressärmer als yowsup - Whatsapp scheint immer mal wieder am Protokoll zu schrauben, da ist Telegram mit der offiziell unterstützten API bestimmt stabiler.

viegener

Zitat von: HenryD am 13 Mai 2016, 07:55:01
Bei mir funktioniert Telegram seit der Nacht vom 11.5. zum 12.5 nicht mehr. Im Modul steht der Fehler: Callback returned error:Unauthorized.
Wenn ich vom Telefon eine Meldung an den Bot senden will, erscheint auf dem Telefon hinter der Meldung ein rotes Ausrufezeichen.
Außerdem hat sich auf den Telefonen der Name des FHEM Bots geändert. Dort steht jetzt "Name Hidden".
Ich hatte vor zwei Tagen die FHEM Konfiguration erweitert. Ich hatte am 10.5. für meine Hue Leuchten ein notify hinzugefügt, das diese nach einem Stromausfall ausgeschalten werden. Dazu hatte ich FHEM mehrmals neu gestartet um diese Funktion zu testen. Dabei sollte nichts passiert sein, denn da habe ich bei jedem Neustart die entsprechende Telegram Nachricht bekommen. Danach habe ich FHEM aktualisiert und noch einmal neu gestartet. Am 11.5 sind noch 5 Meldungen gekommen. Die letzte um 20:56 Uhr.
Hat jemand eine Idee?

Nicht wirklich eine Idee, aber kannst Du mal einen Chat mit dem botfather starten (von dem Account, der den bot urpsrünglich erzeugt hat) und schauen, ob Du noch etwas ändern kannst an dem Bot. Dann siehst Du auch ob da alles ok ist.

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

HenryD

Ich habe jetzt einen neuen Bot eingerichtet. alles funktioniert wieder. Beim"alten" Bot habe ich diese Meldung bekommen:
:
Method: messages.setTyping
Url: N/A
Result: {"_":"rpc_error","error_code":400,"error_message":"PEER_ID_INVALID"}
Stack: Error
    at Object.g [as invokeApi] (https://web.telegram.org/js/app.js:31:11150)
    at I (https://web.telegram.org/js/app.js:36:21375)
    at m.$emit (https://web.telegram.org/js/app.js:16:4877)
    at MessageComposer.onTyping (https://web.telegram.org/js/app.js:52:30665)
    at MessageComposer.onKeyEvent (https://web.telegram.org/js/app.js:50:25422)
    at HTMLDivElement.ie.event.dispatch (https://web.telegram.org/js/app.js:5:2788)
    at HTMLDivElement.f.handle (https://web.telegram.org/js/app.js:4:31558)

Ein Bot mit dem alten Namen einrichten ging nicht, da habe ich die Meldung bekommen, dass der Name schon vergeben ist (klar, an mich vergeben!)
FHEM auf Raspi2, HomeMatic, Enocean, Hue, Modbus, LaCrosse Temperatur/Feuchte, Baumarkt Steckdosen, Telegram Bot

viegener

Interessante Meldung, die scheint irgendwo aus dem telegramServer zu stammen. Mit irgendetwas bist Du wohl auf einen Fehler in deren Server gestossen.

Also ne, keine Viren in telegram unterbringen  ;D

Schön aber das es wieder geht,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

duu75

Kriege seit heute nachmittag eine Fehlermeldung und BOT geht nicht mehr.
Was muss ich machen?

2016.05.16 18:00:37 3: TelegramBot_Callback TG_Klingel: resulted in :Callback returned error:Bot was blocked by the user:: from SendIt
2016.05.16 18:00:37 3: TelegramBot_Callback TG_Klingel: Reached max retries (ret: Callback returned error:Bot was blocked by the user:) for msg 55735264 : test


Latest Revision: 11150
50_TelegramBot.pm    11090 2016-03-19 21:38:31Z viegener

Hat sich was an der API geändert und muss ich ein Update machen?
FHEM auf Ubuntu 20.04
RaspberryMatic CCU3 Charly, CUL 868, HUEBridge 2.0, HM-CFG-USB, AVR-NET-IO, Wemos D1 Mini ESP Easy, ESP32-CAM AI-on-the-Edge

viegener

Nein, Du hast in Telegram die Kommunikation mit dem bot angehalten und damit darf der Bot Dir nichts mehr senden.

Siehe auch Beschreibung hier: https://forum.fhem.de/index.php/topic,38328.msg446814.html#msg446814
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

duu75

Zitat von: viegener am 16 Mai 2016, 19:48:54
Nein, Du hast in Telegram die Kommunikation mit dem bot angehalten und damit darf der Bot Dir nichts mehr senden.

Siehe auch Beschreibung hier: https://forum.fhem.de/index.php/topic,38328.msg446814.html#msg446814

Danke!
Hatte versehentlich nicht den Verlauf , sondern den Bot im Eingang gelöscht.
FHEM auf Ubuntu 20.04
RaspberryMatic CCU3 Charly, CUL 868, HUEBridge 2.0, HM-CFG-USB, AVR-NET-IO, Wemos D1 Mini ESP Easy, ESP32-CAM AI-on-the-Edge

Murdock

Hallo viegener,

tolles Modul, danke dafür !

hier meine Frage ;)  Gibt es einen Weg, das der Bot bzw das Modul Nachrichten die vom Bot selber gesendet werden auch ausliest? Wir suchen gerade verzweifelt nach einer Lösung um vom IFTTT Maker Chanel enstpannt und zeitnah Befehle an fhem zu senden. Ich habe es schon geschaft das der Bot in meinem Bot-Chat den Befehel "doit set schalter1 on" empfängt, aber das fhem Modul merkt dies leider nicht. Sende ich persönlich im Bot-Chat den Befehl klappt alles bestens. Ich habe schon den Telegram Bot Support kontaktiert, leider ohne Erfolg. Die sagen Bots lesen Nachrichten anderer Bots nicht aus und auch eine Art "User-Token" um eine URL als persönliche Nachricht unter meinen Namen zu verschicken an den Bot, gibt es leider nicht.

Sinn des ganzen ist es vom Amazon Echo Sprechbefehle zu geben, diese werden von IFTTT Amazon Alexa Channel erkannt und über den Maker Channel per URL an den Telegramm-Bot gescickt, wo dann dein Modul zum Einsatz kommen sollte und die von den Bot gesendeten Befehele im fhem ausführt.
Das wäre meine letzte Hoffnung im Moment, vielleicht weist du ja ob so etas funktioniert ? Eine Info darüber wäre auf jeden Fall cool.

Hier geht es zur den detailierten Infos unserer Versuche:
https://forum.fhem.de/index.php/topic,41082.msg448259.html#msg448259

Danke.

Beste Grüße  8)

fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

viegener

Hallo Murdock,
über telegramBot gibt es dazu leider keine Lösung, ich habe auch keine Möglichkeit gefunden, dass ein Bot die Nachrichten anderer Bots lesen kann. Alle Versuche die ich dazu mal angestellt habe waren nicht erfolgreich.

Ohne, dass ich das empfehlen möchte gäbe es die Möglichkeit in FHEM das veraltete und nicht mehr weitergpeflegte 70_Telegram-Modul zu verwenden. Dieses ist am Anfang dieses Threads auch noch beschrieben (und auch im fhemwiki). Das 70_Telegram-Modul meldet sich als normaler Benutzer mit Telefonnummer in telegram an und könnte so auch nachrichten von Bots lesen. Generell kann das Modul auch Kommandosausführen.

Aber wie gesagt: Dieses Modul wird nicht mehr weitergepflegt, ist auf einem deutlich älteren Stand und erfordert auch die Installation von telegram-cli (siehe dazu fhemwiki)

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

Murdock

Hallo Johannes,

vielen Dank für deine schnelle Antwort. Dann weiss ich jetzt, das ich das so nicht weiter verfolgen brauche und teste jetzt mal mit dem 70_Telegram-Modul ein bischen rum. Solltest du dennoch irgendwann durch Zufall beim Programmieren auf eine Lösung stoßen, so schreib das bitte hier irgendwo rein, da deine Lösung mit dem telegramBot für mich bis jetzt echt der zeitnahste und ressourcenschonensde Ansatz war.

Vielen Dank

Gruss,
Sven
fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

tiroso

Hallo,

Ich habe seit kurzem das Problem das ich keine Bilder mit Beschreibung versenden kann. Habe leider vorher kein Backup angelegt und weiß im Moment nicht woran es liegt.
Bilder ohne Text bekomme ich mit sendImage weg, das ist kein Problem.
Sobald ich einen Text versende:
set TelegramBot sendImage /opt/fhem/plot.png Das ist ein Test

Kommt folgende Fehlermeldung:
2016.05.29 14:54:54 3: TelegramBot_Callback TelegramBot: resulted in :Callback returned error:Bad Request: Can't parse reply keyboard markup JSON object:: from SendIt
2016.05.29 14:54:54 3: TelegramBot_Callback TelegramBot: Reached max retries (ret: Callback returned error:Bad Request: Can't parse reply keyboard markup JSON object:) for msg 100376656 : /opt/fhem/plot.png



Woran kann das liegen? Was kann ich machen?
Ich würde ungerne nach dem Bild die Beschreibung senden, sondern lieber wieder als Caption dazu senden.

Ich hoffe mir kann da jemand helfen