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

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

Я говорю о том, как умные лампочки реагируют на кратковременный перебой в подаче электроэнергии.

Глупые умные лампочки

Не та лампочка умная, что включается по желанию твоему, а та, что НЕ включается, когда ты не хочешь того — народная мудрость

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

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

Но вернёмся к нашим дюже умным лампочкам. Почему при скачке напряжения они включаются? Есть мнение, что это сделано для обратной совместимости с обычными “глупыми” лампочками. Если вы вкрутите лампочку в патрон, управляемый обычным выключателем, она должна работать. Отсюда и поведение “появляется питание -> лампочка включается”, которое в точности как у обычных осветительных приборов. К сожалению, умные лампочки недостаточно умные, чтобы такое поведение было настраиваемо. Есть, впрочем, исключения, о которых ниже.

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

Умные технологии, ага.

Решение…

«По щучьему веленью, по моему хотенью» — Народная

Идеальный конечный результат был бы таким — умная лампочка может быть настроена на умное поведение при перебое питания. А именно, вместо включения на максимальную яркость по-умолчанию, лампочку можно заставить оставаться выключенной или, скажем, восстанавливать предыдущее состояние (к примеру, если в момент перебоя с электричеством лампочка была включена на 30% яркости, то восстанови этот же самый режим).

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

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

Копнул глубже, оказывается, ещё в далёком декабре 2018 года Филипс добавил соответствующую настройку в свои лампочки. Вот только афишировать это они, похоже, не хотят. Ради интереса я решил прицельно погуглить по сайту philips-hue.com, и нашёл лишь несколько скупых упоминаний.

Описания обновлений прошивок (ссылка) и приложения iOS (ссылка). Упоминание функции power-on behavior.

Уж не знаю, чем вызвана такая застенчивость по отношению к функциональности, которую они сами описывают как долгожданную (вольный перевод фразы “long awaited”). Что же касается других производителей, то я не смог найти аналогичную настройку. Возможно, они стесняются ещё сильнее (хотя казалось бы, куда сильнее-то). Если вам такие известны, пожалуйста, напишите в комментарии.

…решение доступное всем, но неполное…

В теории нет разницы между теорией и практикой. А на практике есть

Итак, лампочки с нужной заявленной функцией есть, остаётся только купить и спать спокойно. Но где там. Самое интересное всегда начинается, как только дело доходит до реального использования. А практика показала, что через официальное приложение лампочки можно настроить только следующим образом.

Интерфейс приложения Philips Hue Bluetooth. Я привожу настройки на русском и английском, т.к. перевод с английского хромает и вводит в заблуждение.

Так вот, нас интересует настройка со значком молнии. Именно она оставит лампу в выключенном состоянии если она была выключена и произошёл перебой в подаче питания. Вот оно решение! Однако, тут как в том анекдоте, есть нюанс. Если свет мигнёт дважды в течение 15 секунд, то лампочка включится принудительно причём на максимальную яркость и мы снова проснёмся посреди ночи в поисках выключателя. Об этом даже написано в приложении. Интервал в 15 секунд проверен мной на лампочке с артикулом 9290023349 и прошивкой 1.65.11_hB798F2BF от 11 мая 2020.

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

Если бы я не увлекался умными устройствами с интерфейсом ZigBee и не наткнулся на эту функциональность именно на сайте проекта zigbee2MQTT, я бы тут же бросил эту затею. Да и статью на Хабр писать не стоило бы…

… и решение полное, но не для всех

Если долго мучиться, Что-нибудь получится

Однако оказывается, что по протоколу ZigBee доступна ещё одна возможность настройки, до которой не добраться из приложения. Она позволяет настроить умную лампочку на режим всегда выключена. То есть как бы быстро напряжение ни мигало, или как бы яростно вы ни щёлкали выключателем, лампочка не включится. Включить её можно только через сопряжённые устройства умного дома (ZigBee-координатор или всё ту же Bluetooth-приложеньку от производителя).

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

В моём случае (у меня есть ZigBee-координатор CC26X2R1 и zigbee2mqtt) окончательное решение выглядит так:

  1. лампочку нужно сопрячь с координатором

  2. в логах найти её уникальный номер (к примеру 0x0017880108fe7a41)

  3. и послать через zigbee2mqtt MQTT-сообщение.
    Topic: zigbee2mqtt/[FRIENDLYNAME]/set/hue_poweron_behavior
    Data: off

Только после этого мы получим по-настоящему умную лампочку, которая горит, когда нужно и не горит, когда не нужно.