Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

Frank_Huber

Zitat von: UweUwe am 12 Februar 2019, 08:25:39
Hallo, eine strukturelle Frage habe ich auch noch zu Telebot:

ich habe 2 FHEM Instanzen, die räumlich getrennt und nicht mit fhem2fhem verbunden sind. TelegrammBot nutze ich mit dem System 1 sehr intensiv und möchte dies auch gerne im System 2 nutzen. Wie ist hier die Vorgehensweise bezüglich Botfather etc.  Das ganze soll ja über ein Mobil Geräte laufen?
Am besten einen zweiten bot einrichten. Doppelte Verwendung mag telegram nicht.

Gesendet von meinem Doogee S60 mit Tapatalk


viegener

Zitat von: andies am 12 Februar 2019, 09:47:28
ich habe eine Frage zum Bot. Ich nutze MarkDown und es soll eigentlich folgender Text gesendet werden(Das sind die letzten Zeilen des Logfiles). Statt dessen erhalte ich aber die Fehlermeldung
Unknown command ), try help.
Weiß jemand, was da los ist? Das Senden selbst mit Telegram funktioniert ohne Probleme, die Schwierigkeiten tauchten erst seit der Verwendung des MarkDown-Attributs auf.

<edit> Es hat zu tun mit der Ersetzung der <, > und &-Zeichen, Hebe ich das auf, geht es durch. Nur soll man die nicht ersetzen?

Wenn ich es richtig verstehe versendest du die Logfile-Zeilen. In dem Text ist ein Semikolon enthalten, das ist ein Kommandotrenner. Hat also erstmal nichts mit Markdown oder Telegram zu tun, sondern damit, dass in FHEM in Befehlen bestimmte Zeichen Sonderfunktionen haben.

Nach dem ; steht ein ) also auch die Fehlermeldung.

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

viegener

Zitat von: UweUwe am 10 Februar 2019, 13:06:04
Hallo,

ich möchte mit einem Notify mit Stichwort Bilder verschicken: fhem("set teleBot sendImage ./www/snapshots/K.Sim_snapshot.jpg "); Kein Thema, funktioniert. Jetzt möchte ich aber an 2 Adressen gleichzeitig verschicken.
@837453xxx und an @832123xxx oder auch an @-528381xxx
Alle 3 Adressen tuns mit diesem Befehl: set teleBot message @-528381xxx TEST Sobald ich aber ein
set teleBot sendImage  @-528381xxx ./www/snapshots/K.Sim_snapshot.jpg oder
set teleBot sendImage @837453xxx  @832123xxx ./www/snapshots/K.Sim_snapshot.jpg
kommt nichts mehr an.
Hab die msgChatIds geändert.

Gibts da () [] Regeln, die ich nicht gefunden hab..?

Das sollte eigentlich funktionieren (snedImage auch mit mehreren account-IDs) und habe es eben auch noch mal bei mir probiert. Die Frage nach den ()-Regeln verstehe ich nicht.



Um das zu analysieren müsstest Du erstmal nach Fehlermeldungen im log schauen oder Rückmeldungen von Telegrambot.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

dinkel75

Hallo,

hab leider nicht gefunden, wie man einen Kontakt aus dem Contact Reading löscht.
Mit "setreading Telegram contacts" wurde zwar der Kontakt gelöscht, taucht dann aber kurze Zeit später wieder auf.

Danke für eure Hilfe!

Ciao
Michael

viegener

Zitat von: dinkel75 am 14 März 2019, 19:48:16
Hallo,

hab leider nicht gefunden, wie man einen Kontakt aus dem Contact Reading löscht.
Mit "setreading Telegram contacts" wurde zwar der Kontakt gelöscht, taucht dann aber kurze Zeit später wieder auf.

Danke für eure Hilfe!

Ciao
Michael

Wenn der Kontakt wieder auftaucht sind zwei Dinge bei Dir erfüllt:

- Das Attribut allowUnknownContacts ist nicht auf den Wert 0 gesetzt --> damit werden auch unbekannte Kontakte immer wieder hinzugefügt
- Der Kontakt ruft den Bot danach wieder auf - also hatte noch einen offenen Chat mit dem Bot. Damit wird der Kontakt wieder angelegt

Also solltest Du allowUnknownContacts auf 0 setzen und dann den Kontakt entfernen

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


viegener



Zitat von: dinkel75 am 15 März 2019, 12:27:01
Ist auf 0. Komisch!

Dann ist die Frage, ob Du nach Ändern der Kontakte auch gespeichert hast?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

dinkel75


errazzor

#2063
Hallo,

ich lasse mir über ein Favoriten-Kommando die aktuellen Spritpreise schicken. Allerdings sieht das Ergebnis etwas doof aus...

Das Kommando:


/[Sprit]=set Telegram message Aral Diesel:[TS.Aral:Diesel]\nMetro Diesel:[TS.Metro:Diesel]\nGlobus Diesel:[TS.Globus:Diesel]\nJet Diesel:[TS.Jet:Diesel]\nAral E5:[TS.Aral:Super_E5]\nMetro E5:[TS.Metro:Super_E5]\nGlobus E5:[TS.Globus:Super_E5]\nJet E5:[TS.Jet:Super_E5];;


