Autor Thema: msgDialog: Instant Messaging als FHEM Interface  (Gelesen 76498 mal)

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1068
  • 🏠⚙️💡🛠📱
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #570 am: 11 Januar 2019, 10:57:16 »
Zitat
EDIT: scheint jetzt wieder zu laufen. Ich hab aber keine Ahnung woran es gelegen hat ;-)

Moin Michael,
als ich deinen Post gelesen habe hat es bei mir auch nicht funktioniert. Siehe Log-Auszug:
2019.01.11 10:15:57 3: get TYPE=msgDialog:FILTER=NAME!=metaDialog:FILTER=NAME!=.*_fav:FILTER=NAME!=.*_sys:FILTER=NAME!=.*_user:FILTER=allowed=.*(rr_Sebastian|everyone).* trigger : 01.⭐️...Favoriten...⭐️
02.💡Beleuchtung💡
03.👩🏼..Bewohner..👩🏻
05.🛠....System....🛠
06.⚠️....Notfall.....⚠️
07.⏰....Wecker.....⏰
04.💡...Lampen....💡
08.🚧.....Staus.....🚧
2019.01.11 10:15:57 3: TelegramBot_Callback fhembot: resulted in Callback returned error :Bad Request: there is no text in the message to edit: from SendIt
2019.01.11 10:15:57 3: TelegramBot_Callback fhembot: No retry for (ret: Callback returned error :Bad Request: there is no text in the message to edit:) for msg 260868921 :
Hallo Sebastian!
Ich kann das für dich tun:

Nach einem FHEM-Update gehts jetzt auch wieder bei mir. Ohn Callback returned error...
VG Sebastian
FHEM 5.9 auf Ubuntu LTS-LXC unter Proxmox, IOserver für deconz + CUL via ser2net, Testumgebung: docker pull fhem/fhem
SONOS, alexa-fhem, homebridge, TelegramBot mit msgDialog, livetracking

Offline l2r

  • Sr. Member
  • ****
  • Beiträge: 569
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #571 am: 11 Januar 2019, 11:34:51 »
hi,

meine Dialoge laufen wieder, nur leider bekomme ich es nicht hin, dass nur für die Dialoge Telegram benutzt wird, für alles andere Pushover, da ich ja bei meinem Resident im Attribut msgContactPush auch Telegram setzen muss. Alle meine Versuche im globalMsg die Syntax für den Befehl zu ändern sind leider fehlgeschlagen. Jemand noch ne Idee?

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Offline l2r

  • Sr. Member
  • ****
  • Beiträge: 569
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #572 am: 11 Januar 2019, 13:08:07 »
hallo zusammen,

einen Vorschlag hätte ich:

Wie wäre es, wenn es bei den Residents ein weiteres Attribut msgDialog_msgContactPush geben würde, in das ich dann Telegram eintragen würde.
Von der Handhabung müsste man dann zuerst dieses Attribut abfragen und wenn es nicht gesetzt ist, msgContactPush benutzen. Dann funktionieren nach wie vor alle bestehenden Configs und ich könnte meinen Spezialfall auch abdecken.

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2671
  • RTFM
    • commandref
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #573 am: 11 Januar 2019, 16:41:17 »
moin zusammen,

hat sich in seit dem Wochenende irgendwas geändert?
Bei mir scheint der msgDialog nicht mehr auf die Trigger zu reagieren. Kann das noch jemand bestätigen?

Außerdem habe ich noch eine Frage:
Ich möchte gerne Pushover als default für msg benutzer und zusätzlich für msgDialog dann Telegram. Ich habe mir also testweise im globalmsg folgendes gesetzt:
attr msgDialog_msgCommand msg \@Telegram:\@$recipients $messageist das korrekt? Leider bekomme ich keine Antworten auf meine Trigger, egal ob ich das Attribut jetzt setze oder nicht. Aktuell steht msgContactPush wieder auf Telegram. Leider bekomme ich auch hier keine Nachrichten.

