Unterstützung bei Talk2Fhem Stell die Temperatur im Schlafzimmer auf 19 grad und

Begonnen von ahlermi, 09 Oktober 2018, 23:08:55

Vorheriges Thema - Nächstes Thema

ahlermi

Satz:
"Stell die Temperatur im Schlafzimmer auf 19.5 grad und in einer Stunde wieder auf Auto"


?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$ =
  (cmd=>'set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto}',
   answer=>'"3: $3 4: $4 5: $5 6: $6 7: $7"')


Ich verstehe es nicht, Attribut 5 bleibt doch im zweiten "UND" gesetzt, Auto ist nicht wie erwartet 4 sondern 7  :o


2018.10.09 23:04:21 5: T2F Phrasehash:
$VAR1 = [
          {
            'key' => 'timer && (lösche|zurück)',
            'regexps' => [
                           'timer',
                           '(lösche|zurück)'
                         ],
            'hitnokeylist' => [
                                undef
                              ],
            'val' => {
                       'cmd' => 'set $NAME cleartimers'
                     }
          },
          {
            'val' => {
                       'cmd' => 'set $NAME cleartriggers '
                     },
            'key' => 'ereignis\\S* && (lösche|zurück)',
            'hitnokeylist' => [
                                undef
                              ],
            'regexps' => [
                           'ereignis\\S*',
                           '(lösche|zurück)'
                         ]
          },
          {
            'key' => 'garage\\S* (auf|zu)',
            'regexps' => [
                           'garage\\S* (auf|zu)'
                         ],
            'hitnokeylist' => [
                                undef
                              ],
            'val' => {
                       'cmd' => 'set HM_3A6FFD $1{ true => on, false => off } '
                     }
          },
          {
            'key' => 'robbi\\S* (an|ein|aus)',
            'hitnokeylist' => [
                                undef
                              ],
            'regexps' => [
                           'robbi\\S* (an|ein|aus)'
                         ],
            'val' => {
                       'cmd' => 'set robbi $1{ true => on, false => off } '
                     }
          },
          {
            'key' => '?(bitte) && (@types_color) && ?(@rooms) && ?(@places) && auf (@colors)( schalten| stellen)?$',
            'hitnokeylist' => [
                                undef,
                                undef,
                                'types_color',
                                'rooms',
                                'places',
                                'colors'
                              ],
            'regexps' => [
                           '?(bitte)',
                           '(Lampe|Licht)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(Tür|Steckdose|Tisch|Decke|Esstisch|Hauswand|Haustür|Eingang|Heizung|Draußen)',
                           'auf (Aus|Schwarz|Dunkles Schiefergrau|Schiefergrau|Helles Schiefergrau|Helles Stahlblau|Mattes Grau|Grau|Dunkelgrau|Silber|Hellgrau|Gainsboro|Rauchiges Weiß|Geisterweiß|Weiß|Schneeweiß|Elfenbein|Blütenweiß|Muschel|Altgold|Leinenfarbe|Antikes Weiß|Mandelweiß|Cremiges Papaya|Beige|Mais|Helles Goldrutengelb|Hellgelb|Chiffongelb|Blasse Goldrutenfarbe|Khaki|Gelb|Gold|Orange|Dunkles Orange|Goldrute|dunkle Goldrutenfarbe|Peru|Schokolade|Sattelbraun|Ocker|Braun|Dunkelrot|Kastanienbraun|Ziegelfarbe|Indischrot|Karmesinrot|Rot|Orangenrot|Tomatenrot|Koralle|Lachs|Helles Korallenrot|Dunkle Lachsfarbe|Helle Lachsfarbe|Sandbraun|Rosiges Braun|Gelbbraun|Grobes Braun|Weizen|Pfirsich|Navajoweiß|Tomatencreme|Rosige Lavenderfarbe|Altrosa|Rosa|Hellrosa|Leuchtendes Rosa|Fuchsie|Magentarot|Tiefrosa|Mittleres Violettrot|Blasses Violettrot|Pflaume|Distel|Lavendelfarbe|Violett|Orchidee|Dunkles Magentarot|Violett|Indigo|Blauviolett|Dunkles Violett|Dunkle Orchideenfarbe|Mittleres Violett|Mittlere Orchideenfarbe|Mittleres Schieferblau|Schieferblau|Dunkles Schieferblau|Mitternachtsblau|Marineblau|Dunkelblau|Mittelblau|Blau|Königsblau|Stahlblau|Kornblumenblau|Dodger-Blau|Tiefes Himmelblau|Helles Himmelblau|Himmelblau|Hellblau|Zyanblau|Blaugrün|Taubenblau|Helles Cyanblau|Aliceblau|Himmelblau|Cremig Pfefferminz|Honigmelone|Aquamarinblau|Türkis|Blasses Türkis|Mittleres Türkis|Dunkles Türkis|Mittleres Aquamarinblau|Helles Seegrün|Dunkles Zyanblau|Entenbraun|Kadettblau|Mittleres Seegrün|Dunkles Seegrün|Hellgrün|Blassgrün|Mittleres Frühlingsgrün|Frühlingsgrün|Zitronengrün|Gelbgrün|Seegrün|Waldgrün|Grün|Dunkelgrün|Olivfarbiges Graubraun|Dunkles Olivgrün|Olivgrün|Dunkles Khaki|Gelbgrün|Hellgrün|Grüngelb)( schalten| stellen)?$'
                         ],
            'val' => {
                       'cmd' => 'set T2F_types_color=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.* RGB $5[@rgb]',
                       'answer' => '"Ich schalte folgende Geräte $DATE auf $5@: ".T2F_answer("T2F_types_color=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.*","T2F_types_color")'
                     }
          },
          {
            'hitnokeylist' => [
                                undef,
                                undef,
                                'types_heos',
                                'rooms',
                                'places',
                                'heos_channels'
                              ],
            'regexps' => [
                           '?(bitte)',
                           '(Denon|Anlage|Verstärker|Radio|Zone|Musik)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(Tür|Steckdose|Tisch|Decke|Esstisch|Hauswand|Haustür|Eingang|Heizung|Draußen)',
                           '(ndr(s)*2|kiepenkerl|wdr(s)*4|pink|amy|80|Achziger)'
                         ],
            'key' => '?(bitte) && (@types_heos) && ?(@rooms) && ?(@places) && (@heos_channels)',
            'val' => {
                       'cmd' => 'set T2F_types_heos=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.* channel $5[@heos_channel]',
                       'answer' => '"Ich schalte folgende Geräte $DATE auf $5@: ".T2F_answer("T2F_types_heos=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.*","T2F_types_heos")'
                     }
          },
          {
            'val' => {
                       'cmd' => 'set T2F_types_switch=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.* input $5[@denon_input]',
                       'answer' => '"Ich schalte folgende Geräte $DATE auf $5[@denon_input]: ".T2F_answer("T2F_types_switch=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.*","T2F_types_switch")'
                     },
            'key' => '?(bitte) && (@types_heos) && ?(@rooms) && ?(@places) && (@denon_inputs)',
            'regexps' => [
                           '?(bitte)',
                           '(Denon|Anlage|Verstärker|Radio|Zone|Musik)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(Tür|Steckdose|Tisch|Decke|Esstisch|Hauswand|Haustür|Eingang|Heizung|Draußen)',
                           '(Mediaplayer|Mediacenter|kodi|xbmc|OnlineMusic|heos|internet|Musik|Sat|Satellit|Bluetooth|handy|echo)'
                         ],
            'hitnokeylist' => [
                                undef,
                                undef,
                                'types_heos',
                                'rooms',
                                'places',
                                'denon_inputs'
                              ]
          },
          {
            'hitnokeylist' => [
                                undef,
                                undef,
                                'properties',
                                'types_switch',
                                'rooms',
                                'places'
                              ],
            'regexps' => [
                           '?(bitte)',
                           '?(hell|dunkel|schwach|klein|groß|doof)',
                           '(Steckdose|Waschmaschine|Stehlampe|Deckenlampe|Vitrine|Kino|Lampe|Licht|Leuchte|Rapsi|Denon|Anlage|Verstärker|Musik|Zone|Bluetooth|Leinwand|Radio|Wasserkocher|Tannenbaum|Pool)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(Tür|Steckdose|Tisch|Decke|Esstisch|Hauswand|Haustür|Eingang|Heizung|Draußen)',
                           '(\\S+)(schalten|machen)?$'
                         ],
            'key' => '?(bitte) && ?(@properties) && (@types_switch) && ?(@rooms) && ?(@places) && (\\S+)(schalten|machen)?$',
            'val' => {
                       'answer' => '"$AGAIN" ? "dann $DATE wieder $6{true=>ein, false=>aus}" : "$1{/bitte/=>Gern, else=>Das heißt Bitte}, ich schalte $1{/bitte/=>, else=>trotzdem} folgende Geräte $DATE $6{true=>ein, false=>aus}: ".T2F_answer("T2F_types_switch=.*$3@.*:FILTER=T2F_rooms=.*($4@).*:FILTER=T2F_properties=.*$2@.*:FILTER=T2F_places=.*$5@.*","T2F_types_switch")',
                       'cmd' => 'set T2F_types_switch=.*$3@.*:FILTER=T2F_rooms=.*($4@).*:FILTER=T2F_properties=.*$2@.*:FILTER=T2F_places=.*$5@.* $6{true=>on, false=>off}'
                     }
          },
          {
            'regexps' => [
                           '?(bitte)',
                           '(Rollade|Rollos|Lautstärke|Lüfter)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(hell|dunkel|schwach|klein|groß|doof)',
                           '(auf (\\d+) (?:prozent|%|db)|(\\S+$))( stellen| setzen| einstellen| ein)?$'
                         ],
            'hitnokeylist' => [
                                undef,
                                undef,
                                'types_blind',
                                'rooms',
                                'properties'
                              ],
            'key' => '?(bitte) && (@types_blind) && ?(@rooms) && ?(@properties) && (auf (\\d+) (?:prozent|%|db)|(\\S+$))( stellen| setzen| einstellen| ein)?$',
            'val' => {
                       'cmd' => 'set T2F_types_blind=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_properties=.*$4@.* $6{integer=>$2{/Lautstärke/=>volume, /Lüfter/=>, else=>pct} $6, else=>$7{true=>$2{/Lautstärke/=>volume 70,/Lüfter/=>250, else=>pct 100}, false=>$2{/Lautstärke/=>volume 0,/Lüfter/=>0, else=>pct 0} } }',
                       'answer' => '"$1{/bitte/=>Gern, else=>Das heißt Bitte}, ich fahre die $2 in folgenden Räumen $DATE $6{integer=>auf $6 Prozent, else=>$7{true=>$2{/Lautstärke/=>laut, else=>hoch}, false=>$2{/Lautstärke/=>leise, else=>runter} } }: ".T2F_answer("T2F_types_blind=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_properties=.*$4@.*","T2F_types_blind")'
                     }
          },
          {
            'val' => {
                       'answer' => '"Ich schalte folgende Geräte $DATE auf $5[@heos_command]: ".T2F_answer("T2F_types_heos=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.*","T2F_types_heos")',
                       'cmd' => 'set T2F_types_heos=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_places=.*$4@.* $5[@heos_command]'
                     },
            'hitnokeylist' => [
                                undef,
                                undef,
                                'types_heos',
                                'rooms',
                                'places',
                                'heos_commands'
                              ],
            'regexps' => [
                           '?(bitte)',
                           '?(Denon|Anlage|Verstärker|Radio|Zone|Musik)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(Tür|Steckdose|Tisch|Decke|Esstisch|Hauswand|Haustür|Eingang|Heizung|Draußen)',
                           '(play|los|abspielen|pause|warte|halt|weiter|nächstes|next|stop\\S*|aus)'
                         ],
            'key' => '?(bitte) && ?(@types_heos) && ?(@rooms) && ?(@places) && (@heos_commands)'
          },
          {
            'hitnokeylist' => [
                                undef
                              ],
            'regexps' => [
                           '(bescheid|informire mich)'
                         ],
            'key' => '(bescheid|informire mich)',
            'val' => {
                       'cmd' => 'set WhatsAppMichael send  "Ich sollte bescheid geben$IF" '
                     }
          },
          {
            'val' => {
                       'answer' => '"3: $3 4: $4 5: $5 6: $6 7: $7"',
                       'cmd' => 'set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto}'
                     },
            'key' => '?(bitte) && (@types_heating) && ?(@rooms) && (auf (\\d+)((?: )(\\d+)){0,1} grad|auto\\S*)( stellen| setzen| einstellen| ein)?$',
            'hitnokeylist' => [
                                undef,
                                undef,
                                'types_heating',
                                'rooms'
                              ],
            'regexps' => [
                           '?(bitte)',
                           '(Heizung|Temperatur|Wohnzimmer|Schlafzimmer|Bastelzimmer|Flur|Alice|Keller|Bad)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '(auf (\\d+)((?: )(\\d+)){0,1} grad|auto\\S*)( stellen| setzen| einstellen| ein)?$'
                         ]
          },
          {
            'val' => {
                       'answer' => 'T2F_getInfo("T2F_types_info=.*$2@.*:FILTER=T2F_rooms=.*($3@).*:FILTER=T2F_properties=.*$1@.*:FILTER=T2F_places=.*$4@.*","$2@")'
                     },
            'key' => 'Wie && ?(@properties) && (@types_info) && ?(@rooms) && ?(@places)',
            'hitnokeylist' => [
                                undef,
                                'properties',
                                'types_info',
                                'rooms',
                                'places'
                              ],
            'regexps' => [
                           'Wie',
                           '?(hell|dunkel|schwach|klein|groß|doof)',
                           '(warm|modus|Betriebsart|VentiS*|Temperatur|lüften)',
                           '?(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)',
                           '?(Tür|Steckdose|Tisch|Decke|Esstisch|Hauswand|Haustür|Eingang|Heizung|Draußen)'
                         ]
          },
          {
            'key' => '(zustand|status)( \\S+)* (\\S+)',
            'regexps' => [
                           '(zustand|status)( \\S+)* (\\S+)'
                         ],
            'hitnokeylist' => [
                                undef
                              ],
            'val' => {
                       'answer' => '{"Der Status ist ".(Value((devspec2array(\'a:alias~$3\'))[0]) || "unbekannt")}'
                     }
          }
        ];

2018.10.09 23:04:25 5: Talk2Fhem Version: 0.5.3
2018.10.09 23:04:25 3: Decoding Text: Stell die Temperatur im Schlafzimmer auf 19 grad und in einer Stunde wieder auf Auto
2018.10.09 23:04:25 5: Using User Filter: \bbitte\b,\bauch\b,\bkann\b,\bsoll\b
2018.10.09 23:04:25 4: After correction:
Stell die Temperatur im Schlafzimmer auf 19 grad
in einer Stunde wieder auf Auto
2018.10.09 23:04:25 4: Command part: 'Stell die Temperatur im Schlafzimmer auf 19 grad'
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*telefon.*?klingel/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*anruft/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*zuhause/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*alarm.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*fenster.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*tür.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*dunkel.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /wenn .*hell.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /timer && (lösche|zurück)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /ereignis\S* && (lösche|zurück)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /garage\S* (auf|zu)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /robbi\S* (an|ein|aus)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && (@types_color) && ?(@rooms) && ?(@places) && auf (@colors)( schalten| stellen)?$/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && (@types_heos) && ?(@rooms) && ?(@places) && (@heos_channels)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && (@types_heos) && ?(@rooms) && ?(@places) && (@denon_inputs)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && ?(@properties) && (@types_switch) && ?(@rooms) && ?(@places) && (\S+)(schalten|machen)?$/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && (@types_blind) && ?(@rooms) && ?(@properties) && (auf (\d+) (?:prozent|%|db)|(\S+$))( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && ?(@types_heos) && ?(@rooms) && ?(@places) && (@heos_commands)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /(bescheid|informire mich)/i
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:04:25 5: Command after Phrasecheck: Stell die im
2018.10.09 23:04:25 5: Keylists: $VAR1 = undef;
$VAR2 = undef;
$VAR3 = 'types_heating';
$VAR4 = 'rooms';

2018.10.09 23:04:25 5: Filled lists: $VAR1 = '(bitte)';
$VAR2 = '(Heizung|Temperatur|Wohnzimmer|Schlafzimmer|Bastelzimmer|Flur|Alice|Keller|Bad)';
$VAR3 = '(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)';
$VAR4 = '(auf (\\d+)((?: )(\\d+)){0,1} grad|auto\\S*)( stellen| setzen| einstellen| ein)?$';

2018.10.09 23:04:25 5: Words: $VAR1 = '';
$VAR2 = undef;
$VAR3 = 'Temperatur';
$VAR4 = 'Schlafzimmer';
$VAR5 = 'auf 19 grad';
$VAR6 = '19';
$VAR7 = undef;
$VAR8 = undef;
$VAR9 = undef;

2018.10.09 23:04:25 5: Match: TemperaturSchlafzimmerauf 19 grad
2018.10.09 23:04:25 5: Unmatch: Stell die im
2018.10.09 23:04:25 4: Hit with phrase: qr/?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:04:25 5: Handle reaction cmd: set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto}
2018.10.09 23:04:25 5: Simple bracket selection (No. 2) with Keyword 1: 'Temperatur'
2018.10.09 23:04:25 5: Simple bracket selection (No. 3) with Keyword 7: 'Schlafzimmer'
2018.10.09 23:04:25 5: Simple bracket selection (No. 5): '19'
2018.10.09 23:04:25 4: Replaced bracket: set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto} -> set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* $5{integer=>desiredTemperature 19$7{integer=>., word=>, else=>}, else=>desiredTemperature auto}
2018.10.09 23:04:25 4: Advanced bracket replacement. $7integer=>., word=>, else=> = set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* $5{integer=>desiredTemperature 19###, else=>desiredTemperature auto}
2018.10.09 23:04:25 4: Keyword (7): ''
2018.10.09 23:04:25 5: HASH evaluation:
$VAR1 = {
          'word' => {
                      'order' => 1,
                      'val' => ''
                    },
          'else' => {
                      'val' => '',
                      'order' => 2
                    },
          'integer' => {
                         'val' => '.',
                         'order' => 0
                       }
        };

2018.10.09 23:04:25 5: Empty word replace with ''
2018.10.09 23:04:25 4: Advanced bracket replacement. $5integer=>desiredTemperature 19, else=>desiredTemperature auto = set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* ###
2018.10.09 23:04:25 4: Keyword (5): '19'
2018.10.09 23:04:25 5: HASH evaluation:
$VAR1 = {
          'else' => {
                      'val' => 'desiredTemperature auto',
                      'order' => 1
                    },
          'integer' => {
                         'order' => 0,
                         'val' => 'desiredTemperature 19'
                       }
        };

2018.10.09 23:04:25 5: Word found (integer): '19' replace with 'desiredTemperature 19'
2018.10.09 23:04:25 4: Advanced bracket replacement. $2empty=>.+, else=>Temperatur = set T2F_types_heating=.*###.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19
2018.10.09 23:04:25 4: Keyword (2): 'Temperatur'
2018.10.09 23:04:25 5: HASH evaluation:
$VAR1 = {
          'empty' => {
                       'order' => 0,
                       'val' => '.+'
                     },
          'else' => {
                      'val' => 'Temperatur',
                      'order' => 1
                    }
        };

2018.10.09 23:04:25 5: Unkown word 'Temperatur' replace with 'Temperatur'
2018.10.09 23:04:25 3: Result of cmd: $VAR1 = {
          'cmd' => 'set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19'
        };

2018.10.09 23:04:25 5: Handle reaction answer: "3: $3 4: $4 5: $5 6: $6 7: $7"
2018.10.09 23:04:25 5: Simple bracket selection (No. 3): 'Schlafzimmer'
2018.10.09 23:04:25 5: Simple bracket selection (No. 4): 'auf 19 grad'
2018.10.09 23:04:25 5: Simple bracket selection (No. 5): '19'
2018.10.09 23:04:25 4: Replaced bracket: "3: $3 4: $4 5: $5 6: $6 7: $7" -> "3: Schlafzimmer 4: auf 19 grad 5: 19 6:  7: "
2018.10.09 23:04:25 4: Answer eval: "3: Schlafzimmer 4: auf 19 grad 5: 19 6:  7: "
2018.10.09 23:04:25 3: Result of answer: $VAR1 = '3: Schlafzimmer 4: auf 19 grad 5: 19 6:  7: ';

2018.10.09 23:04:25 4: Command part: 'in einer Stunde wieder auf Auto'
2018.10.09 23:04:25 4: Timephrase found: =~ s/\b(in|und|nach) (\d+|ein\S*|erste\S*|fünf\S*|zwölf\S*|null|vier\S*|drei\S*|dritt\S*|zehn\S*|acht\S*|neun\S*|sechs\S*|elf\S*|sieb\S*|zwei\S*) stunden?\b/
2018.10.09 23:04:25 5: TIMEPHRASEDATA mod: 'hour' raw: '"$2"' result: '1' opt: 'in einer' pm: ''
2018.10.09 23:04:25 4: Extracted Timephrase. 'in einer Stunde '
2018.10.09 23:04:25 5: Commandpart after datedecoding. '  wieder auf Auto'
2018.10.09 23:04:25 4: Eventtime found: Wed Oct 10 00:04:25 2018
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*telefon.*?klingel/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*anruft/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*zuhause/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*alarm.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*fenster.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*tür.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*dunkel.*/i
2018.10.09 23:04:25 5: talk Evaluate search:
wieder auf Auto =~ /wenn .*hell.*/i
2018.10.09 23:04:25 4: Word again with direction (Auto) found. Using last command. ?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$
2018.10.09 23:04:25 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf 19 grad =~ /?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:04:25 5: Command after Phrasecheck: Stell die im
2018.10.09 23:04:25 5: Keylists: $VAR1 = undef;
$VAR2 = undef;
$VAR3 = 'types_heating';
$VAR4 = 'rooms';

2018.10.09 23:04:25 5: Filled lists: $VAR1 = '(bitte)';
$VAR2 = '(Heizung|Temperatur|Wohnzimmer|Schlafzimmer|Bastelzimmer|Flur|Alice|Keller|Bad)';
$VAR3 = '(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)';
$VAR4 = '(auf (\\d+)((?: )(\\d+)){0,1} grad|auto\\S*)( stellen| setzen| einstellen| ein)?$';

2018.10.09 23:04:25 5: Words: $VAR1 = '';
$VAR2 = undef;
$VAR3 = 'Temperatur';
$VAR4 = 'Schlafzimmer';
$VAR5 = 'auf 19 grad';
$VAR6 = '19';
$VAR7 = undef;
$VAR8 = undef;
$VAR9 = undef;

2018.10.09 23:04:25 5: Match: TemperaturSchlafzimmerauf 19 grad
2018.10.09 23:04:25 5: Unmatch: Stell die im
2018.10.09 23:04:25 4: Hit with phrase: qr/?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:04:25 5: Handle reaction cmd: set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto}
2018.10.09 23:04:25 5: Simple bracket selection (No. 2) with Keyword 1: 'Temperatur'
2018.10.09 23:04:25 5: Simple bracket selection (No. 3) with Keyword 7: 'Schlafzimmer'
2018.10.09 23:04:25 5: Simple bracket selection (No. 5): '19'
2018.10.09 23:04:25 5: Simple bracket selection (No. 7): 'Auto'
2018.10.09 23:04:25 4: Replaced bracket: set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto} -> set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* $5{integer=>desiredTemperature 19$7{integer=>.Auto, word=>, else=>}, else=>desiredTemperature auto}
2018.10.09 23:04:25 4: Advanced bracket replacement. $7integer=>.Auto, word=>, else=> = set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* $5{integer=>desiredTemperature 19###, else=>desiredTemperature auto}
2018.10.09 23:04:25 4: Keyword (7): 'Auto'
2018.10.09 23:04:25 5: HASH evaluation:
$VAR1 = {
          'word' => {
                      'order' => 1,
                      'val' => ''
                    },
          'else' => {
                      'val' => '',
                      'order' => 2
                    },
          'integer' => {
                         'val' => '.Auto',
                         'order' => 0
                       }
        };

2018.10.09 23:04:25 5: Word found (word): 'Auto' replace with ''
2018.10.09 23:04:25 4: Advanced bracket replacement. $5integer=>desiredTemperature 19, else=>desiredTemperature auto = set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* ###
2018.10.09 23:04:25 4: Keyword (5): '19'
2018.10.09 23:04:25 5: HASH evaluation:
$VAR1 = {
          'integer' => {
                         'order' => 0,
                         'val' => 'desiredTemperature 19'
                       },
          'else' => {
                      'order' => 1,
                      'val' => 'desiredTemperature auto'
                    }
        };

2018.10.09 23:04:25 5: Word found (integer): '19' replace with 'desiredTemperature 19'
2018.10.09 23:04:25 4: Advanced bracket replacement. $2empty=>.+, else=>Temperatur = set T2F_types_heating=.*###.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19
2018.10.09 23:04:25 4: Keyword (2): 'Temperatur'
2018.10.09 23:04:25 5: HASH evaluation:
$VAR1 = {
          'empty' => {
                       'order' => 0,
                       'val' => '.+'
                     },
          'else' => {
                      'val' => 'Temperatur',
                      'order' => 1
                    }
        };

2018.10.09 23:04:25 5: Unkown word 'Temperatur' replace with 'Temperatur'
2018.10.09 23:04:25 3: Result of cmd: $VAR1 = {
          'cmd' => 'set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19',
          'at' => 1539122665
        };

2018.10.09 23:04:25 5: Handle reaction answer: "3: $3 4: $4 5: $5 6: $6 7: $7"
2018.10.09 23:04:25 5: Simple bracket selection (No. 3): 'Schlafzimmer'
2018.10.09 23:04:25 5: Simple bracket selection (No. 4): 'auf 19 grad'
2018.10.09 23:04:25 5: Simple bracket selection (No. 5): '19'
2018.10.09 23:04:25 5: Simple bracket selection (No. 7): 'Auto'
2018.10.09 23:04:25 4: Replaced bracket: "3: $3 4: $4 5: $5 6: $6 7: $7" -> "3: Schlafzimmer 4: auf 19 grad 5: 19 6:  7: Auto"
2018.10.09 23:04:25 4: Answer eval: "3: Schlafzimmer 4: auf 19 grad 5: 19 6:  7: Auto"
2018.10.09 23:04:25 3: Result of answer: $VAR1 = '3: Schlafzimmer 4: auf 19 grad 5: 19 6:  7: Auto';

2018.10.09 23:04:25 5: Executing Command: set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19
2018.10.09 23:04:25 5: Pushed: set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19
2018.10.09 23:04:25 5: Executing Command: define at_talk_1539122665_0 at 2018-10-10T00:04:25 set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19
2018.10.09 23:04:25 5: Pushed: define at_talk_1539122665_0 at 2018-10-10T00:04:25 set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature 19



Satz:
"Stell die Temperatur im Schlafzimmer in einer Stunde wieder auf Auto" klappt super

siehe nächsten Post
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

ahlermi


2018.10.09 23:06:28 5: Talk2Fhem Version: 0.5.3
2018.10.09 23:06:28 3: Decoding Text: Stell die Temperatur im Schlafzimmer in einer Stunde wieder auf Auto
2018.10.09 23:06:28 5: Using User Filter: \bbitte\b,\bauch\b,\bkann\b,\bsoll\b
2018.10.09 23:06:28 4: After correction:
Stell die Temperatur im Schlafzimmer in einer Stunde wieder auf Auto
2018.10.09 23:06:28 4: Command part: 'Stell die Temperatur im Schlafzimmer in einer Stunde wieder auf Auto'
2018.10.09 23:06:28 4: Timephrase found: =~ s/\b(in|und|nach) (\d+|ein\S*|erste\S*|fünf\S*|zwölf\S*|null|vier\S*|drei\S*|dritt\S*|zehn\S*|acht\S*|neun\S*|sechs\S*|elf\S*|sieb\S*|zwei\S*) stunden?\b/
2018.10.09 23:06:28 5: TIMEPHRASEDATA mod: 'hour' raw: '"$2"' result: '1' opt: 'in einer' pm: ''
2018.10.09 23:06:28 4: Extracted Timephrase. 'in einer Stunde '
2018.10.09 23:06:28 5: Commandpart after datedecoding. 'Stell die Temperatur im Schlafzimmer   wieder auf Auto'
2018.10.09 23:06:28 4: Eventtime found: Wed Oct 10 00:06:28 2018
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*telefon.*?klingel/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*anruft/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*zuhause/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*alarm.*/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*fenster.*/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*tür.*/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*dunkel.*/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer wieder auf Auto =~ /wenn .*hell.*/i
2018.10.09 23:06:28 4: Command left: 'Stell die Temperatur im Schlafzimmer auf Auto'
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /timer && (lösche|zurück)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /ereignis\S* && (lösche|zurück)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /garage\S* (auf|zu)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /robbi\S* (an|ein|aus)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && (@types_color) && ?(@rooms) && ?(@places) && auf (@colors)( schalten| stellen)?$/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && (@types_heos) && ?(@rooms) && ?(@places) && (@heos_channels)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && (@types_heos) && ?(@rooms) && ?(@places) && (@denon_inputs)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && ?(@properties) && (@types_switch) && ?(@rooms) && ?(@places) && (\S+)(schalten|machen)?$/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && (@types_blind) && ?(@rooms) && ?(@properties) && (auf (\d+) (?:prozent|%|db)|(\S+$))( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && ?(@types_heos) && ?(@rooms) && ?(@places) && (@heos_commands)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /(bescheid|informire mich)/i
2018.10.09 23:06:28 5: talk Evaluate search:
Stell die Temperatur im Schlafzimmer auf Auto =~ /?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:06:28 5: Command after Phrasecheck: Stell die im auf
2018.10.09 23:06:28 5: Keylists: $VAR1 = undef;
$VAR2 = undef;
$VAR3 = 'types_heating';
$VAR4 = 'rooms';

2018.10.09 23:06:28 5: Filled lists: $VAR1 = '(bitte)';
$VAR2 = '(Heizung|Temperatur|Wohnzimmer|Schlafzimmer|Bastelzimmer|Flur|Alice|Keller|Bad)';
$VAR3 = '(Haus|überall|Wohnung|Wohnzimmer|Wohnbereich|BadS*|Toilette|Wc|Büro|Arbeitszimmer|eg|ErdgeschoSS?|Draußen|Schlafzimmer|Esszimmer|Bastelzimmer|Keller|Alice|Flur|Waschküche|Terasse|Küche)';
$VAR4 = '(auf (\\d+)((?: )(\\d+)){0,1} grad|auto\\S*)( stellen| setzen| einstellen| ein)?$';

2018.10.09 23:06:28 5: Words: $VAR1 = '';
$VAR2 = undef;
$VAR3 = 'Temperatur';
$VAR4 = 'Schlafzimmer';
$VAR5 = 'Auto';
$VAR6 = undef;
$VAR7 = undef;
$VAR8 = undef;
$VAR9 = undef;

2018.10.09 23:06:28 5: Match: TemperaturSchlafzimmerAuto
2018.10.09 23:06:28 5: Unmatch: Stell die im auf
2018.10.09 23:06:28 4: Hit with phrase: qr/?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)((?: )(\d+)){0,1} grad|auto\S*)( stellen| setzen| einstellen| ein)?$/i
2018.10.09 23:06:28 5: Handle reaction cmd: set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto}
2018.10.09 23:06:28 5: Simple bracket selection (No. 2) with Keyword 1: 'Temperatur'
2018.10.09 23:06:28 5: Simple bracket selection (No. 3) with Keyword 7: 'Schlafzimmer'
2018.10.09 23:06:28 4: Replaced bracket: set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $5{integer=>desiredTemperature $5$7{integer=>.$7, word=>, else=>}, else=>desiredTemperature auto} -> set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* $5{integer=>desiredTemperature $7{integer=>., word=>, else=>}, else=>desiredTemperature auto}
2018.10.09 23:06:28 4: Advanced bracket replacement. $7integer=>., word=>, else=> = set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* $5{integer=>desiredTemperature ###, else=>desiredTemperature auto}
2018.10.09 23:06:28 4: Keyword (7): ''
2018.10.09 23:06:28 5: HASH evaluation:
$VAR1 = {
          'integer' => {
                         'order' => 0,
                         'val' => '.'
                       },
          'else' => {
                      'val' => '',
                      'order' => 2
                    },
          'word' => {
                      'order' => 1,
                      'val' => ''
                    }
        };

2018.10.09 23:06:28 5: Empty word replace with ''
2018.10.09 23:06:28 4: Advanced bracket replacement. $5integer=>desiredTemperature , else=>desiredTemperature auto = set T2F_types_heating=.*$2{empty=>.+, else=>Temperatur}.*:FILTER=T2F_rooms=.*(Schlafzimmer).* ###
2018.10.09 23:06:28 4: Keyword (5): ''
2018.10.09 23:06:28 5: HASH evaluation:
$VAR1 = {
          'else' => {
                      'order' => 1,
                      'val' => 'desiredTemperature auto'
                    },
          'integer' => {
                         'order' => 0,
                         'val' => 'desiredTemperature'
                       }
        };

2018.10.09 23:06:28 5: Empty word replace with 'desiredTemperature auto'
2018.10.09 23:06:28 4: Advanced bracket replacement. $2empty=>.+, else=>Temperatur = set T2F_types_heating=.*###.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature auto
2018.10.09 23:06:28 4: Keyword (2): 'Temperatur'
2018.10.09 23:06:28 5: HASH evaluation:
$VAR1 = {
          'empty' => {
                       'val' => '.+',
                       'order' => 0
                     },
          'else' => {
                      'val' => 'Temperatur',
                      'order' => 1
                    }
        };

2018.10.09 23:06:28 5: Unkown word 'Temperatur' replace with 'Temperatur'
2018.10.09 23:06:28 3: Result of cmd: $VAR1 = {
          'cmd' => 'set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature auto',
          'at' => 1539122788
        };

2018.10.09 23:06:28 5: Handle reaction answer: "3: $3 4: $4 5: $5 6: $6 7: $7"
2018.10.09 23:06:28 5: Simple bracket selection (No. 3): 'Schlafzimmer'
2018.10.09 23:06:28 5: Simple bracket selection (No. 4): 'Auto'
2018.10.09 23:06:28 4: Replaced bracket: "3: $3 4: $4 5: $5 6: $6 7: $7" -> "3: Schlafzimmer 4: Auto 5:  6:  7: "
2018.10.09 23:06:28 4: Answer eval: "3: Schlafzimmer 4: Auto 5:  6:  7: "
2018.10.09 23:06:28 3: Result of answer: $VAR1 = '3: Schlafzimmer 4: Auto 5:  6:  7: ';

2018.10.09 23:06:28 5: Executing Command: define at_talk_1539122788_0 at 2018-10-10T00:06:28 set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature auto
2018.10.09 23:06:28 5: Pushed: define at_talk_1539122788_0 at 2018-10-10T00:06:28 set T2F_types_heating=.*Temperatur.*:FILTER=T2F_rooms=.*(Schlafzimmer).* desiredTemperature auto


Warum rutscht "Auto" von Stelle 4 nach 7 bei einer Verundung? ich verstehe es nicht  :o und möchte nicht gerne für beide Varianten $4 und $7 was kodieren.

Gruß Michael
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

Phill

Hi, das liegt daran das talk2fhem irgendeine Klammer als "direction" auswählen muss. Also die Klammer die mir dem Sollwert ersetzt werden soll. Ich hatte mich dafür entschieden, da es in den meisten Fällen die letzte Klammer ist, auch diese anzunehmen. Auszug aus dem WIKI:
ZitatDamit die Verknüpfung zweier Kommandos mit dem Wort wieder zuverlässig funktioniert, sollte die Klammer die den gewünschten Zustand beschreibt die letzte verwendete sein.
"Verwendet" bedeutet die höchste Nummer im Kommandoteil.
Aber bei deinem Satz:
ZitatStell die Temperatur im Schlafzimmer auf 19 grad
Ist es ja auch der letzte Teil der geändert werden muss. Du müsstest also die Konfig so umbauen das das Kommando die letzte Klammer darstellt.
?(bitte) && (@types_heating) && ?(@rooms) && auf (\S+)( grad)? ?(stellen|setzen|einstellen|ein)?$ =
(cmd=>'set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* desiredTemperature $5{integer=>$5,numeral=>$5,float=>$5, /auto\S+/=>auto}',
   answer=>'"3: $3 4: $4 5: $5 6: $6 7: $7"')


So in etwa sollte es gehen, kann es nur leider gerade nicht testen. Das Beispiel aus dem WIKI ist nicht von mir, daher ist es gerade etwas schwer mich da reinzudenken aber ganz optimal ist es nicht wie ich gerade sehe.
Probiere mal ein paar Sätze aus und wenn was nicht klappt schaue ich es mir nochmal an.

Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

ahlermi

Wenn ich "19,5" oder "19.5" Grad sage wird daraus "19 5", das nur zur Info deshalb kommt das dann mit (\d+) auch nicht rüber.

Außerdem muss ich aus "," einen "." machen  >:(

Jetzt habe ich die Logik verstanden, ich versuche das mal so zu lösen  :) danke!
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

ahlermi

wen es interessiert, das ist meine Lösung


#Heizung
?(bitte) && (@types_heating) && ?(@rooms) && (auf (\d+)(?: )(\d+)){0,1} (grad|auto\S*)( stellen| setzen| einstellen| ein)?$ =
  (cmd=>'set T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).* $7{/grad/=>desiredTemperature $5$6{integer=>.$6, word=>, else=>}, else=>desiredTemperature auto}',
   answer=>'"$AGAIN" ? "dann $DATE wieder auf Automatik" : "Die Durchschnittstemperatur beträgt dort zur Zeit ".averageTemp("T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).*")." Grad\n$1{/bitte/=>Gern, else=>Das heißt Bitte}, ich stelle die Heizung in folgenden Räumen $DATE auf $7{/grad/=>$5$6{integer=> komma $6, word=>, else=>} Grad, else=>Automatik}: ".T2F_answer("T2F_types_heating=.*$2{empty=>.+, else=>$2@}.*:FILTER=T2F_rooms=.*($3@).*","T2F_types_heating")')
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

Phill

Der Modifikator float kümmert sich eigentlich um die Konvertierung von 19 5 in 19.5

Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

ahlermi

Das musst du mir noch etwas genauer erklären, laut logging ist bei der Prüfung die Zahl schon mit Space getrennt. Ein regex mit , oder . Zieht nicht.
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN