Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

igami

Folgendes sollte seit fhem 5.7 auch funktionieren:

Telegram1:msgText:.Temp set Telegram1 message
[Stadt_Aussen:temperature] Grad   [Stadt_Aussen:humidity] % Hum

Sicher bin ich mir zwar nicht, aber im Zweifelsfall funktioniert das mit einem DOIF statt notify :D

Grüße
igami
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

marvin78

Da das ein Feature von set ist (siehe commandref), ist es wohl egal, ob man das nun in DOIF, notify oder sonstwas verwendet. Mischen von Perl Code und FHEM ist nicht notwendig (wenn man nur Readings weiter verwendet).

igami

Hatte in der Commandref nach [<device>:<reading>] gescht, da war ich nur bei IF gelandet, aber jetzt wo du sagt set, da steht es ohne spitze Klammern

Zitat
From featurelevel 5.7 on the set (and setreading) command replaces:

    [device:reading] with the corresponding reading of device, if both device and reading exists.
    [device:reading:d] same as above, but only the number is retrieved, see ReadingsNum
    {(perlExpression)} with the result of perlExpression, if the expression does not generates an error.

Aber trotzdem sollte Perl auch funktionieren.
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

marvin78

Perl funktioniert auch, viele tun sich bloß schwer, die Klammern richtig zu setzen und den Code klar abzugrenzen. Support muss man dafür nicht geben, wenn es auch einfacher geht ;)

Tedious

Hallo zusammen,

erst mal besten Dank für die Arbeit hier. Bin letztendlich gestern auch von WA hierher gewechselt, da mit das dauernde Blocken/Umstellen auf den Sender geht... Soweit klappt alles, ich bin noch dabei mich einzuarbeiten. Eine Frage zu den Keyboards... ich habe Favoriten angelegt, als Kommando ein /do gesetzt, Keyboard wird mir auch angeboten. Meine Syntax (exemplarisch) ist wie folgt:

/Balkon[Balkontemperatur]=set Telegram msg Temperatur [LaCrosse_12:temperature] C°;
/Server[WHS wecken]=set WOL_WHS on;
/PlotMarie[Maries Zimmer GFX]={plotAsPng("SVG_FileLog_HZ_Marie_1")};


Im Keyboard steht jetzt (leider) /do1 = /Balkon = Balkontemperatur, etc. Gibt es einen Parameter den ich übersehen habe der mir *nur* die Beschreibung in den [] liefert, also bspw. Nur Balkontemperatur? Das würde den WAF massiv steigern

Zweite kleine Frage - ggf. habe ich das auch übersehen? Zu den Nutzern - kann ich ja bei den Benachrichtigungen mit "message @ABC" gezielt triggern. Sendet mgs als Parameter an den Initiator (also den der an den Bot geschrieben hat) oder an den defaultPeer? Sprich, muss ich für eine Temperaturabfrage in einem Raum für jeden (theoretischen) User der anfragen könnte einen separaten Befehl definierten, oder geht die Antwort direkt an den Fragestellenden zurück?

Beste Grüße

Sascha
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Muschelpuster

#635
Ich habe gerade mal folgendes entspr. der Commandref getestet:attr telegramBot favorites [Rolllaeden zu]=set DuoFern_Rollladen.* position 10;[Rolllaeden auf]=set DuoFern_Rollladen.* position 0Mein Favoritenkommando ist 'Befehl'. OK, ohne Slash geht das nicht in der Gruppe, aber hier ist ja die direkte Kommunikation mit dem Bot eh besser.
Dann steht nur da:
ZitatBefehl1 = Rolllaeden zu
Befehl2 = Rolllaeden auf
Das finde ich nun schon recht brauchbar. Jetzt muss nur noch die Antwort aufgehübscht werden...

beschriftete Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Muschelpuster

