Добавить в корзинуПозвонить
Найти в Дзене

HomeAssistant - скрипты или автоматизации, что лучше, удобнее, практичнее?

Всем привет! В данной статье я бы хотел обширно высказать своё мнение по поводу атомарных автоматизаций и скриптов в HomeAssistant, и рассказать как я их использую, и почему. Прошу всех подписаться на канал и поставить лайк. Вам не сложно, а мне приятно. И это помогает продвижению блога. Спасибо. Начнём с определения. Автоматизация - последовательность действий, вызванная каким-либо тригером (или несколькими) с соблюдением условий (опционально). В HomeAssistant можно (и в некоторых случаях НУЖНО) писать полноценные, самостоятельные автоматизации. Но только если они достаточно простые - открылась дверь ->включился свет. Но при использовании сложных алгоритмов - я использую скрипты. Скрипты являются полноценным алгоритмом, который можно вызвать в любом месте HomeAssistant, вручную запустить (с кнопки в интерфейсе), в автоматизации, в другом скрипте, и так далее. Например. Есть у меня скрипт, который воспроизводит на колонке в детской фразу "Пора умываться и готовиться ко сну". В скрипте
Оглавление

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

Прошу всех подписаться на канал и поставить лайк. Вам не сложно, а мне приятно. И это помогает продвижению блога. Спасибо.

Автоматизации

Начнём с определения. Автоматизация - последовательность действий, вызванная каким-либо тригером (или несколькими) с соблюдением условий (опционально). В HomeAssistant можно (и в некоторых случаях НУЖНО) писать полноценные, самостоятельные автоматизации. Но только если они достаточно простые - открылась дверь ->включился свет. Но при использовании сложных алгоритмов - я использую скрипты.

Скрипты

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

Причины использования скриптов

1. Вызов из нескольких мест

Например. Есть у меня скрипт, который воспроизводит на колонке в детской фразу "Пора умываться и готовиться ко сну". В скрипте идёт установка нужной громкости на колонке, воспроизведение текста, возвращение громкости в прежний уровень. Использование скрипта позволяет мне вызывать его из нескольких мест: в интерфейсе, отдельной кнопкой (ярлык) в телефоне, через Алису в любой комнате (деже на телевизоре), с кнопки в мессенджере.

Да, это всё можно сделать в автоматизации, указав несколько тригеров. Но тогда не получится нормально запустить вручную (с кнопки в интерфейсе, или ярлыка в телефоне).

2. Многократное использование

Этот пункт плавно вытекает из предыдущего. Скрипты можно использовать в других скриптах или как часть автоматизации. Например скрипт установки громкости на колонке - сохраняет текущее значение в отдельный input_number, и устанавливает заданное. А скрипт возвращения громкости - читает значение input_number и выставляет громкость в это значение.

3. Изменение в одном месте

А вот этот пункт для меня стал самым критичным, и является наиболее важным для перехода на скрипты. Из второго пункта - кажется легко, почему бы не использовать напрямую в автоматизации эти действия? А потому что автоматизаций может быть сотня, и при желании что-то изменить в одном действии (в данном случае потенциальную громкость) - придётся менять сотню автоматизаций. А это уже сложнее, чем исправить один скрипт, потратив на это меньше минуты.

Да, есть случаи, когда нужно устанавливать громкость, отличную от той, что в скрипте. Но это единичные случаи. И такие автоматизации живут годами и не меняются. В моём случае - это тревога (протечки и утечка газа). И это одна автоматизация, в которой сначала устанавливается громкость (в моём случае 8), а затем уже в зависимости от тригера - воспроизводится нужный текст. И после - возвращается старая громкость.

Итоги

По итогу у меня порядка сотни автоматизаций, и примерно столько же скриптов. И код самих автоматизаций с каждым подходом становится короче и короче. Так проще отлаживать, ловить глюки. Некоторые мои автоматизации запускают последовательно несколько скриптов, ещё и в зависимости от условий. И можно просто понять, на каком этапе что отвалилось. Трассировка одного из скриптов гораздо проще в понимании, чем трассировка одной огромнейшей автоматизации.

Всем спасибо за чтение, за интерес, комментарии.

Подписывайтесь на мои каналы:

Телеграм - https://t.me/kai_zer_ru_ha
МАКС -
https://max.ru/id251603503331_biz
ВКонтакте -
https://vk.com/kai_zer_ru_ha
Обсуждение -
https://max.ru/join/KoCsTSA3VGOCiIFdSAW0myVJEwXZi-rt9fTfGxdgk6A

Поддержать меня финансово можно по ссылке (Т-Банк) - https://www.tbank.ru/rm/r_wKLcbFgjYa.ncgWMwrHSA/vyQvd5941/