msgDialog: Instant Messaging als FHEM Interface

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

Vorheriges Thema - Nächstes Thema

nils_

oha.... nettes modul.
das wird mich wieder einige wochenenden kosten :)
(verbunden mit der schon lange geplanten umstellung auf telegram....)


danke igami  ;D
(nein, das soll keine schuldzuweisung bzw. ironisch gemeint sein, sondern ein herzliches danke. sowas hab ich schon länger gesucht!)
viele Wege in FHEM es gibt!

igami

@Achim: hast du im TelegramBot das Attribut utf8specials auf 1 gesetzt?
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

igami

@Nils: ein Umstieg auf Telegram ist nicht zwingend erforderlich, auch wenn ich den Messenger WhatsApp vorziehe :)
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

Zitat von: igami am 06 Oktober 2017, 14:44:54
@Achim: hast du im TelegramBot das Attribut utf8specials auf 1 gesetzt?

Perfekt, das wars, hatte ich ausgelassen da im Botnamen keine Umlaute und bisher auch keine Probleme damit :-)
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

ErzGabriel

Hi.
Habe mal zwei Fragen.
1. Wo oder wie kann ich UTF 8 einschalten, finde das nicht.

2. Warum werden im meta_Dialog meine eigenen Dialoge nicht angezeigt?
Ich vermute, es liegt an dem UTF 8.

igami

Zitat von: ErzGabriel am 08 Oktober 2017, 12:32:45
Hi.
Habe mal zwei Fragen.
1. Wo oder wie kann ich UTF 8 einschalten, finde das nicht.
Du gehst in das TelegramBot device und setzt dort das Attribut utf8specials auf 1.
Es kann zu Problemen mit Nachrichten kommen, wenn ein Umlaut enthalten ist. Bei "Ich kann folgendes für dich tun" ist das der Fall.
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

ErzGabriel

Jo, da habe ich das gesucht aber ist nicht vorhanden, was mich ein wenig stutzig macht.

Aber im meta Dialog wird auch mein Testeintrag mit der Waschmaschine nicht angezeigt, könnte das auch dadran liegen, das ich andere Dialoge mit Umlauten habe?

igami

Zitat von: ErzGabriel am 08 Oktober 2017, 12:57:07
Jo, da habe ich das gesucht aber ist nicht vorhanden, was mich ein wenig stutzig macht.
ggf. mal den TelegramBot updaten

Zitat von: ErzGabriel am 08 Oktober 2017, 12:57:07
Aber im meta Dialog wird auch mein Testeintrag mit der Waschmaschine nicht angezeigt, könnte das auch dadran liegen, das ich andere Dialoge mit Umlauten habe?
Was meinst du mit "wird nicht angezeigt"? Du bekommst eine Antwort vom Bot, aber ohne "Waschmachine"?
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

Amenophis86

Du hast das Modul noch nicht eingecheckt, oder? Zumindest kann ich es aktuell nicht finden, daher werde ich mir mal die Version hier aus dem Thread runterladen und installieren. Bin gespannt.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

igami

Zitat von: Amenophis86 am 08 Oktober 2017, 18:58:40
Du hast das Modul noch nicht eingecheckt, oder? Zumindest kann ich es aktuell nicht finden, daher werde ich mir mal die Version hier aus dem Thread runterladen und installieren. Bin gespannt.
Habe ich leider nicht geschafft.
Es wird dann aber auch noch ein paar kleine Änderungen geben, aber ich bin noch nicht soweit diese schon mitzuteilen.
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

Amenophis86

Kein Stress, hab es gestern auch doch nicht mehr geschafft es zu installieren. Scheint ja doch ein bisschen umfangreicher, als gedacht. Da war die Zeit dann doch zu knapp :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

nils_

Zitat von: igami am 06 Oktober 2017, 14:49:02
@Nils: ein Umstieg auf Telegram ist nicht zwingend erforderlich, auch wenn ich den Messenger WhatsApp vorziehe :)

ja ist mir bewusst.
nur habe ich den umstieg auf telegram schon länger auf der liste. whatsapp bzw. yowsup ist ja schon immer so ne sache. momentan funktioniert es bei mir.

whatsapp ist auch sonst der Messanger meiner Wahl :)
viele Wege in FHEM es gibt!

Flipper92

#87
Zitat von: Flipper92 am 05 Oktober 2017, 15:51:25
Bei mir macht es immer wieder Probleme mit der Performance.
Gestern hatte ich ein "Menü" das mein FHEM immer abstürzen ließ.
Auch mit meinem vorherigen Menü gibt es ein paar Probleme bei der Geschwindigkeit. Muss heufig FHEM neu starten.

Darf ich mich für die Aussage entschuldigen?
Scheinbar war es das FireTV Modul in Verbindung mit dem Precent.
Werde in absehbarer Zeit das msgDia wieder aktivieren.

Ich hab ein paar Fragen:
1. Gibt es aktuell die Möglichkeit von "Waschmaschine" zum "meta_Dialog" zu wechseln, so das die Waschmaschine verschwindet und kein neuer Dialog begonnen wird?

2. und gibt es die Möglichkeit ein Menü (z.B. "Waschmaschine") zu aktualisieren? Sich selbst wieder aufzurufen z.B. mit "(aktualisieren:Waschmaschine) " funktioniert nicht.

Edit:

"aktualisieren": {
"commands": [
"set $SELF say @$recipient Waaschmaschine"
]
}

Das bringt bei mir den Erfolg den ich wollte.
Geht sicher auch besser.
Kann man dies nun irgendwie auch automatisieren? so das alle x Sekunden die nachricht aktuallisiert wird?

