Skip to content

Commit

Permalink
[uk] Added HassStartTimer intent (#2553)
Browse files Browse the repository at this point in the history
  • Loading branch information
skynetua authored Nov 16, 2024
1 parent 21796c9 commit 12abebb
Show file tree
Hide file tree
Showing 5 changed files with 332 additions and 0 deletions.
37 changes: 37 additions & 0 deletions responses/uk/HassStartTimer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
language: uk
responses:
intents:
HassStartTimer:
default: >
{% set h = slots.hours if slots.hours is defined else none %}
{% set m = slots.minutes if slots.minutes is defined else none %}
{% set s = slots.seconds if slots.seconds is defined else none %}
{% set h_text = h ~ (' годину' if h | int % 10 == 1 and h != "11" else (' години' if h | int % 10 in [2, 3, 4] and h not in ["12", "13", "14"] else ' годин')) if h else '' %}
{% set m_text = (90 if m in ['півтори', '1.5'] else (30 if m in ['пів', '1/2', 'половиною'] else m)) ~
(' хвилину' if m | int % 10 == 1 and m != "11" else
(' хвилини' if m | int % 10 in [2, 3, 4] and m not in ["12", "13", "14"] else
' хвилин')) if m else '' %}
{% set s_text = (90 if s in ['півтори', '1.5'] else (30 if s in ['пів', '1/2', 'половиною'] else s)) ~
(' секунду' if s | int % 10 == 1 and s != "11" else
(' секунди' if s | int % 10 in [2, 3, 4] and s not in ["12", "13", "14"] else
' секунд')) if s else '' %}
{% set text_list = [ h_text, m_text, s_text] | select() | list %}
{% set text = text_list[:-1] | join(', ') ~ ' та ' ~ text_list[-1] if text_list | count > 2 else text_list | join(' та ') %}
{% set name = (' з назвою ' ~ slots.name | trim) if slots.name is defined else '' %}
Встановлено таймер на {{ text }}{{ name }}
command: >
{% set h = slots.hours if slots.hours is defined else none %}
{% set m = slots.minutes if slots.minutes is defined else none %}
{% set s = slots.seconds if slots.seconds is defined else none %}
{% set h_text = h ~ (' годину' if h | int % 10 == 1 and h != "11" else (' години' if h | int % 10 in [2, 3, 4] and h not in ["12", "13", "14"] else ' годин')) if h else '' %}
{% set m_text = (90 if m in ['півтори', '1.5'] else (30 if m in ['пів', '1/2', 'половиною'] else m)) ~
(' хвилину' if m | int % 10 == 1 and m != "11" else
(' хвилини' if m | int % 10 in [2, 3, 4] and m not in ["12", "13", "14"] else
' хвилин')) if m else '' %}
{% set s_text = (90 if s in ['півтори', '1.5'] else (30 if s in ['пів', '1/2', 'половиною'] else s)) ~
(' секунду' if s | int % 10 == 1 and s != "11" else
(' секунди' if s | int % 10 in [2, 3, 4] and s not in ["12", "13", "14"] else
' секунд')) if s else '' %}
{% set text_list = [ h_text, m_text, s_text] | select() | list %}
{% set text = text_list[:-1] | join(', ') ~ ' та ' ~ text_list[-1] if text_list | count > 2 else text_list | join(' та ') %}
Команду буде виконано через {{ text }}
46 changes: 46 additions & 0 deletions sentences/uk/_common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,35 @@ lists:
from: 0
to: 100

timer_seconds:
range:
from: 1
to: 100
timer_minutes:
range:
from: 1
to: 100
timer_hours:
range:
from: 1
to: 100
timer_half:
values:
- in: "пів"
out: 30
- in: "1/2"
out: 30
- in: "половиною"
out: 30
timer_one_and_half:
values:
- in: "півтори"
out: 90
timer_name:
wildcard: true
timer_command:
wildcard: true

expansion_rules:
name: "{name}"
area: "[в|у|на] {area}"
Expand All @@ -355,8 +384,25 @@ expansion_rules:
temperature: "{temperature} [градус(ів|и|а)] [{temperature_unit}]"
position: "{position}[[ ]%| відсотк(ів|а|и)]"
volume: "{volume:volume_level}[[ ]%| відсотк(ів|а|и)]"

# Locks & covers
відкрий: "відкрий | розкрий | підніми | відчини"
закрий: "закрий | опусти | зачини"

# Timers
timer_set: "(запусти|встанови|ввімкни|розпочни|створи)"
timer_cancel: "(скасуй|вимкни|зупини)"

timer_duration_seconds: "{timer_seconds:seconds} секунд[у|и]"
timer_duration_minutes: "({timer_minutes:minutes} хвилин[у|и][ [і |та ]{timer_seconds:seconds} секунд[у|и]])|({timer_minutes:minutes} з {timer_half:seconds} хвилин[у|и])|({timer_half:seconds} хвилини)|({timer_one_and_half:seconds} хвилини)"
timer_duration_hours: "({timer_hours:hours} годин[у|и] [[і |та ]{timer_minutes:minutes} хвилин[у|и]][ [і |та ]{timer_seconds:seconds} секунд[у|и]])|({timer_hours:hours} з {timer_half:minutes} години)|({timer_half:minutes} години)|({timer_one_and_half:minutes} години)"
timer_duration: "<timer_duration_seconds>|<timer_duration_minutes>|<timer_duration_hours>"

timer_start_seconds: "{timer_seconds:start_seconds} секунд[а|и]"
timer_start_minutes: "{timer_minutes:start_minutes} хвилин[а|и][ [і |та ]{timer_seconds:start_seconds} секунд[а|и]]"
timer_start_hours: "{timer_hours:start_hours} годин[а|и][ [і |та ]{timer_minutes:start_minutes} хвилин[а|и]][ [і |та ]{timer_seconds:start_seconds} секунд[а|и]]"
timer_start: "<timer_start_seconds>|<timer_start_minutes>|<timer_start_hours>"

skip_words:
- "будь ласка"
- "зараз"
Expand Down
16 changes: 16 additions & 0 deletions sentences/uk/homeassistant_HassStartTimer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
language: "uk"
intents:
HassStartTimer:
data:
- sentences:
- "таймер [на] <timer_duration>"
- "<timer_duration> таймер"
- "<timer_set> таймер [на] <timer_duration>"
- "<timer_set> таймер {timer_name:name} на <timer_duration>"
- "<timer_set> [a|the|my] <timer_duration> timer (named|called|for) {timer_name:name}"
- "<timer_set> таймер (під|з) назвою {timer_name:name} на <timer_duration>"
- "<timer_set> таймер {timer_name:name} на <timer_duration> "
- sentences:
- "{timer_command:conversation_command} через <timer_duration>"
- "через <timer_duration> {timer_command:conversation_command}"
response: command
20 changes: 20 additions & 0 deletions tests/uk/_fixtures.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,23 @@ entities:
state: "idle"
attributes:
volume_level: "50"

timers:
- is_active: false
start_hours: 1
total_seconds_left: 100
rounded_hours_left: 0
rounded_minutes_left: 1
rounded_seconds_left: 40
- name: "піцца"
start_minutes: 30
total_seconds_left: 1505
rounded_hours_left: 0
rounded_minutes_left: 25
rounded_seconds_left: 0
- area: "kitchen_id"
start_minutes: 5
total_seconds_left: 190
rounded_hours_left: 0
rounded_minutes_left: 3
rounded_seconds_left: 0
213 changes: 213 additions & 0 deletions tests/uk/homeassistant_HassStartTimer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
language: uk
tests:
- sentences:
- "таймер на 10 хвилин"
intent:
name: HassStartTimer
slots:
minutes: 10
response: Встановлено таймер на 10 хвилин

- sentences:
- "встанови таймер на 5 з половиною хвилин"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
minutes: 5
seconds: 30
response: Встановлено таймер на 5 хвилин та 30 секунд

- sentences:
- "запусти таймер на 1 годину"
- "створи таймер на 1 годину"
- "таймер на 1 годину"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 1
response: Встановлено таймер на 1 годину

- sentences:
- "запусти таймер на пів хвилини"
- "встанови таймер на 1/2 хвилини"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
seconds: 30
response: Встановлено таймер на 30 секунд

- sentences:
- "ввімкни таймер на 2 з половиною години"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 2
minutes: 30
response: Встановлено таймер на 2 години та 30 хвилин

- sentences:
- "запусти таймер на пів години"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
minutes: 30
response: Встановлено таймер на 30 хвилин

- sentences:
- "запусти таймер на півтори години"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
minutes: 90
response: Встановлено таймер на 90 хвилин

- sentences:
- "створи таймер на 1 годину та 15 хвилин"
- "таймер на 1 годину та 15 хвилин"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 1
minutes: 15
response: Встановлено таймер на 1 годину та 15 хвилин

- sentences:
- "створи таймер на 5 годин та 21 хвилину"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 5
minutes: 21
response: Встановлено таймер на 5 годин та 21 хвилину

- sentences:
- "створи таймер на 4 години 22 хвилину та 1 секунду"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 4
minutes: 22
seconds: 1
response: Встановлено таймер на 4 години, 22 хвилини та 1 секунду

- sentences:
- "створи таймер на 11 години 25 хвилин та 4 секунди"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 11
minutes: 25
seconds: 4
response: Встановлено таймер на 11 годин, 25 хвилин та 4 секунди

- sentences:
- "таймер на 1 годину та 30 секунд"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 1
seconds: 30
response: Встановлено таймер на 1 годину та 30 секунд

- sentences:
- "таймер на 1 годину 15 хвилин та 30 секунд"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
hours: 1
minutes: 15
seconds: 30
response: Встановлено таймер на 1 годину, 15 хвилин та 30 секунд

- sentences:
- "запусти таймер 5 хвилин"
- "5 хвилин таймер"
- "таймер на 5 хвилин"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
minutes: 5
response: Встановлено таймер на 5 хвилин

- sentences:
- "запусти таймер піцца на 5 хвилин"
- "встанови таймер з назвою піцца на 5 хвилин"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
minutes: 5
name:
- "піцца "
- "піцца"
response: Встановлено таймер на 5 хвилин з назвою піцца

- sentences:
- "запусти таймер на 5 хвилин та 10 секунд"
- "5 хвилин і 10 секунд таймер"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
minutes: 5
seconds: 10
response: Встановлено таймер на 5 хвилин та 10 секунд

- sentences:
- "таймер на 45 секунд"
intent:
name: HassStartTimer
context:
area: Вітальня
slots:
seconds: 45
response: Встановлено таймер на 45 секунд

- sentences:
- "відкрий двері в гаражі через 5 хвилин"
- "через 5 хвилин відкрий двері в гаражі"
intent:
name: HassStartTimer
slots:
minutes: 5
conversation_command:
- "відкрий двері в гаражі"
response: Команду буде виконано через 5 хвилин

- sentences:
- "вимкни світло через пів години"
intent:
name: HassStartTimer
slots:
minutes: 30
conversation_command:
- "вимкни світло"
response: Команду буде виконано через 30 хвилин

0 comments on commit 12abebb

Please sign in to comment.