EDIT: scheint jetzt wieder zu laufen. Ich hab aber keine Ahnung woran es gelegen hat ;-)

Gruß Michael
Mit dem Routing von verschiedenen Diensten habe ich mich nicht befasst, dazu bitte den Maintainer von msg befragen. Generell ist das von dir gewählte Attribut aber die richtige stelle zum anpassen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im August 2019.

MAINTAINER: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, WeekdayTimer
ToDo: adb, FluxLED

Offline Marlen

  • Hero Member
  • *****
  • Beiträge: 1045
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #574 am: 16 Januar 2019, 20:49:35 »
Hallo,

ich hätte mal wieder paar Fragen:

Kann man in commands irgendwie mit if arbeiten?

So etwa:
"commands": [
"{my $Liste = '$message';;;; fhem(\"if ($Liste eq 'kompl.Essen - Liste') {setreading $SELF gewliste $message}\")}"
],

Kann man irgendwie im Code kommentieren?

LG
 Marlen
Raspberry Pi 3;CUL; 4xRauchmelder HM-Sec-SD-2; 1xHM-MOD-EM-8; 3xHM-MOD-Re-8; 8xHM-Sec-SCo; 1-wire-USB-Bus; 1-wire-WLAN-Bridge; Telegram; MQTT; Sonoff; Xiaomi V1; AlexaFhem.....

Offline igami

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2671
  • RTFM
    • commandref
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #575 am: 17 Januar 2019, 06:00:27 »
Sowohl perl if als auch FHEM IF sollten sich normal anwenden lassen (habe aber grad kein Beispiel parat).

Auskommentieren ist aktuell nicht möglich, da dann das json nicht richtig erkannt wird.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im August 2019.

MAINTAINER: archetype, Heating_Control, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap, RandomTimer, WeekdayTimer
ToDo: adb, FluxLED

Offline Marlen

  • Hero Member
  • *****
  • Beiträge: 1045
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #576 am: 17 Januar 2019, 12:01:15 »
Hat vielleicht jemand anders ein Beispiel?

LG
  Marlen
Raspberry Pi 3;CUL; 4xRauchmelder HM-Sec-SD-2; 1xHM-MOD-EM-8; 3xHM-MOD-Re-8; 8xHM-Sec-SCo; 1-wire-USB-Bus; 1-wire-WLAN-Bridge; Telegram; MQTT; Sonoff; Xiaomi V1; AlexaFhem.....

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1068
  • 🏠⚙️💡🛠📱
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #577 am: 17 Januar 2019, 12:08:50 »
Hat vielleicht jemand anders ein Beispiel?

LG
  Marlen

Hier gabs mal was mit Heizungssteuerung. Das ist daraus und funktioniert soweit:
"commands": ["{my $temp = $message;;;; my $clima;;;; $temp =~ s/([\\d]{1,2}\\.[\\d{1}])/$1/g;;;; my $room = ReadingsVal(\"$SELF\", \"$recipient_Room\", \"\");;;; if ($room eq \"Büro Daniel\") {$clima = \"dz_heizung_Clima\";;;;} elsif ($room eq \"Esszimmer\") {$clima = \"ez_heizung_Clima\";;;;} elsif ($room eq \"Schlafzimmer\") {$clima = \"sz_heizung_Clima\";;;;} elsif ($room  eq \"Wohnzimmer\") {$clima = \"wz_heizung_Clima\";;;;} fhem (\"set $clima desired-temp $temp; msg push $clima $temp\") }"],
VG Sebastian
FHEM 5.9 auf Ubuntu LTS-LXC unter Proxmox, IOserver für deconz + CUL via ser2net, Testumgebung: docker pull fhem/fhem
SONOS, alexa-fhem, homebridge, TelegramBot mit msgDialog, livetracking
Hilfreich Hilfreich x 1 Liste anzeigen