#636
Zitat von: Tedious am 26 April 2016, 14:43:41
Zweite kleine Frage - ggf. habe ich das auch übersehen? Zu den Nutzern - kann ich ja bei den Benachrichtigungen mit "message @ABC" gezielt triggern. Sendet mgs als Parameter an den Initiator (also den der an den Bot geschrieben hat) oder an den defaultPeer? Sprich, muss ich für eine Temperaturabfrage in einem Raum für jeden (theoretischen) User der anfragen könnte einen separaten Befehl definierten, oder geht die Antwort direkt an den Fragestellenden zurück?
Geht an den Fragestellenden zurück - habe ich gerade mit Deinem 3. Fall getestet.
Im 1. Fall löst Du ja ein Kommando aus, das wird an den Defult Peer gehen, da würde ich mal versuchen:set Telegram msg @[Telegram:msgPeerId] Temperatur [LaCrosse_12:temperature] C°Das führt aber dazu, dass Du die Nachricht und eine Quittung über die Befehlsausführung erhälst...
Mit Homematic konnte ich das auch nicht wirklich schick lösen:[Temperatur Wohnzimmer]=get HM_Hzg_T_WZ param measured-temp;Geht zwar, aber der WAF tendiert bei der Antwort noch gegen 0:
ZitatTelegramBot FHEM :
    Befehl:get HM_Hzg_T_WZ param measured-temp:
  Ergebnis:
21.5


überprüfte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

MadMax-FHEM

Hallo,

bin nicht sicher ob ich hier richtig aufgehoben bin aber trotzdem:

habe eben ein update gemacht und danach startete fhem nicht mehr.

Per Linux-Console habe ich im Logfile folgenden letzten Eintrag gefunden:


Unmatched ) in regex; marked by <-- HERE in m/Y@si___) <-- HERE / at ./FHEM/50_TelegramBot.pm line 2140, <$fh> line 954.


Nach dem Deaktivieren des TelegramBot modul (define in fhem.cfg auskommentiert) läuft es wieder...
...aber nat. ohne TelegramBot :-|

Danke schon mal, 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: MadMax-FHEM am 26 April 2016, 23:23:52
Hallo,

bin nicht sicher ob ich hier richtig aufgehoben bin aber trotzdem:

habe eben ein update gemacht und danach startete fhem nicht mehr.

Per Linux-Console habe ich im Logfile folgenden letzten Eintrag gefunden:


Unmatched ) in regex; marked by <-- HERE in m/Y@si___) <-- HERE / at ./FHEM/50_TelegramBot.pm line 2140, <$fh> line 954.


Nach dem Deaktivieren des TelegramBot modul (define in fhem.cfg auskommentiert) läuft es wieder...
...aber nat. ohne TelegramBot :-|

Danke schon mal, Joachim

Ich muss zugeben, dass ich erstmal ratlos bin, denn an der entsprechenden Zeile gibt es im aktuellen Stand nichts, was dazu passt. Kannst Du vielleicht mal Deine 50_TelegramBot.pm-Datei hier als Anhang hochladen? Dann kann cih daran mal schauen.

Ich bin erstmal ratlos....
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MadMax-FHEM

Hi,

danke für die schnelle Reaktion!

Hab auch schon geschaut und (auf die schnelle) auch nix gefunden...

Klar, kommt...

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

OK, habe gerade eine neue Version ins SVN hochgeladen, die das Problem vermutlich fixt.
Vielleicht kannst Du ja auch nochmal ausprobieren?
Die Version ist hier im Anhang

Zum Ausprobieren die Datei über Deine Version drüberkopieren und den Server einmal neustarten.

Sorry für den Fehler: Es hing vermutlich mit Sonderzeichen im Kontakt zusammen...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MadMax-FHEM

Hi,

sorry, wenn ich gewusst hätte, dass so schnell noch was kommt wäre ich länger wach geblieben...

Habs eingespielt: funktioniert!!

Super! Danke!

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)

Tedious

Zitat von: Muschelpuster am 26 April 2016, 18:15:37
Geht an den Fragestellenden zurück - habe ich gerade mit Deinem 3. Fall getestet.
Im 1. Fall löst Du ja ein Kommando aus, das wird an den Defult Peer gehen, da würde ich mal versuchen:set Telegram msg @[Telegram:msgPeerId] Temperatur [LaCrosse_12:temperature] C°Das führt aber dazu, dass Du die Nachricht und eine Quittung über die Befehlsausführung erhälst...

Hmm... so ganz schlau werde ich leider noch nicht. Unter WH hatte ich das so gelöst dass ich notifys gebastelt haben die denn auf die Kontakte gehört haben. Hat also A den Befehl XYZ gesendet ist das notify drauf angesprungen, hat den Befehl ausgeführt und das Feedback an a zurückgesendet. Analoges auch bei B. Trage ich hier einen defaultPeer auf A ein, und B fragt z.B. die Temperatur ab bekommt A die Antwort und B keine. Wo liegt mein Denkfehler, bzw. wie kann ich das lösen - das ist mir leider ncohj nicht klar? A soll alle Statusmeldungen bekommen, den hätte ich also gerne als defaultPeer. Sollte B trotzdem eine Anfrage stellen sollte B auch die Antwort bekommen. Klar, man kann komplexe Befehle senden - aber B ist in dem Fall weiblich, für den WAF sollte das über das vorgeschlagene Keyboard der Favoriten gehen ;)

ZitatMit Homematic konnte ich das auch nicht wirklich schick lösen:[Temperatur Wohnzimmer]=get HM_Hzg_T_WZ param measured-temp;Geht zwar, aber der WAF tendiert bei der Antwort noch gegen 0:

Zumindest das kann man eingrenzen. Der Parameter cmdReturnEmptyResult = 0 unterbindet das zuverlässig.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

viegener

Zitat von: Tedious am 27 April 2016, 09:24:03
Hmm... so ganz schlau werde ich leider noch nicht. Unter WH hatte ich das so gelöst dass ich notifys gebastelt haben die denn auf die Kontakte gehört haben. Hat also A den Befehl XYZ gesendet ist das notify drauf angesprungen, hat den Befehl ausgeführt und das Feedback an a zurückgesendet. Analoges auch bei B. Trage ich hier einen defaultPeer auf A ein, und B fragt z.B. die Temperatur ab bekommt A die Antwort und B keine. Wo liegt mein Denkfehler, bzw. wie kann ich das lösen - das ist mir leider ncohj nicht klar? A soll alle Statusmeldungen bekommen, den hätte ich also gerne als defaultPeer. Sollte B trotzdem eine Anfrage stellen sollte B auch die Antwort bekommen. Klar, man kann komplexe Befehle senden - aber B ist in dem Fall weiblich, für den WAF sollte das über das vorgeschlagene Keyboard der Favoriten gehen ;)

Zumindest das kann man eingrenzen. Der Parameter cmdReturnEmptyResult = 0 unterbindet das zuverlässig.

Ich versuche mal eine Erklärung zu geben, da es verschiedene Attribute gibt, die hier eine Rolle spielen:

Generell wird bei der Ausführung von FHEM-Kommandos übr telegram (auch Favoriten) das Ergebnis an den Sender des Kommandos zurückgeschickt.

cmdRestrictedPeer Dieses Attribut beschränkt die Ausführung von Kommandos auf hier gelistete Kontakte oder alle (default) wenn nicht gesetzt.
ACHTUNG: Ich empfehle dringend dieses Attribut zu setzen und zwar auf die Contact-IDs (numerisch) für erlaubte Kontakte!

defaultPeerCopy ermöglicht, dass Ergebnisse von Kommandos AUCH an den/die defaultPeer geschickt werden

cmdReturnEmptyResult Erlaubt es Ergebnisse zu schicken, die Inhalt (also Rückmeldungen oder Werte) enthalten aber auch leere Rückgaben als Erfolgsmeldung (OK)

Also müsste für Dein Besipiel defaultPeer=A / defaultPeerCopy=1 gesetzt werden, lass mich wissen wenn dabei etwas nicht funktioniert

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

Tedious

Heyho,

besten Dank für die Notes! Ich teste das mal aus wenn ich zuhause bin. Danke!
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...