Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

speedy90

#2175
So, ich hoffe, ich habe alle ID's gefunden und gelöscht.... ;)

@ amenomade: Das Log deutet darauf hin, den Botname nicht rauszuschmeißen.
@Entwickler des Moduls: Darf ich mir das Feature wünschen?


2019.08.31 08:36:52 5: TelegramBot_Get teleBot: called
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: called from Polling
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: data returned :{"ok":true,"result":[{"update_id":xxxx,
"message":{"message_id":5579,"from":{"id":xxxxx,"is_bot":false,"first_name":"Marcel","language_code":"de"},"chat":{"id":-xxxxx,"title":"Wohnung (unwichtiges)","type":"group","all_members_are_administrators":true},"date":xxxx,"text":"/b4@HSHGonzalezbot","entities":[{"offset":0,"length":18,"type":"bot_command"}]}}]}:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found an ARRAY
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found an ARRAY
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :0: to :0:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :bot_command: to :bot_command:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :18: to :18:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :xxxxx: to :xxxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :de: to :de:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :Marcel: to :Marcel:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :0: to :0:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :5579: to :5579:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :xxxx: to :xxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :1: to :1:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :Wohnung (unwichtiges): to :Wohnung (unwichtiges):
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :-xxxxx: to :-xxxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :group: to :group:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :/b4@HSHGonzalezbot: to :/b4@HSHGonzalezbot:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :xxxx: to :xxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :1: to :1:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: after encoding
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: polling returned result? 1
2019.08.31 08:37:10 5: UpdatePoll teleBot: number of results 1
2019.08.31 08:37:10 5: UpdatePoll teleBot: parse result
2019.08.31 08:37:10 4: TelegramBot_ParseMsg teleBot: Textmessage
2019.08.31 08:37:10 4: TelegramBot_ParseMsg teleBot: text   :/b4@HSHGonzalezbot:
2019.08.31 08:37:10 4: TelegramBot_ContactUpdate # Contacts in hash before :8:
2019.08.31 08:37:10 4: TelegramBot_ContactUpdate # Contacts in hash after :8:
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # Contacts is xxxxx:Marcel::
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # name is Marcel
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # Contacts is -xxxxx::#Wohnung_(unwichtiges):
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # name is #Wohnung_(unwichtiges)
2019.08.31 08:37:10 5: TelegramBot_Set teleBot: called
2019.08.31 08:37:10 5: TelegramBot_checkAllowedPeer teleBot: called with xxxxx
2019.08.31 08:37:10 4: TelegramBot_SendFavorites cmd correct peer
2019.08.31 08:37:10 4: TelegramBot_SendFavorites cmd :4@HSHGonzalezbot:   peer :xxxxx:   aliasExec :0
2019.08.31 08:37:10 5: TelegramBot_SendFavorites parsed cmdFavId :4   cmdaddition :@HSHGonzalezbot:
2019.08.31 08:37:10 4: TelegramBot_SendFavorites exec cmd :3:
2019.08.31 08:37:10 4: TelegramBot_SplitFavoriteDef cmd :/[Alles ausschalten]={ALLES_AUS}:
      alias :<undef>: desc :Alles ausschalten:  parsecmd :{ALLES_AUS}:   confirm: 0:   result: 0:   hidden: 0
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # Contacts is xxxxx:Marcel::
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # name is Marcel
2019.08.31 08:37:10 5: TelegramBot_ExecuteCommand final cmd for analyze :{ALLES_AUS} @HSHGonzalezbot:
2019.08.31 08:37:10 4: TelegramBot_ExecuteCommand teleBot: parse cmd returned :{ALLES_AUS} @HSHGonzalezbot:
2019.08.31 08:37:10 3: TelegramBot_ExecuteCommand teleBot: cmd executed :{ALLES_AUS} @HSHGonzalezbot: -->    :Unknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 4: TelegramBot_ExecuteCommand result for analyze :Unknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 5: TelegramBot_ExecuteCommand teleBot: TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:\nUnknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 5: TelegramBot_SendIt teleBot: called
2019.08.31 08:37:10 5: TelegramBot_SendIt teleBot: try to send message to :xxxxx: -:TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:\nUnknown command {ALLES_AUS}, try help.: - add :<undef>: - replyid :<undef>::    options ::
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # Contacts is xxxxx:Marcel::
2019.08.31 08:37:10 4: TelegramBot_GetFullnameForContact # name is Marcel
2019.08.31 08:37:10 5: TelegramBot_readToken: Read Telegram API token from file
2019.08.31 08:37:10 4: TelegramBot_SendIt parseMode 0
2019.08.31 08:37:10 4: TelegramBot_SendIt teleBot: timeout for sent :30:
2019.08.31 08:37:10 4: TelegramBot_ParseMsg teleBot: SendFavorites returned :TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:\nUnknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 5: TelegramBot_UpdatePoll teleBot: called
2019.08.31 08:37:10 5: TelegramBot_UpdatePoll teleBot: - Initiate non blocking polling - With callback set
2019.08.31 08:37:10 5: TelegramBot_readToken: Read Telegram API token from file
2019.08.31 08:37:10 4: TelegramBot_UpdatePoll teleBot: initiate polling with nonblockingGet with 120s
2019.08.31 08:37:10 5: TelegramBot_UpdatePoll teleBot: - Ende > next polling started
2019.08.31 08:37:10 4: TelegramBot_Callback teleBot: resulted in SUCCESS from Polling
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: - Ende > Control back to FHEM
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: called from SendIt
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: data returned :{"ok":true,"result":{"message_id":5580,"from":{"id":xxxx,"is_bot":true,"first_name":"HSH Gonzalez","username":"HSHGonzalezbot"},"chat":{"id":xxxxx,"first_name":"Marcel","type":"private"},"date":xxxx,"text":"TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:\nUnknown command {ALLES_AUS}, try help.","entities":[{"offset":39,"length":15,"type":"mention"}]}}:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :1: to :1:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found an ARRAY
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :39: to :39:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :15: to :15:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :mention: to :mention:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :HSHGonzalezbot: to :HSHGonzalezbot:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :1: to :1:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :HSH Gonzalez: to :HSH Gonzalez:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :xxxx: to :xxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :5580: to :5580:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :xxxx: to :xxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :xxxxx: to :xxxxx:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :Marcel: to :Marcel:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :private: to :private:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: encoded a String from :TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:
Unknown command {ALLES_AUS}, try help.: to :TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:
Unknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Deepencode teleBot: found a HASH
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: after encoding
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: resulted in SUCCESS from SendIt
2019.08.31 08:37:10 5: TelegramBot_Set teleBot: called
2019.08.31 08:37:10 5: TelegramBot_Callback teleBot: - Ende > Control back to FHEM