Offline Marlen

  • Hero Member
  • *****
  • Beiträge: 1045
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #578 am: 18 Januar 2019, 12:07:24 »
Hier gabs mal was mit Heizungssteuerung. Das ist daraus und funktioniert soweit:
"commands": ["{my $temp = $message;;;; my $clima;;;; $temp =~ s/([\\d]{1,2}\\.[\\d{1}])/$1/g;;;; my $room = ReadingsVal(\"$SELF\", \"$recipient_Room\", \"\");;;; if ($room eq \"Büro Daniel\") {$clima = \"dz_heizung_Clima\";;;;} elsif ($room eq \"Esszimmer\") {$clima = \"ez_heizung_Clima\";;;;} elsif ($room eq \"Schlafzimmer\") {$clima = \"sz_heizung_Clima\";;;;} elsif ($room  eq \"Wohnzimmer\") {$clima = \"wz_heizung_Clima\";;;;} fhem (\"set $clima desired-temp $temp; msg push $clima $temp\") }"],
VG Sebastian

Danke!  :-*
Raspberry Pi 3;CUL; 4xRauchmelder HM-Sec-SD-2; 1xHM-MOD-EM-8; 3xHM-MOD-Re-8; 8xHM-Sec-SCo; 1-wire-USB-Bus; 1-wire-WLAN-Bridge; Telegram; MQTT; Sonoff; Xiaomi V1; AlexaFhem.....

Offline trixer

  • New Member
  • *
  • Beiträge: 12
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #579 am: 25 Januar 2019, 14:31:19 »
Problem mit dem Auslesen von Variablen im msgDialog
Hallo zusammen,
so langsam gehen mir die Ideen aus. Ich habe ein Problem mit dem Auslesen von Werten über ReadingsVal.
Was ich tun möchte:
Ich baue mir derzeit einen Dialog für Telegram auf. Neben der Steuerung der Beleuchtung und (sehr einfachen) Squeezebox-Player Befehlen möchte ich nun die Wettervorhersage abrufen. Das ist in dem Post von Tiroso ganz gut sehen.
In meinem Wetter-Dialog habe ich im ersten Schritt folgendermaßen versucht, ein Bild des aktuellen Wetters zu senden:
"commands": "set Telegram sendImage /opt/fhem/www/images/default/weather/".ReadingsVal('WessumWetter','icon','0').".png" ,\
Das führt zu folgendem JSON-Fehler
, or ] expected while parsing array, at character offset 715 (before ".ReadingsVal('Wessum...") at ./FHEM/76_msgDialog.pm line 93.
Diverse unterschiedliche Versuche (mit \ vorm ", ' statt " schlugen fehl.
Mein letzter Versuch war das Ganze über Variablensubstitution zu machen:
    "Wetter morgen":{\
    "commands":[\
      "{my $wi = ReadingsVal(%VAR%, %WIP%, '0')}",\
      "set Telegram message %wi%"\
    ],\
    "message":[\
      "(%me%) ",\
      "Das Wetter von morgen: {my $wi = ReadingsVal(%VAR%, %WIP%, '0')} "\
    ]\
    },\
    "Wetterdaten aktualisieren":{\
    "commands": "set WessumWetter update",\
    "message":[\
      "(%me%) ",\
      "Aktualisierung Wetterdaten angefragt."\
    ]\
   }\
    }\
}
attr wetter_Dialog allowed Trixer, everyone
attr wetter_Dialog evalSpecials VAR=Variablenspeicher\
WIP=WEATHER_ICON_PATH
attr wetter_Dialog room Messages

Das ist zwar syntaktisch korrekt, die Variablen werden aber nciht aufgelöst.
Ich hoffe mal auf einen klassischen Anfängerfehler und bitte um Erleuchtung.

Schönen Dank und Gruß
Trixer