Das Ergebnis:


Aral Diesel:1.219
Metro Diesel:1.189
Globus Diesel:1.189
Jet Diesel:1.189
Aral E5:1.339
Metro E5:1.309
Globus E5:1.319
Jet E5:1.319
TelegramBot FHEM -  Befehl:set Telegram message Aral Diesel:1.219
Metro Diesel:1.189
Globus Diesel:1.189
Jet Diesel:1.189
Aral E5:1.339
Metro E5:1.309
Globus E5:1.319
Jet E5:1.319: - Ergebnis:
OK


Es kommt also zuerst NUR die Ausgabe der Readings (genau so war es auch gewünscht), aber direkt danach kommt nochmal das gleiche nur anders formatiert.

Wie bekomme ich es hin, dass nur der erste Teil ausgegeben wird (also alles VOR dem Stichwort "TelegramBot FHEM...") ? Oder halt nur eine Ausgabe? Ich verstehe nicht, warum das doppelt kommt.

Danke.

viegener

@errazzor: ist bei Dir das attribut cmdReturnEmptyResult gesetzt (auf 0)?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

errazzor


Dia81

Hallo zusammen,

habe seit einigen Monaten ein undefiniertes Telegramproblem was ohne Codeänderung auftrat. Ich nutze ein Menü in Telegram. Sobald ich dort etwas andrücke wurde sonst über queryinline der nötige Befehl/notify ausgeführt (z.B. Brunnen aus) seit einiger Zeit wird diese Befehl wiederholt ausgeführt, wenn Telegram offen bleibt bis zu 5 mal. schließe ich es nach dem andrücken dann sogar solange bis ich telegram wieder öffne - es steht dann auch oben immer "lädt" und auch der Befehl wird wiederholt ausgeführt . Irgendwie schein im Modul etwas mit der "queryinline" - Routine verändert worden zu sein? Das macht leider mein ganzen Menü kaputt. Dies passiert nicht bei Statusnachrichten die über Telegram reinkommen, nur das Menü und egal was ich dort anrücke!! (also betrifft nur die notifys in Zussammenhang mit Telegram)  Woran kann das liegen?

Hier der Beispielcode mit entsprechender Iphone "Rückmeldung":

Entsprechender Menüeintrag:

define teleBot1032 notify teleBot:queryData:.💡OUT set teleBot queryInline @[teleBot:queryPeer] (BrunnenH|Gabione|Beet) (BrunnenV|Außenl|🔝) <b>💡OUT  </b>

Entsprechender Code:

define teleBot110 notify teleBot:queryData:.BrunnenH set Fritz_Steckdose_Aussen toggle;;set teleBot send @[teleBot:queryPeer] ...;;sleep 10;; set teleBot send @[teleBot:queryPeer] Brunnen jetzt <b>{(ReadingsVal ("Fritz_Steckdose_Aussen","state",0))}</b>

und Ereignis in Telegram (seit ein paar Monaten) als Bild

PS. nicht wundern wegen Steckdosentausch ist der Brunnen aktuell auf "Beet" dort sind der Code aber analog aus.

viegener

Zitat von: Dia81 am 07 April 2019, 22:03:58
Irgendwie schein im Modul etwas mit der "queryinline" - Routine verändert worden zu sein?

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.




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

ohosch

Hallo,

Ich befürchte irgendwo in den 138 Seiten wird die Antwort auf meine Frage versteckt sein, aber ich finde sie nicht :&

Ich habe auf 2 FHEM Instanzen Telegram Bots laufen.
Jetzt wäre es mir ganz recht, wenn eine Instanz Meldungen an die andere abgeben würde.

Leider gelingt mir das aber nicht. Als Resultat bekomme ich immer nur:

sentMsgResult
Callback returned error :Bad Request: chat not found:


Ich habe schon versuche den zweiten Bot per Hand in die Contacs des ersten einzutragen, aber auch das hat nicht geklappt.
Kennt jemand einen Weg dies hin zu bekommen?

Viele Grüße, Oliver

DeeSPe

Zitat von: ohosch am 09 April 2019, 11:58:14
Hallo,

Ich befürchte irgendwo in den 138 Seiten wird die Antwort auf meine Frage versteckt sein, aber ich finde sie nicht :&

Ich habe auf 2 FHEM Instanzen Telegram Bots laufen.
Jetzt wäre es mir ganz recht, wenn eine Instanz Meldungen an die andere abgeben würde.

Leider gelingt mir das aber nicht. Als Resultat bekomme ich immer nur:

sentMsgResult
Callback returned error :Bad Request: chat not found:


Ich habe schon versuche den zweiten Bot per Hand in die Contacs des ersten einzutragen, aber auch das hat nicht geklappt.
Kennt jemand einen Weg dies hin zu bekommen?

Viele Grüße, Oliver

Bot zu Bot geht meines Wissens nach nicht.

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