andies

schreib das mal in code tags, liest sich einfacher. Da oben, der Knopf mit der Raute #
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

amenomade

#2177
Hmmm
Zitat2019.08.31 08:37:10 5: TelegramBot_SendFavorites parsed cmdFavId :4   cmdaddition :@HSHGonzalezbot:
2019.08.31 08:37:10 4: TelegramBot_SendFavorites exec cmd :3:
Er parsed doch aus dem Kommando: cmdFavID: 4 und cmdaddition @HSHGonzalezbot

Das Problem ist eher:
Zitat2019.08.31 08:37:10 3: TelegramBot_ExecuteCommand teleBot: cmd executed :{ALLES_AUS} @HSHGonzalezbot: -->    :Unknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 4: TelegramBot_ExecuteCommand result for analyze :Unknown command {ALLES_AUS}, try help.:
2019.08.31 08:37:10 5: TelegramBot_ExecuteCommand teleBot: TelegramBot FHEM -  Befehl:{ALLES_AUS} @HSHGonzalezbot: - Ergebnis:\nUnknown command {ALLES_AUS}, try help.:

Wa soll {ALLES_AUS} bedeuten? Funktionniert wirklich dieses Favorite wenn Du "/b4" manuell sendest?

Aber ich glaube ja,... irgenwie müsste @viegener dran

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

speedy90

Guten Morgen,

{ALLES_AUS} ist ein Skript, was einfach alle Lampen ausschaltet, Musik ausmacht usw. 


Wenn ich "/b4" allein sende funktioniert es.