Offline Wuehler

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 574
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #580 am: 25 Januar 2019, 21:34:04 »
Moin,
leider kann ich nur vom handy antworten, daher auch erst eine späte Antwort. Versuch mal folgendes, wie gesagt mit Handy getippt und nicht getestet, daher evtl. auch nicht ohne Fehler.
senden:
"commands": "{fhem(\“set Telegram sendImage /opt/fhem/www/images/default/weather/\".ReadingsVal(\“WessumWetter\“,\“icon\“,\“0\“).\".png\“}" ,\

Ich denke du hast ganz am Ende die schließenden Anführungszeichen vergessen.

Ausserdem bitte code immer in die Codetags setzen. Dass macht es uns einfacher den code zu lesen.

Viele Grüße,
Dirk

Offline trixer

  • New Member
  • *
  • Beiträge: 12
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #581 am: 25 Januar 2019, 23:14:35 »
Nabend,

vielen Dank für deine - wie ich finde - schnelle Antwort.
Auf die Code-Tags werde ich ab sofort achten. - Sorry.
Syntaktisch ist deine Ausführung korrekt. Allerdings sind das scheinbar zu viele Anführungszeichen.
Ich vermute
"{fhem...führt dazu, dass der Befehl gar nicht ausgeführt wird. Zumindest sehe ich auch im Event Monitor nichts.
Nehme ich diese Anführungsstriche weg, also
"commands": {fhem(\"set Telegram sendImage /opt/fhem/www/images/default/weather/\".ReadingsVal(\"WessumWetter\",\"icon\",\"0\").\".png\"} ,\bekomme ich wieder den JSON-Fehler
'"' expected, at character offset 431 (before "fhem(\\"set Telegram...") at ./FHEM/76_msgDialog.pm line 93.
Dieses Problem verfolgt mich...

Viele Grüße
Mark


Offline Wuehler

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 574
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #582 am: 26 Januar 2019, 13:36:47 »
Deine untere Variante verstösst gegen die Regeln, wie ein json aufgebaut sein muss. Die Anführungszeichen sind Pflicht.
Wenn du keine Fehler im Log siehst wird der Befehl voraussichtlich ausgeführt, und es gibt ein anderes Problem, dass du kein Bild gesendet bekommst. Ein Event wird dabei ja meines Wissens auch nicht erzeugt, daher kein Output im Eventmonitor. Was passiert denn, wenn du den set-Befehl direkt in die fhem-Befehlszeile eingibst? Vielleicht feheln Leserechte auf die Bilddatei? Gibt es die Datei überhaupt?

Offline trixer

  • New Member
  • *
  • Beiträge: 12
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #583 am: 26 Januar 2019, 14:59:22 »
Hi Dirk,
die Datei existiert und die Zugriffsrechte sind auch ok.
Über den Befehle
set Telegram sendImage /opt/fhem/www/images/default/weather/mostlycloudy.png wird das Bild versendet.
Der folgende Befehl in die Kommandozueile eingegeben liefert auch genau diesen Pfad als Ergebnis:
{ ReadingsVal("Variablenspeicher", "WEATHER_ICON_PATH", "NixDa1") . ReadingsVal("WessumWetter", "icon", "NixDa2") . ReadingsVal("Variablenspeicher", "WEATHER_ICON_TYPE", "NixDa3") }Nur leider gelingt es mir nicht, die beiden Befehle zu kombinieren.
Gruß
Mark

Offline Wuehler

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 574
Antw:msgDialog: Instant Messaging als FHEM Interface
« Antwort #584 am: 26 Januar 2019, 15:25:14 »
Hi Mark,

Dann könnte es noch an irgendeinem Leerzeichen an unpassender Stelle liegen. Hast du schon eine 99_myUtils.pm? Darin neue Funktion anlegen und aus dem Dialog aufrufen.
Das wäre meiner Meinung nach die einfachste Variante das Problem weiter einzugrenzen. Darin kannst du dann auch alles mit Logausgaben zupflastern.
VG,
Dirk