Найти тему
HASSStas: Рецепты HomeAssistant

Универсальная автоматизация освещения

Оглавление

Немного о полезных шаблонах. Где-то год назад в Home Assistant появилась новая сущность для автоматизаций - blueprints (шаблоны). С помощью таких шаблонов можно настраивать типовые автоматизации, например - управление освещением в зависимости от датчиков движения. Раньше для каждой комнаты надо было писать отдельную автоматизацию, в которой прописывать все сущности - датчик движения, пороги срабатывания, свет, которым нужно управлять. С помощью шаблонов создаётся универсальный скрипт, в который в автоматизации передаются те самые сущности для управления. При этом, если в шаблоне поменять алгоритмы, они автоматически начнут работать для всех автоматизаций, работающих на шаблоне, без необходимости переписывать каждую. Это удобно.

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

Постановка задачи:

  • организовать контроль наличия человека в комнате
  • организовать контроль недостатка освещённости в комнате
  • при наличии человека и недостатке освещённости включать и держать включённым свет
  • предусмотреть стоп-факторы, запрещающие включать свет при недостаточном освещении

Для решения этой задачи был найден в репозиториях Home Assistant более-менее подходящий шаблон: Yer Another Motion Automation (YAMA). Что умеет этот шаблон:

  • работать с элементами или группами света
  • варьировать время отсутствия движения для выключения освещения
  • отслеживать состояние элемента блокировки сработки автоматизации и блокировки выключения света
  • отслеживать положение солнца на небе (для определения уровня освещённости)
  • включать сцены освщения в зависимости от времени суток и наличия движения.

Практически всё, что мне было нужно, за исключением того, что у меня используются Qingping Motion&Ambient sensor, которые помимо движения отслеживают ещё и уровень освещённости. С учётом наличия этих датчиков я переписал шаблон под себя и заменил контроль положения солнца на контроль освещённости по датчику.

Подготовка элементов для управления

В первую очередь я определил для каждой комнаты набор управляемых элементов:

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

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

Настройка шаблона

Итак, поехали. Настройка на примере кухни:

Выбираем проект YAMA

-2

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

-3

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

-4

Вот так выглядят кнопки для управления (кастомная интеграция mushroom-entity-card для красоты):

-5

Проверка уровня освещённости

-6

И, при желании, настройка сцен освещения (у меня нет)

-7

Итоговая схема интеграции выглядит так:

-8

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

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

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

А на этом всё, подписывайтесь н мой телеграм, чтобы читать анонсы и следить за обновлениями в онлайне.