Найти тему

Делаем "глупую" стиральную машинку "умной". Алиса + HomeAssistant

Оглавление

Однажды мне пришла мысль, как не забыть оставленное бельё в стиральной машине? Нужна какая-то напоминалка. И тогда я задумал сделать автоматизацию, которая позволяет мне не забыть вытащить бельё.

Умная розетка

Первым делом нам понадобится умная розетка с энергомониторингом. В моём случае ей служит розетка Aqara SP-EUC01, работающая по протоколу ZigBee. У меня есть ещё несколько розеток от компании LifeControl, но у них есть один минус - они периодически отключаются самостоятельно. А для стиралки это критично. Так что выбор пал на имеющуюся розетку Aqara.

Алиса и Телеграм

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

А в качестве альтернативы (например я сижу в наушниках) я выбрал оповещения в телеграм. Они работают параллельно. Как только стирка закончена, Алиса оповещает об этом, и приходит уведомление в телеграм. Думаю, как настроить уведомления в телеграм тут писать не стоит, об этом и так много информации.

Автоматизации и скрипты

Для полноценной работы автоматизации нам потребуется создать дополнительные компоненты:

  1. Таймер. Я назвал его timer.alisa_stirka
  2. Переключатель. Я назвал его input_boolean.washing_machine_status
  3. Числовое поле для запоминания текущей громкости Яндекс станции. Я назвал его input_number.volume_station_2

В общей сложности у нас будет несколько автоматизаций и скриптов. Итак, приступим.

Все автоматизации и скрипты я разместил в одном пакадже, который можно напрямую закинуть в папку packages, либо закинуть код в файлы automations.yaml и scripts.yaml соответственно.

Рассмотрим всё по порядку.

Первая автоматизация stirka_start срабатывает от двух тригеров - когда стиралка начала работать, и когда закончила. Она отвечает за переключение состояния переключателя input_boolean.washing_machine_status и вызывает скрипт stirka_stop при окончании стирки.

Автоматизация alisa_timer_stirka срабатывает когда заканчивается таймер напоминания. Она перезапускает таймер и вызывает скрипт stirka_stop.

Автоматизация stop_timer_from_alisa срабатывает по событию yandex_intent (об этом я писал в статье про Алису) и отключает таймер.

Скрипт stirka_stop. Перезапускает таймер Алисы, отправляет уведомление в телеграм и озвучивает голосовое уведомление. Я сделал ещё 2 скрипта, отвечающих за сохранение текущего уровня громкости колонки и его восстановление после произнесения текста.

Скрипт set_50_volume_station_2 устанавливает громкость колонки равную 50% и записывает текущее состояние громкости в числовое поле input_number.volume_station_2.

Скрипт reset_volume_station_2 восстанавливает прежнюю громкость колонки из числового значения input_number.volume_station_2.

Подобные скрипты я сделал для всех своих колонок, и вызываю при каждом уведомлении голосом. А всё потому, что ребёнок любит убавлять громкость на колонках до минимума. И соответственно уведомления не были бы слышны.

YandexIntents

И финальная настройка для работы автоматизации stop_timer_from_alisa. Для этого нам понадобится установить интеграцию YandexIntents, об этом я уже писал.

Далее нужно отредактировать файл yandex_station_intents.yaml и добавить в блок intents следующее содержимое:

Стирка:
extra_phrases:
-
Я уже вытащил бельё
- Я вытащил стирку
- Я уже вытащил стрику
say_phrase: Хорошо, выключаю таймер напоминания

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

Итоги

Таким образом я теперь никогда не забываю про стирку даже когда меня нет дома (уведомления в телеграм). И Алиса будет напоминать до тех пор, пока я не отключу напоминание об этом. Очень удобная автоматизация. Выручала уже не один раз и очень веселит гостей, создавая кучу вопросов и просьбу рассказать как это сделано. Получилось довольно забавно =)

В комментариях прошу указать на ошибки в статье, может что-то у вас не получилось, советы по оформлению. Отвечу всем и как можно быстрее.

Всем спасибо за чтение, за интерес, комментарии. Ссылка на добровольные донаты. Никого не заставляю, но буду благодарен.

Подписывайтесь на мой канал в телеграме https://t.me/kai_zer_ru_public