Damit folgendem Satz kann ich nichts anfangen, das verstehe ich nicht:
ZitatAber ich glaube ja,... irgenwie müsste @viegener dran



Ein anderes Beispiel noch:

Wenn ich "/b2" schicke geht es,
bei "/b2@HSHGonzalezbot" bekomme ich als Antwort:

TelegramBot FHEM -  Befehl:set A_49_A on-for-timer 3600 @HSHGonzalezbot: - Ergebnis:
on-for-timer requires 1 parameter

Wie amenomade schon schrieb, der Botname wird wahrscheinlich nicht weggefiltert und als Parameter an den Befehl angehangen.


amenomade

Ich meinte: ja, viegener muss schauen. Botname wird nicht weggefiltert
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

speedy90

Ach, das ist der Entwickler... Das hatte ich nicht verstanden. Danke

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

viegener

@speedy90: Du hast das Attribut favoritesInline nicht gesetzt? Setze doch mal favoritesInline auf den Wert 1

Effekt: das Favoritenmenue wird dann inline (und nicht als Tastatur) angezeigt und damit tritt das Problem nicht auf. Die EInfache Favoritentastatur, die Du jetzt verwendest liegt leider nicht in meiner Hand, da hierbei das Kommando direkt als Nachricht geschickt wird und Telgram das "@<botname>" wohl hinzufügt, wenn es in Gruppen aufgerufen wird. Rausfiltern wäre prinzipiell möglich, da das Kommando aber beliebig sein kann würde ich möglicherweise gültige Kommandos ausfiltern.

Generell sind die Inline-Menus der bessere Ansatz, diese hat Telegram wesentlich besser durchdacht als die Tastaturen die sehr viele Einschränkungen haben

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

speedy90

@viegener

Ich habe es probiert. Mit der Umgehung für das Problem kann ich leben. Vielen Dank.

flummy1978

Hallöchen,

ich habe schon länger die Funktionen der Benachrichtigung drin, die mir unter bestimmten Umständen eine Nachricht schickt.... Funktioniert soweit wunderbar.

Nun habe ich mich das erste Mal länger mit den Favoriten beschäftigt... funktioniert soweit auch bis auf zwei Fragen die sich aufstellen, zu den ich einfach nichts finde:

Gibt es eine Möglichkeit den Fav.Namen auszublenden ? Angenommen mein Fav Befehl ist BLUBB, dann steht dort immer:

/BLUBB1 Lampe /BLUBB2 LEDs /BLUBB3 Pumpe /BLUBB4 Licht allgemein

ich hätte gern:
Lampe LEDs Pumpe Licht allgemein

Ist das möglich?

Das zweite:
Gibt es eine Möglichkeit 2 oder mehrere Favoritensetlists zu bestimmen? Also um bei meinem Beispiel zu bleiben:

BLUBB => Ergibt Favoriten für Lampe LEDs Pumpe Licht allgemein
BLA => Ergibt Favoriten fürs Wetter, Innentemperaturen usw
BLABLUBB => Ergibt Favoriten für Statistiken usw...

Das wären Zwei Funktionen die mich total glücklich machen würden --- Vielleicht gibts ja schon was in der Richtung und ich brauche nur den richtigen Tritt in die richtige Richtung.

Vielen Dank im Voraus, für jeglichen Tipp

Viele Grüße
Andreas

viegener

@flummy1978: Zuerst die schlechte Nachricht - mehrere Favoritenlisten sind nicht möglich dafür müsstest Du über eigene Mechanismen gehen. Es gibt dazu aber auch Beispiele wie sich so etwas realisieren - z.B. chatbot --> https://forum.fhem.de/index.php/topic,51425.0.html

ZU Deinem ersten Punkt - Ich vermute Du meinst Aliase für Befehle. Es gibt auch noch die Möglichkeit Descriptions anzugeben (und auch dann den entsprechenden Befehl nicht erscheinen zu lassen).

Ein Favorit mit
/[-Hallo]=set dummy on

Erscheint dann einfach als Hallo auf dem Button im Telegrammenu
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

flummy1978

#2186
Hallo Viegener,

zunächst einmal herzlichen Dank, dass Du Dir meiner Fragen angenommen hast :)

