Иногда в системе умного дома Home Assistant нужно указать период времени. Например:
Есть несколько разных способов как можно указать период времени в файле configuration.yaml с настройками Home Assistant.
Если в конфиге указано просто число, то это означает количество секунд.
Вот как сделать таймер на 2 минуты:
timer:
test:
duration: 120
А вот пример сенсора с данными о версии Home Assistant, который запускается раз в 30 минут:
sensor:
- platform: version
name: HA Installed Version
scan_interval: 1800
Если нужно указать какой-то небольшой период, 5 секунд, 10 или 30, то для этого удобно использовать просто число. Если же нужно указать более длинный период, то более наглядно использовать другие форматы.
Пример таймера на 1 час 23 минуты и 45 секунд:
timer:
test:
duration: '1:23:45'
Кавычки не обязательны, можно указать и без кавычек:
timer:
test:
duration: 1:23:45
Если используются кавычки, то можно использовать как двойные кавычки, так и одинарные (но обязательно использовать один и тот же тип кавычек и для открывающейся и для закрывающейся кавычки).
Если часов и минут нет, то в этом формате их нужно заменить нулями. 5 секунд в этом формате записывается так: "0:00:05". Можно записать и "0:0:5", это тоже будет работать, но нагляднее использовать "0:00:05".
Вот еще один пример как можно записать период времени в Home Assistant:
timer:
test:
duration: 1:23
Тут указывается не 3 элемента, а только два. И сразу возникает вопрос — что это означает? Это часы и минуты или минуты и секунды?
Правильный ответ — это часы и минуты. "duration: 1:23" — это один час и 23 минуты.
Лучше всего этот формат никогда не использовать, чтобы не задаваться вопросом что означают элементы в этом формате.
В некоторых местах Home Assistant можно указывать период времени с помощью явного указания. Например, так можно сделать в триггере автоматизации:
automation:
trigger:
...
for:
hours: 1
minutes: 10
seconds: 5
Так же это работает при использовании в sequence:
sequence:
- service: script.turn_off
data:
entity_id: script.turn_off_with_delay
- service: switch.turn_on
data:
entity_id: switch.fake_heater_1
- delay:
seconds: 1
- service: switch.turn_on
data:
entity_id: switch.fake_heater_2
Но, например, в таймере такой вариант не работает.
В HA есть несколько способов как можно указать период времени. Лучше всего всегда использовать формат Ч:ММ:СС, это самый наглядный и простой для восприятия вариант:
"0:00:30" — 30 секунд
"0:15:00" — 15 минут
"8:00:00" — 8 часов
26 марта 2020
Кстати, у меня есть телеграм канал про Home Assistant: https://t.me/bessarabov_ha
|