msgDialog: Zurück verhält sich nicht wie gewünscht

Begonnen von gestein, 05 Dezember 2019, 01:08:15

Vorheriges Thema - Nächstes Thema

igami

Wie sieht denn der Heizung Dialog aus? Würde das gerne bei mir selbst testen.
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

gestein

Hallo Igami,

hier mein meta_Dialog:
defmod meta_Dialog msgDialog {\
  "%me%": {\
    "match": "\/?(start|%me%)",\
    "commands":\
  "deletereading TYPE=msgDialog $recipient_history",\
    "message": [\
      "{return('(' . join(') (', sort{lc($a) cmp lc($b)} (split('\n', fhem('get TYPE=msgDialog:FILTER=NAME!=$SELF:FILTER=allowed=.*($recipient|everyone).* trigger', 1)))) . ') (🔚beenden) ')}",\
      "{'Hallo ' . AttrVal('$recipient', 'group','') . ', was kann ich für dich tun?'}"\
    ]\
  },\
  "🔙zurück": {\
    "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/((.+)\\|.+$)/;;;;;;;; return($2 || $1);;;;;;;;)}"\
  },\
  "zurück": {\
    "commands": "set $recipient_history=.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/((.+)\\|.+$)/;;;;;;;; return($2 || $1);;;;;;;;)}"\
  },\
  "🔚abbrechen": {\
    "match": "🔚\/?abbrechen",\
    "commands": "deletereading TYPE=msgDialog $recipient_history",\
    "message": [\
      "(%me%) ",\
      "Dialog abgebrochen."\
    ]\
  },\
  "🔚beenden": {\
    "match": "🔚\/?beenden",\
    "commands": "deletereading TYPE=msgDialog $recipient_history",\
    "message": [\
      "(%me%) ",\
      "Dialog beendet."\
    ]\
  }\
}
attr meta_Dialog allowed everyone
attr meta_Dialog room Chatten


Und hier der kürzere Kühler_Dialog:
defmod Kuehler_Dialog msgDialog {"Kühl- und Tiefkühlschränke":{\
    "message": [\
      "(Bad Tiefkühler) ",\
      "(Bad Kühlschrank) ",\
      "(Küche Tiefkühler) ",\
      "(Küche Kühlschrank) ",\
      "(🔚beenden|🔙zurück|🔄aktualisieren) ",\
      "{return('Bad Kühlschrank:   [Bad.KuehlschrankActTemp:state]°/[dyParameter:Bad.Kuehlschrank_limit]° [Bad.KuehlschrankActHum:state]% ')}",\
      "{return('Bad Tiefkühler :   [Bad.TiefkuehlerActTemp:state]°/[dyParameter:Bad.Tiefkuehler_limit]° [Bad.TiefkuehlerActHum:state]% ')}",\
      "{return('Küche Kühlschrank:   [Kueche.KuehlschrankActTemp:state]°/[dyParameter:Kueche.Kuehlschrank_limit]° [Kueche.KuehlschrankActHum:state]% ')}",\
      "{return('Küche Tiefkühler :   [Kueche.TiefkuehlerActTemp:state]°/[dyParameter:Kueche.Tiefkuehler_limit]° [Kueche.TiefkuehlerActHum:state]% ')}",\
      "Möchtest Du ein Verlaufsdiagramm sehen? "\
      ],\
      "Bad Tiefkühler": {\
      "commands": "set %TelegramBot% cmdSend {plotAsPng('SVG_FileLog_Bad.TiefkuehlerTemp_1')}"\
      },\
      "Bad Kühlschrank": {\
      "commands": "set %TelegramBot% cmdSend {plotAsPng('SVG_FileLog_Bad.KuehlschrankTemp_1')}"\
      },\
      "Küche Tiefkühler": {\
      "commands": "set %TelegramBot% cmdSend {plotAsPng('SVG_FileLog_Kueche.TiefkuehlerTemp_1')}"\
      },\
      "Küche Kühlschrank": {\
      "commands": "set %TelegramBot% cmdSend {plotAsPng('SVG_FileLog_Kueche.KuehlschrankTemp_1')}"\
      },\
      "🔄aktualisieren": {\
      "commands": [\
            "set $SELF say @$recipient %me%|Kühl- und Tiefkühlschränke"\
      ]\
      },\
      "🔙zurück": {\
      "commands": [\
            "set $SELF say @$recipient %me%"\
      ]\
      }\
  }\
}
attr Kuehler_Dialog allowed everyone
attr Kuehler_Dialog room Chatten


Das mit "zurück" funktioniert bei keinem meiner Dialoge.
Danke für Deine Hilfe.

Die msgDialog.pm ist übrigens diese hier:
76_msgDialog.pm           16814 2018-06-04 03:30:08Z igami

lg, Gerhard

igami

Zitat von: gestein am 03 Januar 2020, 17:18:30
Und hier der kürzere Kühler_Dialog:
Der Dialog besteht nur aus 2 Stufen:
"Kühl- und Tiefkühlschränke" -> z.B. "Bad Tiefkühler"

In der ersten Stufe "Kühl- und Tiefkühlschränke" gibt es noch kein zurück und nach der zweiten Stufe "Bad Tiefkühler" ist der Dialog beendet und damit gibt es ebenfalls kein zurück mehr.

Du könntest als 3. Stufe einbauen, dass der Dialog einfach wieder von vorne startet wenn du öfters mehrere Schränke prüfst.
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

gestein

Da scheine ich dann was missverstanden zu haben.
Ich dachte die Übersicht im meta_Dialog ist die erste Stufe und Kuehler_Dialog die zweite Stufe.
Wie komme ich dann von Kuehler_Dialog zum meta_Dialog?
Geht das nicht automatisch?

Oder ist das dann die History nur für eine dritte Stufe im Kuehler_Dialog?
Und das wird dann im meta_Dialog gehandhabt?

Oder wofür ist die ,,zurück"-Zeile im meta_Dialog?

Funktionieren bei Dir mehrere Command-Aufrufe im Kuehler_Dialog?
Wenn ich mir ein Diagramm anzeigen lasse, kann ich kein zweites mehr anschauen.
Ich muss ,,beenden" und wieder einsteigen.

Irgendwas stimmt da bei mir noch nicht.

Danke, Lg, Gerhard