Hello
Situation
I have following intent:
[SetTimer]
hour_expr = ( (0..59) {hours} (Stunden | Stunde) )
minute_expr = ( (1..90) {minutes} (Minuten | Minute ) )
second_expr = ( (1..90) {seconds} (Sekunden | Sekunde) )
time_expr = ((<hour_expr> [[und] <minute_expr>] [[und] <second_expr>]) | ( <minute_expr> [[und] <second_expr> ] ) | <second_expr> )
stelle [(im | in der) ($rooms){room}] einen (Timer|Alarm) [(im | in der) ($rooms){room}] auf <time_expr>
Problem:
If I speak something without hours or seconds these slots are not used.
`
`
I tried it with that (see: last Part : | (:0){hours} (:0){minutes} <second_expr> ), but I don’t know how to do it for all parts.
time_expr=((<hour_expr>[[und]<minute_expr>][[und]<second_expr>])|(<minute_expr>[[und]<second_expr> ] )|(:0){hours}(:0){minutes}<second_expr>)
-
Stelle einen alarm im wohnzimmer auf 2 Sekunden
Result:
"slots": {
"hours": "0",
"minutes": "0",
"seconds": 2
},
Wish:
I would like to have default value of 0 (zero) for all slots, which are not given.
Thanks for all hints
I found the Solution. Quit simple.
time_expr=(((:0){minutes} (:0){seconds}<hour_expr>[[und]<minute_expr>][[und]<second_expr>])| ((:0){hours}(:0){seconds}<minute_expr>[ [und] <second_expr> ] )|((:0){hours}(:0){minutes} <second_expr>))
Just to add: (in the hour Part)
(:0){minutes}(:0){seconds}
And: (in the minute Part)
(:0){hours}(:0){seconds}
And:(in the seconds Part)
(:0){hours}(:0){minutes}
Like that, I can set a timer in Hassio
- service: script.turn_on
data_template:
entity_id: script.script_settimer
variables:
siteId: >
{{trigger.event.data._intent.siteId}}
sessionId: >
{{trigger.event.data._intent.sessionId}}
room: >
{% if trigger.event.data.room %}
{{ trigger.event.data.room}}
{% else %}
{{ trigger.event.data._intent.siteId}}
{% endif %}
seconds: >
{{trigger.event.data.seconds}}
minutes: >
{{trigger.event.data.minutes }}
hours: >
{{trigger.event.data.hours}}
And the script:
script_settimer:
alias: script_settimer
sequence:
- service: timer.start
data:
entity_id: timer.alarm
duration: >
{{hours}}:{{minutes}}:{{seconds}}
- service: script.turn_on
data_template:
entity_id: script.script_talk_to_satellite
variables:
siteId: >
{{siteId}}
sessionId: >
{{sessionId}}
text: "Ich habe den Alarm auf {{hours}} Stunden, {{minutes}} Minuten und {{seconds}} Sekunden gestellt"
1 Like