Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

@wthiess Was passiert denn genau, wenn Du /short eingibst?

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

wthiess

Entschuldige war eine Fehlmeldung. Ich hab direkt in der Fhem.cfg gearbeitet. Dann aber im Web dann gings. Habe meine Post gelöscht damit niemand verwirrt wird.
Danke
lg
Wolfgang
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

wthiess

#1007
Hallo!

Jetzt da ich schon tolle Erfolge habe kann ich eine echte Frage definieren.
Gibt es eine Möglichkeit die Buttons für die Favoriten schöner zu gestalten.
Als Anhang ein Bild vom Telegramm am PC.

lg
Wolfgang

#Telegram
define teleBot TelegramBot xxxxx:xxxxxxxxxxxxxxxxxxxxx
attr teleBot cmdFavorites /short
attr teleBot cmdKeyword doit
attr teleBot cmdRestrictedPeer xxxxxxxxxxxxxxx
attr teleBot defaultPeer Wolfgang_Thiess
attr teleBot favorites /[Rollo auf]=set R_WzF Auf;; /[Rollo zu]=set R_WzF Zu;; /[Haus Temp SVG]=set svgsend on
attr teleBot pollingTimeout 120
attr teleBot room Telegram



Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

viegener

Zitat von: wthiess am 09 Dezember 2016, 22:34:36
Hallo!

Jetzt da ich schon tolle Erfolge habe kann ich eine echte Frage definieren.
Gibt es eine Möglichkeit die Buttons für die Favoriten schöner zu gestalten.
Als Anhang ein Bild vom Telegramm am PC.

lg
Wolfgang



Leider bisher nicht wirklich. Ich vermute mit schöner meinst Du, dass nur die beschreibenden Texte erscheinen sollen? Oder gibt es andere Verschönerungen (Bilder werden von telegram nicht unterstützt)?

kurzer Hintergrund, warum auf den Tasten "/short..." steht, Ein Tastendruck ist für den Bot genauso, als ob der Text eingetippt würde und die Nachritcht ist auch keine Antwort sondern nur eine weitere Nachricht. .Damit der Text von der Botimplementierung als Kommand erkannt wird, muss dieser also wie ein normales Favoritenkommando gebaut sein
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wthiess

Ok danke. Ist trotzdem eine super Berreicherung. Hab jetzt von Mail auf Telegram umgestellt. Lg Wolfgang

Gesendet von meinem SM-N9005 mit Tapatalk

Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

viegener

#1010
Ich habe mal 2 neue Funktionen hinzugefügt zum Modul (erstmal nur in github):

- Man kann jetzt direkt bei den message-Set-Befehlen auch ein Keyboard für den Empfänger mitgeben, indem man Strings in () vor der eigentlichen Message hinzufügt:
Beispiel:
set aTelegramBotDevice message @@someusername (yes) (may be) are you there?
Dies geht beim Versenden von Textnachrichten
Mehrere Tasten in einer Zeile können durch | getrennt werden:
set aTelegramBotDevice message @@someusername (yes|no) (may be) are you there?


- Neuer Set-Befehl msgForceReply, um beim Empfänger eine direkte Antwort anzufordern. Dieser Befehl erlaubt leider keine Definition von Keyboards beim Empfänger, ansonsten verhält sich der Befehl wie ein normales "set ... message". Diese ist eine Einschränkung im telegram bot api, ich habe aber bereits einen feature request gestellt.

Ausserdem habe ich auch ein Reading für das Nachverfolgen von Antworten ("reply") hinzugefügt: msgReplyMsgId

Wenn es jemand ausprobiert würde ich mich über Rückmeldung freuen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

igami

Zitat von: viegener am 10 Dezember 2016, 23:03:31
- Man kann jetzt direkt bei den message-Set-Befehlen auch ein Keyboard für den Empfänger mitgeben, indem man Strings in [] vor der eigentlichen Message hinzufügt:
Beispiel:
set aTelegramBotDevice message @@someusername [yes] [may be] are you there?
Dies geht beim Versenden von Textnachrichten
Man kann ja auch mehrspaltige Keyboards senden. Würdes du das dann als | Trennzeichen in den Klammern einbauen?
Beispiel:

set aTelegramBotDevice message @@someusername [1|2|3] [4|5|5] [7|8|9] [*|0|#] what is your number?

siehe auch Youtube: FHEM Telegram Dialoge aus dem chatBot (vordefinierte Dialoge) für Telegram Thread.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

MadMax-FHEM

@viegener: Toll! Danke!!!!

@igami: noch toller!

Muss ich bei Gelegenheit (aber wird wohl Weihnachten werden) mal ausprobieren!

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: igami am 11 Dezember 2016, 07:52:28
Man kann ja auch mehrspaltige Keyboards senden. Würdes du das dann als | Trennzeichen in den Klammern einbauen?
Beispiel:

set aTelegramBotDevice message @@someusername [1|2|3] [4|5|5] [7|8|9] [*|0|#] what is your number?


Kaum lege ich mal Funktionalität nach, schon beginnen hier die Forderungen  ;) - Nein im Ernst, ja schaue ich mir gleich mal an

Mir ging es im ersten Schritt mal darum, hilft das für die Dialogführung und funktioniert das so?
Hintergrund wenn irgendjemand heute Nachrichten hat, die mit einer eckigen Klammer anfangen, dann ändert sich das Verhalten durch die neue Funktion!

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

igami

Zitat von: viegener am 11 Dezember 2016, 11:06:30
Kaum lege ich mal Funktionalität nach, schon beginnen hier die Forderungen  ;) - Nein im Ernst, ja schaue ich mir gleich mal an
Ich denke immer, dass es einfacher ist das vor dem einchecken zu bedenken ;)

Ich bin gerade dabei eine 99_myTelegramBotDialogUtils.pm zu schreiben. Daraus die sub für das senden von keyboards

sub TBD_keyboard($@) {
  my ($msg, @rows) = @_;
  my @keys;

  for (@rows){
    my @columns = split("\\|", $_);
    push(@keys, \@columns);
  }

  my $jsonkb = TelegramBot_MakeKeyboard($TBD_hash, 1, 0, @keys);
  TelegramBot_SendIt($TBD_hash, TBD_peer(), $msg, $jsonkb, 0);

  return;
}

Ich wollte ja für die Telegram Dialoge mal ein eigenes Modul schreiben. Aber vorerst wird es wohl bei DOIF und ein paar subs bleiben ;)

Getestet habe ich deine Variante nicht, werde ich wohl dieses Jahr auch nicht mehr zu kommen :( Ich könnte mir aber vorstellen, dass es bei der Verwendung mit DOIF Probleme geben wird, da dort ja auch eckige Klammern verwendet werden.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

viegener

OK, auch die Erweiterung mit mehreren Keys ist enthalten, neue Version in github, habe auch noch ein paar Abrundungen vorgenommen.

Zitat von: igami am 11 Dezember 2016, 11:45:22
Getestet habe ich deine Variante nicht, werde ich wohl dieses Jahr auch nicht mehr zu kommen :( Ich könnte mir aber vorstellen, dass es bei der Verwendung mit DOIF Probleme geben wird, da dort ja auch eckige Klammern verwendet werden.

Ja, eckige Klammern werden an mehreren Stellen verwendet, da ich gerade auch Schwierigkeiten mit set-logic [device:reading] bekommen habe, ist das jetzt kurzfristig auf runde Klammern geändert. Was auch wohl nicht Konfliktfrei ist, aber vielleicht weniger Probleme auslöst.

Also neue Version mit runden Klammern ist in github:

set aTelegramBotDevice message @@someusername (yes|no) (may be) are you there?


Achso: Und feedback von tests wäre immer noch erwünscht!
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

stratege-0815

Ich kann meinen Bot nicht mehr ereichen vom Smartphone und er mich nicht mehr. Geändert habe ich meines Wissens nichts mehr seit einigen Wochen.

In Fhem sehe ich:

sentLastResult

Callback returned error:Forbidden: Bot was blocked by the user:


und

PollingLastError

Callback returned no valid JSON: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<html>\r\n<head><tit...") at ./FHEM/50_TelegramBot.pm line 1746, <GEN20> line 4286.


Der Bot steht in meinem Handy auch nicht mehr in der Kontaktliste. Habe ich ihn vielleicht mal entfernt? Wie kriege ich ihn wieder rein?

Gruß
Jan

viegener

@stratege-0815: Ich vermute, Du hast den Bot-Chat in Telegram beendet und damit wohl zumindest auch das Authtoken invalidiert.

Lösung: Erstmal wieder zum botfather gehen und schauen ob der Bot noch bekannt ist.
Wenn ja - neues Authtoken generieren und verwenden.
Wenn nein - neuen Bot aufsetzen (ist ja relativ simpel) und einrichten

Von Deinem Benutzer solltest Du den Bot dann anschreiben, damit Du mit ihm wieder reden kannst

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

stratege-0815

Ja, offenbar war das beenden des Chats wohl die eigentliche Ursache. Ich dachte der Chat geht wieder auf, so wie bei anderen Chats. Zudem musste ich in telegramBot noch ein"reset" ausführen.
Scheint wieder zu gehen.

raimundl

Hallo!

Tolle neue Funktion (mit mehreren Keys) - funktioniert!

Habe aber nachstehen Meldung:

PollingLastError
Callback returned no valid JSON: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<html>\r\n<head><tit...") at ./FHEM/50_TelegramBot.pm line 1746

Danke und LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....