/[-Hallo]=set dummy on

Oh mann .... da muss man erstmal drauf kommen -.-  ....   /-[Hallo]=set dummy on und /[Hallo]= -set dummy on hab ich einfach mal in meiner wilden Testerei probiert im Bewusstsein, dass es zu 99,999% nicht funktionieren wird. Vielen dank  8)

# Edith sagt dazu:
Die Anzeige funktioniert wunderbar, solange man die FavoritesInline Option aktiviert hat. Wenn man das nicht hat und die Favoriten die Tastatur ersezten, steht dann wieder /BLUBB1=Lampe /BLUBB2=LEDs /BLUBB3=Pumpe /BLUBB4=Licht allgemein


Zu  dem Chatbot .. ich hatte sowas schon befürchtet, sowas könnte ich dann auch selbst basteln,(auch wenn es sicher 2 Jahre dauert  ;D), wenn ich weiß wie die Favoritenbefehle versandt werden ? Wie müssen die vom Telegram aus erstellten Nachrichten aussehen, damit es so aussieht wie bei den Favoriten und man die Befehle ausführen kann? (alles was irgendwie wieder anders aussieht, würde die Regierung ablehnen  ::) )

Viele Grüße und danke nochmal für die schnelle Antwort

Andreas

jmike

Hallo.

Ich hab seit Anfang September sporadisch aber mehrfach am Tag FHEM freezes für 44 bzw. 45 Sekunden.
[Freezemon] freezemon: possible freeze starting at 10:14:45, delay is 44.495 possibly caused by: no bad guy found

Eine Diagnose brachte zu Tage, dass das TelegramBot Polling dafür verantwortlich ist weil:
TelegramBot_Callback telegram: resulted in NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first from Polling

Habe nach und nach die üblichen Verdächtigen (FHEM, Modul, httpUtils, Net::SSLeay, IO::Socket, LWP Useragent und https) aktualisiert, aber leider keine Besserung.
Ich vermute mal es hängt im Telegram Backend, ähnlich zu: https://forum.fhem.de/index.php/topic,38328.msg674437.html#msg674437

Hat das eventuell noch jemand?
(Die Meldung taucht nur mit verbose 5 im TelegramBot auf)

MadMax-FHEM

Wie du aber liest wird "NON_BLOCKING_GET" verwendet!
Sollte also HIER (an dieser Stelle) nicht blockieren...

Hast du das attr dnsServer in global gesetzt!?

Denn obwohl NON-Blocking programmiert ist ein "DNS-Lookup" leider trotzdem "blocking", wenn das Attribut NICHT gesetzt ist.

Dort einfach deinen Router/Gateway/... eintragen.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

viegener

Zitat von: jmike am 15 September 2019, 11:24:26
Hallo.

Ich hab seit Anfang September sporadisch aber mehrfach am Tag FHEM freezes für 44 bzw. 45 Sekunden.
[Freezemon] freezemon: possible freeze starting at 10:14:45, delay is 44.495 possibly caused by: no bad guy found

Eine Diagnose brachte zu Tage, dass das TelegramBot Polling dafür verantwortlich ist weil:
TelegramBot_Callback telegram: resulted in NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first from Polling

Habe nach und nach die üblichen Verdächtigen (FHEM, Modul, httpUtils, Net::SSLeay, IO::Socket, LWP Useragent und https) aktualisiert, aber leider keine Besserung.
Ich vermute mal es hängt im Telegram Backend, ähnlich zu: https://forum.fhem.de/index.php/topic,38328.msg674437.html#msg674437

Hat das eventuell noch jemand?
(Die Meldung taucht nur mit verbose 5 im TelegramBot auf)

Das Symptom habe ich auch auf meiner Installation - Bei mir manchmal jede Stunde - bisher hatte ich es noch nicht mit Telegram in Verbindung gesetzt, denn bei mir tritt es immer dann auf, wenn bei meiner FHEM-Installation der Speicher überläuft.

Einige Fragen fallen mir ein:
- Wie ist Dein Polling Intervall eingestellt (15 sec?)?
- FHEM ist auf aktuellem Stand?
- Hast Du ebenfalls Meldungen wie: "Cannot fork: Cannot allocate memory "

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