Найти в Дзене
HASSStas: Рецепты HomeAssistant

MagicHome: управляемая светодиодная лента

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

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

Но фото контроллера для затравки в моём телеграме я постил уже давно и просто необходимо наконец-то написать об этом - что это, как интегрировать, как пользоваться. Так что вот.

То самое фото в телеграме
То самое фото в телеграме

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

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

Коробочные решения такие есть, в том числе и те же "а-ля эмбилайт", но как управлять из Home Assistant? Пришлось искать управляемые контроллеры, диммеры и прочую светодиодную шелуху. И было найдено готовое решение, уже встроенное в HA - Magic Light. В соседнем радиоларьке за 500 рублей был куплен такой контроллер для одноцветной диммируемой ленты, там же куплена и сама лента. Для комплекта оставался только блок питания, но этого добра и так накопилось навалом.

Схемотехнику рисовать и фотографировать, я думаю, излишне. Там всё просто - разъём-разъём-разъём-готово. Переходим к интеграции.

Дополнительно искать и устанавливать ничего не надо. Magic Home уже идёт "в коробке" с Home Assistant:

-2

Хост оставляем пустой:

-3

Идёт сканирование и - опа! - контроллер найден:

-4

Подтверждаем, устанавливаем зону и, в общем-то, всё. Устройство готово:

-5

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

-6

А в действиях прописываем условие: если телевизор в состоянии "выключен" или "недоступен" (мало ли, такое тоже бывает), то выключаем подсветку:

-7

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

-8

На самом деле, конечно, выключается она не за 10 секунд, но тем не менее плавно. Это приятно. Правда, так же плавно включать её у меня не получилось.

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

-9

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

-10

Тут можно подобрать комфортное фиксированное значение, а можно предусмотреть регулятор яркости (мало ли, захочется добавить/убавить).

Для этого создадим вспомогательный элемент "подсветка" в виде слайдера:

-11

И встроим его в автоматизацию включения в виде значения из темплейта. В виде GUI шаблоны jinja задавать нельзя, поэтому пишем буквами:

-12

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

Когда значение ползунка "подсветка" изменяет своё значение

-13

Если при этом подсветка включена

-14

То включаем подсветку на указанное в ползунке значение:

-15

В текстовом виде выглядит значительно короче и проще:

alias: Ambilight яркость
trigger:
- platform: state
entity_id:
- input_number.ambilight
condition:
- condition: state
entity_id: automation.ambilight
state: "on"
action:
- service: light.turn_on
data:
brightness_pct: "{{states('input_number.ambilight')|int}}"
transition: 10
target:
entity_id: light.ambilight
mode: single

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

Зато мне пришла в голову идея сделать "живую" подсветку в букхолдере:

-16

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