3. Wie kann man am besten die Telegram Favoriten ("cmdFavorites") vom Menü aus aufrufen? Will beides als Inline verwenden.

4. Hat jemand schon "TBot_List" mit diesem Modul hübscher gekoppelt?

5. Nach welchen Kriterien wird das meta_Dialog sortiert?
Will dort gerne eine eigene Reihenfolge festlegen. So das die wichtigen Sachen oben stehen.

andy19850

Nur als hint:
Habe jetzt es jetzt stundenlang probiert und dabei festgestellt, dass ich ein event-on-change-reading state im Bewohner hatte. Das muss man anpassen, sonst antwortet der Bot nichts  ::)

igami

Zitat von: Flipper92 am 10 Oktober 2017, 08:23:42
Darf ich mich für die Aussage entschuldigen?
Scheinbar war es das FireTV Modul in Verbindung mit dem Precent.
Werde in absehbarer Zeit das msgDia wieder aktivieren.
Freut mich zu hören.

Zitat von: Flipper92 am 10 Oktober 2017, 08:23:42
Ich hab ein paar Fragen:
1. Gibt es aktuell die Möglichkeit von "Waschmaschine" zum "meta_Dialog" zu wechseln, so das die Waschmaschine verschwindet und kein neuer Dialog begonnen wird?
Der TelegramBot kann Nachrichten ändern oder Löschen. Vielleicht kannst du aus meinen Beitrag #10 etwas machen.

Zitat von: Flipper92 am 10 Oktober 2017, 08:23:42
2. und gibt es die Möglichkeit ein Menü (z.B. "Waschmaschine") zu aktualisieren? Sich selbst wieder aufzurufen z.B. mit "(aktualisieren:Waschmaschine) " funktioniert nicht.

Edit:

"aktualisieren": {
"commands": [
"set $SELF say @$recipient Waaschmaschine"
]
}

Das bringt bei mir den Erfolg den ich wollte.
Geht sicher auch besser.
Kann man dies nun irgendwie auch automatisieren? so das alle x Sekunden die nachricht aktuallisiert wird?
Nutze ich selbst auch so. Du kannst in die commands ein sleep einbauen was den Dialog wieder aufruft.
ACHTUNG: Das führt zu einer Schleife.

Zitat von: Flipper92 am 10 Oktober 2017, 08:23:42
3. Wie kann man am besten die Telegram Favoriten ("cmdFavorites") vom Menü aus aufrufen? Will beides als Inline verwenden.
Was meinst du damit? Ich verwende selbst keine cmdFavourites, sondern mache alles über msgDialog.

Zitat von: Flipper92 am 10 Oktober 2017, 08:23:42
4. Hat jemand schon "TBot_List" mit diesem Modul hübscher gekoppelt?
Ich nutze PostMe mit msgDialog, aber ohne TBot_List

defmod Einkaufsliste_Dialog msgDialog { \
  "Einkaufsliste": {\
    "message": [\
      "(Waren hinzufügen) ", \
      "(Waren entfernen) ", \
      "(einkaufen) ", \
      "(abbrechen) ",\
      "{my $content = (split(': ', fhem('get %PostMe% list %list%')))[1];;;; return('Keine Einträge vorhanden') unless($content);;;; return(join('\n', split(',', $content)));;;;}"\
    ],\
    "Waren hinzufügen": {\
      "message": [\
        "Bitte jede Ware als neue Nachricht hinzufügen.",\
        "Das hinzufügen von Waren durch \"/beenden\" beenden."\
      ],\
      "Ware hinzufügen": {\
        "match": "[^/]+",\
        "commands": [\
          "set %PostMe% add %list% $message",\
          "setreading $SELF $recipient_history Einkaufsliste|Waren hinzufügen"\
        ]\
      }\
    },\
    "Waren entfernen": {\
      "message": [\
        "{return('(' . join(') (', split(',', (split(': ', fhem('get %PostMe% list %list%')))[1]), 'beenden'). ') ')}",\
        "Welche Ware möchtest du entfernen?"\
      ],\
      "Ware entfernen": {\
        "match": "^(?!beenden).+",\
        "commands": [\
          "set %PostMe% remove %list% $message",\
          "set $SELF say @$recipient Einkaufsliste|Waren entfernen"\
        ]\
      }\
    },\
    "einkaufen": {\
      "commands": [\
        "setreading $SELF $recipient_history Einkaufsliste|noch einzukaufen"\
      ],\
      "message": [\
        "{return('(' . join(') (', split(',', (split(': ', fhem('get %PostMe% list %list%')))[1])) . ') ')}",\
        "(beenden) ",\
        "Bitte die Waren der Reihenfolge nach auswählen in der sie eingekauft werden."\
      ]\
    },\
    "noch einzukaufen": {\
      "message": [\
        "{return('(' . join(') (', split(',', (split(': ', fhem('get %PostMe% list %list%')))[1])) . ') ')}",\
        "(beenden) ",\
        "Noch einzukaufen:"\
      ],\
      "Ware eingekauft": {\
        "match": "^(?!beenden).+",\
        "commands": [\
          "set %PostMe% remove %list% $message",\
          "set $SELF say @$recipient Einkaufsliste|noch einzukaufen"\
        ]\
      }\
    }    \
  }\
}
attr Einkaufsliste_Dialog evalSpecials PostMe=PostMe\
list=Einkaufsliste


Zitat von: Flipper92 am 10 Oktober 2017, 08:23:42
5. Nach welchen Kriterien wird das meta_Dialog sortiert?
Will dort gerne eine eigene Reihenfolge festlegen. So das die wichtigen Sachen oben stehen.
Wird mit perl sort sortiert, alphabetisch, case sensitive. Eine eigene Sortierung würde ich in die myUtils auslagern.
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