21. Автоматизация на основе таймера в Home Assistant. Бойлер. Часть 1.


В данной статье рассмотрим пример продвинутой автоматизации с использованием элемента таймер, который создадим самостоятельно.

Предыдущая статья:

Сначала небольшая вводная.
Есть линия холодной воды поступающая в дом, которая разделяется на 2 линии. Собственно холодную воду идущую из крана, и горячую нагреваемую солнечным/электрическим бойлером и идущую в те же краны.

Теперь сама задача:
В рабочие дни недели, по утрам нужна тёплая вода чтобы умыться и не ждать пока бойлер нагреется. Конечно же нет смысла греть бойлер, если вода в нём и так тёплая.

Решение.
Во первых нужен умный выключатель для бойлера.
Во вторых, создать автоматизацию, которая будет включать бойлер только в определённое время и при условии что вода в нём не соответствует желаемой температуре .

Для определения условий относительно воды есть следующие варианты:
1. Установить термодатчик в бойлер или взять готовый бойлер с термодатчиком.
Плюсы такого решения: максимальная точность в показаниях.
Минусы: порча бойлера при попытке заколхозить самостоятельно, либо большие затраты на покупку и установку нового.

2. Опытным путём установить при какой температуре на улице, температура воды отвечает требованиям, и какое время надо бойлеру для нагревания воды до желаемого состояния.
Плюсы: отсутствие затрат (кроме покупки и установки умного выключателя).
Минусы: не самая высокая точность показаний.

 - Дополнение ко второму варианту.
Использовать для получения показаний температуры на улице не данные из интернета, а с датчика температуры установленного на улице.
Плюсы: более точные данные, возможность использовать полученные данные для других сценариев.
Минусы: небольшие затраты на покупку датчика.

 - Дополнение к дополнению.
Использовать несколько датчиков температуры, установленных по периметру дома, для получения среднего арифметического показателя по температуре.

пример уличного датчика zigbee на двух батарейках АА

Кроме включения бойлера, самым главным пунктом является его выключение, не только для продления жизни самого аппарата, но и для экономии электроэнергии. Так что для отключения нам понадобится таймер.

Разберёмся что это за зверь.
Таймер это сущность находящаяся в домене timer. И может сообщать о себе следующие события:
- Отменён.
- Закончен.
- Запущен.
- Перезапущен.
- Пауза.

Так же, таймер обладает следующими состояниями:
- В ожидании. Таймер на отметке 0:00:00 и ждёт запуска. В результате события "отменён" или "закончен".
- Активный. Таймер запущен и идёт обратный отсчёт указанного времени. В результате события "запущен" или "перезапущен".
- На паузе. Таймер приостановлен на каком-то временном значении. В результате события "пауза".

В одной из предыдущих статей уже использовался такой элемент Home Assistant как помощник. На этот раз воспользуемся помощником типа таймер.

Заходим в настройки -> устройства и службы -> вспомогательное -> создать вспомогательный элемент -> таймер


Функция восстановления отвечает за сохранение времени, на которое был установлен таймер. Если оставить продолжительность на нуле и НЕ отметить восстановление, то таймер всегда будет обнуляться при остановке. Это нам и нужно.

Сделаем промежуточный итог.
Мы определились с тем КОГДА включить бойлер.
Мы определились НА КАКУЮ ПРОДОЛЖИТЕЛЬНОСТЬ ВРЕМЕНИ его надо включить.
Мы определились ПРИ КАКИХ УСЛОВИЯХ бойлер должен быть включён.
У нас есть инструмент в виде умного выключателя управляющего бойлером.
И есть заготовленный таймер.

Теперь соберём это всё в единое целое.


Триггером для запуска автоматизации будет время в которое бойлер должен быть включён.
в идеале, подгадать время так, чтобы бойлер уже был с нагретой водой к нужному времени

Условий же будет два: день недели и температура. Т.е. когда день недели ВС, ПН, ВТ, СР, ЧТ,  И сенсор температуры показывает ниже Х градусов. Кстати, в интерфейсе есть возможность проверки правильности условий. В данном случае общее условие не будет соблюдаться, т.к. используется оператор И для выполнения. И одно из условий не удовлетворяет параметрам.

Действием будет параллельный запуск сервиса timer.start, который вызовет созданный ранее таймер на необходимое нам время, и запуск бойлера.



Вторая автоматизация будет отвечать за выключение бойлера.
Триггером для её срабатывания будет остановка нашего таймера, т.е. смена его статуса с активного на ожидание.

Условия для этой автоматизации не нужны.
Действием же станет выключение бойлера.




Один из примеров как всё сделанное может выглядеть в интерфейсе:




Более продвинутые знатоки кодинга могут объединить две эти автоматизации в одну.

Комментарии