msgDialog: Instant Messaging als FHEM Interface

Begonnen von igami, 30 September 2017, 15:09:01

Vorheriges Thema - Nächstes Thema

binford6000

ZitatWas schreibt der denn ins Log?

Beim Aufruf vom Meta Dialog:
2017.10.05 15:46:41 3: get TYPE=msgDialog:FILTER=NAME!=meta_Dialog:FILTER=allowed=.*(rr_Sebastian|everyone).* trigger : Beleuchtung
Cam
Haus-Automatisierung
VirtualPC
Waschmaschine
Tagesschau

mehr nicht.

binford6000

ZitatAuch mit meinem vorherigen Menü gibt es ein paar Probleme bei der Geschwindigkeit. Muss heufig FHEM neu starten.

Das hatte ich nur mit der ersten Version... Aktuell keine Hänger und damit keine Neustarts.

igami

Zitat von: igami am 05 Oktober 2017, 15:32:21
"zurück" könnte man auch in den Meta Dialog integrieren. Es sollte ja pro Benutzer immer nur ein Dialog aktiv sein. Dann muss man ja nur für diesen Dialog "set <Dialog> say @$recipient {perl Code für history ohne den letzten Teil}".
Ich teste das Mal, wenn ich wieder zu Hause bin.
Funktioniert soweit ganz gut :)

Für die DEF zum ergänzen:

  "zurück": {
    "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/(.+)\\|.+$/;; return $2 ? $2 : $1;;)}"
  },
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

Andy89

Zitat von: igami am 05 Oktober 2017, 15:32:21
"zurück" könnte man auch in den Meta Dialog integrieren. Es sollte ja pro Benutzer immer nur ein Dialog aktiv sein. Dann muss man ja nur für diesen Dialog "set <Dialog> say @$recipient {perl Code für history ohne den letzten Teil}".
Ich teste das Mal, wenn ich wieder zu Hause bin.

Spricht aus eurer Sicht noch etwas dagegen das Modul offiziell einzuchecken?
Dann würde ich noch ein bisschen was am logverhalten basteln und die Commandref fertig machen.

da es bei mir nun auch inline funktioniert, finde ich, dass nichts dagegen spricht. Eine Frage jedoch: Könnte man den Meta-Dialog irgendwie autocreaten lassen? oder über ein Codewort, so müssten sich andere nicht um diesen kümmern? Oder vielleicht sogar ein autocreate, sobald das erste msgDialog-Device gebaut wird.

Übrigens danke dafür  ;D
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

binford6000

ZitatKönnte man den Meta-Dialog irgendwie autocreaten lassen? oder über ein Codewort, so müssten sich andere nicht um diesen kümmern? Oder vielleicht sogar ein autocreate, sobald das erste msgDialog-Device gebaut wird.

Gute Idee! Danach muss allerdings noch das msgConfig device mit
userattr evalSpecials:textField-long und Eintragen von
me=<Startwort>
TelegramBot=<Telegram-device>

in evalSpecials angepasst werden oder - falls noch nicht vorhanden - angelegt werden.
Und da ist dann spätestens Handarbeit nötig. Finde ich allerdings nicht so dramatisch  ;)

Flipper92

Zitat von: binford6000 am 05 Oktober 2017, 15:53:59
Das hatte ich nur mit der ersten Version... Aktuell keine Hänger und damit keine Neustarts.

Hab die Version aus der Antwort #27 vom 02 Oktober 2017, 17:05:12. Gibt es da eine neuere?

Flipper92

Zitat von: binford6000 am 05 Oktober 2017, 20:15:13
me=<Startwort>
TelegramBot=<Telegram-device>

Eventuell bei der Definition mitgeben?
Dann ist es aber leider nicht mehr Systemübergreifend (WhatsApp und co.)

binford6000

ZitatHab die Version aus der Antwort #27 vom 02 Oktober 2017, 17:05:12. Gibt es da eine neuere?
Die hab ich auch.
ZitatEventuell bei der Definition mitgeben?
Dann ist es aber leider nicht mehr Systemübergreifend (WhatsApp und co.)
Ja genau. Das war ja auch der Ansatz von igami möglichst alle Push-Dienste abzudecken.
Evtl. auch bei der Definition den Dienst als Parameter abfragen und den Eintrag entsprechend setzen...


igami

Zitat von: Andy89 am 05 Oktober 2017, 18:37:28
da es bei mir nun auch inline funktioniert, finde ich, dass nichts dagegen spricht. Eine Frage jedoch: Könnte man den Meta-Dialog irgendwie autocreaten lassen? oder über ein Codewort, so müssten sich andere nicht um diesen kümmern? Oder vielleicht sogar ein autocreate, sobald das erste msgDialog-Device gebaut wird.
Ich würde in der Commandref lieber nur ein paar Beispiele machen und auf diesen Thread verweisen.
So kann jeder entweder einfach die Vorlage von hier als Raw Definition kopieren oder nach seinen vorlieben anpassen.

Wie Flipper92 ja auch schon gesagt hat ist es nur Telegram Spezifisch. Prinzipiell kann es ja aber auch mit Jabber und Whatsapp verwendet werden.
Ich denke ich werde noch drei weitere Thread erstellen. Jeweils speziell für Telegram, Jabber und WhatsApp.

Zitat von: Flipper92 am 05 Oktober 2017, 20:22:33
Hab die Version aus der Antwort #27 vom 02 Oktober 2017, 17:05:12. Gibt es da eine neuere?
Nein, das ist die aktuelle. Ich denke, dass ich am Wochenende dazu komme es einzuchecken.
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

binford6000

Laut aktueller Statistik ist Telegram am weitesten verbreitet:
TelegramBot   907 (FHEM-Installationen)
yowsup           107   
Jabber             53

Was ist mit denen beiden?
Pushover           846
Pushbullet           316
Gibt es dort keine Chatbot-Funktionalität?

igami

Zitat von: binford6000 am 05 Oktober 2017, 20:49:43
Was ist mit denen beiden?
Pushover           846
Pushbullet           316
Gibt es dort keine Chatbot-Funktionalität?
Die funktionieren meines Wissens nach nur in eine Richtung: FHEM => Handy
Der einzige Rückkanal besteht darin die Nachricht als gelesen zu markieren.
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

binford6000

#71
"zurück": {
    "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/(.+)\\|.+$/;; return $2 ? $2 : $1;;)}"
  },


Super!  :D

CBSnake

Hi,

habs jetzt auch mal getestet, funktioniert soweit ganz gut. Da kann ich meine ganzen DOIF-Dialoge nach und nach ersetzen.
Komisch ist nur: auf Waschmaschine triggert er (und mein DOIF-Dialog parallel  ;D ) nur im meta-Dialog mag er den Bot-Namen nicht als Trigger  :o abbrechen und beenden gehen. Im Device stehen aber alle 3 als TRIGGER.
Falls einer ne zündenden Idee hat ohne komplette LIST etc nur her damit ansonst spiele ich noch etwas rum damit rum :-)

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

igami

Steht denn der Botname im Trigger oder nur %me%?
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

CBSnake

Hi,

der Botname, der kommt auch im state passend zum Roommate an. Schreibe ich beenden müsste er das ja eigentlich mit Botname, Dialog beendet quittieren, es kommt aber auch nur Dialog beendet.

die fehlenden Attr zum DBlog kann damit nix zu tun haben? da hat er gemeckert, nutze ich ja nicht ;-)

Hier mal ein Verbose 5 in dem interessanterweise noch die Waschmaschine auftaucht ;-)



2017.10.06 12:28:21 4: msgDialog (meta_Dialog) triggered by "rr_Achim fhemMsgRcvPush: Bot"
2017.10.06 12:28:21 5: msgDialog (meta_Dialog)
    entering msgDialog_progress
        recipients: rr_Achim
        message:    Bot
        force:      0
2017.10.06 12:28:21 4: msgDialog (meta_Dialog) - return from command "deletereading TYPE=msgDialog rr_Achim_history": Deleted reading rr_Achim_history for device meta_Dialog
2017.10.06 12:28:21 3: get TYPE=msgDialog:FILTER=NAME!=meta_Dialog:FILTER=allowed=.*(rr_Achim|everyone).* trigger : Waschmaschine
2017.10.06 12:28:22 3: msg rr_Achim: ID=*********** TYPE=push ROUTE=***** RECIPIENT=@******* STATUS=OK PRIORITY=0 TITLE='' MSG='(Waschmaschine)
(abbrechen)
Ich kann folgendes für dich tun:'
2017.10.06 12:28:22 1: PERL WARNING: substr outside of string at FHEM/HttpUtils.pm line 557.
2017.10.06 12:28:22 1: PERL WARNING: Use of uninitialized value $data in numeric eq (==) at FHEM/HttpUtils.pm line 558.




und hier vom beenden



2017.10.06 12:32:29 4: msgDialog (meta_Dialog) triggered by "rr_Achim fhemMsgRcvPush: beenden"
2017.10.06 12:32:29 5: msgDialog (meta_Dialog)
    entering msgDialog_progress
        recipients: rr_Achim
        message:    beenden
        force:      0
2017.10.06 12:32:29 4: msgDialog (meta_Dialog) - return from command "deletereading TYPE=msgDialog rr_Achim_history": Deleted reading rr_Achim_history for device meta_Dialog
2017.10.06 12:32:29 3: msg rr_Achim: ID=***********TYPE=push ROUTE=******** RECIPIENT=@******* STATUS=OK PRIORITY=0 TITLE='' MSG='(Bot)
Dialog beendet.'



ich hoffe ich hab nicht zuviel ******  ;D

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen