Ich habe mal etwas experimentiert...
Als erstes das Attribut "intervalvoice" mit dem Wert 8 - wie vorgeschlagen angelegt.
Dann ein DOIF hard codiert:
Internals:
CFGFN
DEF ([WZ_Echo_Dot:"^voice:.alexa.wie.ist.die.feuchtigkeit.im.arbeitszimmer$"]) (set WZ_Echo_Dot speak Im Arbeitszimmer beträgt die Luftfeuchtigkeit [AZ_Sensor:humidity] %)
DOELSEIF
([WZ_Echo_Dot:"^voice:.alexa.wie.ist.die.feuchtigkeit.im.wohnzimmer$"]) (set WZ_Echo_Dot speak Im Wohnzimmer beträgt die Luftfeuchtigkeit [WZ_Sensor:humidity] %)
FUUID 6207cd15-f33f-b425-3566-5173ac44058f7453
MODEL FHEM
NAME Ask_states
NOTIFYDEV WZ_Echo_Dot,global
NR 103626
NTFY_ORDER 50-test2
STATE cmd_2
TYPE DOIF
VERSION 25590 2022-01-30 11:30:21
READINGS:
2022-02-12 17:16:29 Device WZ_Echo_Dot
2022-02-12 16:44:00 cmd 2
2022-02-12 16:44:00 cmd_event WZ_Echo_Dot
2022-02-12 16:44:00 cmd_nr 2
2022-02-12 17:16:29 e_WZ_Echo_Dot_events microphone: false,deviceAddress:, DE,timeZoneId: Europe/Berlin
2022-02-12 16:43:30 mode enabled
2022-02-12 16:44:00 state cmd_2
Regex:
accu:
collect:
cond:
WZ_Echo_Dot:
0:
&STATE ^WZ_Echo_Dot$
1:
&STATE ^WZ_Echo_Dot$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('WZ_Echo_Dot',$hash,'^voice:.alexa.wie.ist.die.feuchtigkeit.im.arbeitszimmer$',1)
1 ::EventDoIf('WZ_Echo_Dot',$hash,'^voice:.alexa.wie.ist.die.feuchtigkeit.im.wohnzimmer$',1)
do:
0:
0 set WZ_Echo_Dot speak Im Arbeitszimmer beträgt die Luftfeuchtigkeit [AZ_Sensor:humidity] %
1:
0 set WZ_Echo_Dot speak Im Wohnzimmer beträgt die Luftfeuchtigkeit [WZ_Sensor:humidity] %
2:
helper:
NOTIFYDEV WZ_Echo_Dot,global
event microphone: false,deviceAddress
globalinit 1
last_timer 0
sleeptimer -1
timerdev WZ_Echo_Dot
timerevent voice: alexa wie ist die feuchtigkeit im wohnzimmer
triggerDev WZ_Echo_Dot
timerevents:
voice: alexa wie ist die feuchtigkeit im wohnzimmer
voice_timestamp: 1644680633915
BrowserUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
BrowserLanguage: de,en-US;q=0.7,en;q=0.3
timereventsState:
voice: alexa wie ist die feuchtigkeit im wohnzimmer
voice_timestamp: 1644680633915
BrowserUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
BrowserLanguage: de,en-US;q=0.7,en;q=0.3
triggerEvents:
microphone: false
deviceAddress:
timeZoneId: Europe/Berlin
triggerEventsState:
microphone: false
deviceAddress:
timeZoneId: Europe/Berlin
internals:
readings:
trigger:
all WZ_Echo_Dot
uiState:
uiTable:
Attributes:
do always
room Test
Das funzt schon mal. Alexa antwortet zwar erst mit "das wird noch nicht unterstützt", aber danach kommt die Ansage.
Wie kann man das generalisieren?
1. Das man nicht den genauen Wortlaut verwenden muss sondern nur die Räume und die Werte (z.B. Temp., Feuchte, Fenster, Rolas) aus der Anfrage extrahiert werden? In etwa Trigger auf Raum und zusätzliche Bedingung Art der Anfrage (s.o.).
2. Nur je einen Abfragezweig für die verschiedenen Wertearten und nicht für jede einzelne Abfrage einen eigenen?