Лампы с блютуз управлением

Обновлено: 04.07.2024

Прошлым летом, когда началась неразбериха с рублём, я решил купить себе что-нибудь забавное, чего в нормальных ценовых условиях никогда не купил бы. Выбор пал на умную управляемую светодиодную лампу "Luminous BT Smart Bulb", про которую, собственно, прочитал до этого здесь же. По-хорошему, для начала нужно было бы купить смартфон с BLE , но на тот момент я не беспокоился о таких мелочах. Лампа приехала, мы немного поигрались с ней на работе, она оказалась довольно прикольной. Но я не мог управлять ею дома, поэтому она отправилась на полку. Один раз, правда, я одолжил лампу коллеге на день рождения маленького ребёнка.

Так продолжалось пока я случайно не узнал, что на моём ноутбуке как раз установлен чип Bluetooth 4.0. Я решил использовать этот факт как-нибудь для управления лампочкой. Программа-минимум — научиться включать/выключать лампочку, устанавливать произвольный цвет или выбирать один из заданных режимов. Что из этого вышло — читайте под катом.

Всё описанное ниже выполнялось на OS Linux Mint 17. Возможно, существуют другие способы работы с BLE стеком. И помните, я не несу ответственность за ваше оборудование.

Разведка боем

Бегло погуглив, я понял, что для работы с BLE в Linux существует команда gatttool , входящая в состав пакета bluez . Но нужно использовать последние версии bluez — 5.x .

У меня bluez не был установлен вообще, а в репозиториях лежит 4.x , поэтому я ставил из исходников. На тот момент последней была версия 5.23 .

С первого раза ./configure вряд ли завершится успешно: необходимо доставить некоторые пакеты.

В моём случае доустановить нужно было следующее:

Для пакета libudev-dev пришлось явно задать версию для соответствия уже установленной libudev .

Прямо из коробки bluez поддерживает интеграцию с systemd , которой у меня нет. Поэтому поддержку пришлось выключить флагом --disable-systemd .

Ага, я в курсе про checkinstall

Собирается bluez довольно быстро. После сборки у меня-таки появилась заветная команда gatttool и даже кое-как работала. Можно двигаться дальше.

Я ввинтил лампочку в цоколь, заработал последний выбранный режим (как на зло это оказался стробирующий синий цвет), и опробовал свежий инструментарий:

Пробуем соединиться (нужно использовать MAC-адрес из первого столбца):

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

Краш-курс по BLE

В интернете есть небольшая, но хорошая статья на эту тему, и лучше чем в ней я не расскажу. Рекомендую ознакомиться.

Вкратце, BLE-устройства состоят из набора сервисов, которые, в свою очередь, состоят из набора характеристик. Сервисы бывают первичные и вторичные, но это не используется в лампочке. У сервисов и у характеристик есть хэндлы и уникальные идентификаторы (UUID). До прочтения вышеозначенной статьи я не понимал зачем нужны две уникальные характеристики. Ключевая фишка (очень пригодится для понимания кода ниже) в том, что UUID — это тип сервиса / характеристики, а хэндл — это адрес, по которому происходит обращение к сервису / характеристике. Т.е. на устройстве может быть несколько характеристик с каким-то типом (например, несколько термодатчиков, с одинаковыми UUID, но разными адресами). Даже на двух разных устройствах могут быть характеристики с одинаковыми UUID и эти характеристики должны вести себя одинаково. Многие типы имеют закреплённые UUID (например 0x2800 — первичный сервис, 0x180A — сервис с информацией о девайсе и т.д.).

Посмотреть все сервиса / характеристики устройства в gatttool можно командами primary и characteristics соответственно. Прочитать данные можно командой char-read , записать — char-write . Запись и чтение производятся по адресам (хэндлам). Собственно, управление любым BLE-устройством происходит через запись характеристик, а путём их чтения мы узнаём статус устройств.

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

Первые шаги

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

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

Из интересного: в снятых дампах можно рассмотреть производителя BLE чипа — "SZ RF STAR CO.,LTD.".

Придётся искать другие пути. Я очень не хотел копаться в мобильных приложениях (не силён в Android и вообще не понимаю в iOS), поэтому я вначале спросил совета у умных дядей на StackOverflow. Никто не ответил и я решил спросить у разработчика приложения под Android. Он тоже не ответил. Оказалось, что в маркете присутствует сразу несколько одинаковых приложений (судя по скриншотам) для управления подобными лампами. Ребята из SuperLegend ответили мне и даже выслали какую-то доку, но, к сожалению, она была не от моей лампочки. Я это выяснил, сравнивая UUID сервисов в коде декомпилированного приложения и в доке. Я сравнил декомпилированный код обоих приложений и он абсолютно одинаковый, возможно мне просто выслали документацию от другой лампы. Переспрашивать я как-то не отважился. Значит, остаётся лишь вариант анализа декомпилированного кода.

Исследование кода

Немного о собственно реверс-инжиниринге. Ни для кого не секрет, что для исследования Android-приложений используются два инструмента — apktool и dex2jar . apktool "разбирает" APK на составляющие: ресурсы, XML-дескрипторы и исполняемый код. Но это не Java-классы, а специальный байт-код — smali. Некоторые утверждают, что он читается проще, чем Java, но я родился слишком недавно, чтобы понимать это без словаря. Тем не менее, ресурсы, извлечённые apktool 'ом пригодятся в дальнейшем. Для получения привычных class-файлов используется dex2jar . После этого классы можно декомпилировать обычным декомпилятором. Пользуясь случаем, хотелось бы порекомендовать любой из свежих декомпиляторов: Procyon, CFR или FernFlower. Привычные JAD'ы и прочие JD просто устарели! Ещё я пробовал Krakatau, но этот, похоже, слишком сыроват.

Обычно я использую Procyon, но он плохо переварил входные классы. Код многих методов представлял собой кашу из именованных меток и ничего нельзя было понять. Некоторые методы не поддавались разбору вообще. Как раз в то время ребята из JetBrains открыли свой декомпилятор на Github (FernFlower, за что им отдельное спасибо) и я попробовал его. Он оказался хорош! На выходе получался довольно адекватный Java-код. Правда, он тоже не смог декомпилировать некоторые части, которые, к счастью, оказались по зубам Procyon и CFR. Я взял за основу анализа результат работы FernFlower, а недостающие части заменил теми же кусками из CFR / Procyon (выбирал те, что покрасивее).

Небольшой урок, который я вынес из декомпиляции обфусцированных Android приложений: использовать встроенные в dex2jar средства деобфускации кода. Дело в том что имена классов и методов при сборке Android приложения сокращаются до ничего не значащих одно- и двухбуквенных. dex2jar умеет расширять их до трёх- и пятисимвольных строк, что позволяет проще ориентироваться по коду. Procyon, ЕМНИП, умеет делать то же самое сам по себе. Ещё при использовании Procyon полезной окажется опция -ei , включающая явные импорты и запрещающая использование конструкций типа import a.b.c.* — гораздо проще работать со статическими методами (коих хватает). FernFlower и CFR по умолчанию не используют такие импорты.

Итак, APK скачана в рабочую папку, декомпилируем:

Я прошёлся по коду и заменил все вхождения $FF: Couldn't be decompiled на тот же код, сгенерированный другими декомпиляторами. Затем я открыл код в IntelliJ IDEA с Android плагином, настроил Android SDK (нужную версию можно узнать в выхлопе apktool ) и, вуаля!, можно разбираться.

Да, и вот с этим придётся работать

Обратите внимание, характеристики ищутся по UUID (типам), так как адреса могут быть разными на разных лампах (не забыли краш-курс по BLE?).

Я потратил несколько вечеров, переименовывая методы во что-нибудь значащее, типа find_FE03_Characteristic или setAndWrite_FFE9 , и просто изучая случайные куски кода. Логика начала потихоньку проясняться.

Стало понятно, что те два класса ( C149c и C144f ) — это своего рода подключения к лампочкам. Похоже, на каждую лампочку создаётся экземпляр подключения и через него происходит общение с лампой. Почему два класса?

Этот код вызывается для каждого обнаруженного девайса. Похоже, существует два типа ламп. Имена первых начинаются с "LEDBlue" или "LEDBLE". Имена вторых — не начинаются. Для работы с "LEDBlue" / "LEDBLE" лампами используется класс C149c , для работы с остальными — C144f . Имя моей лампочки — "LEDnet-4C2A0E4A", значит она относится ко второму типу ламп. Ещё я заметил в паре мест сравнение версии устройства с константой "3". Если версия больше трёх — используется класс С114f (второй тип ламп). Что ж, повод считать, что у меня лампа последних версий. Далее по тексту я буду называть "LEDBlue" и "LEDBLE" лампы "старыми", а остальные — "новыми".

Весь код пестрит synchronized -блоками ( MONITOREXIT — декомпиляции не поддаётся), wait 'ами и notify 'ями. То ли это результат декомпиляции, то ли под Android так принято писать, то ли автор… Ещё много Observable 'ов. Будь он даже не обфусцирован — читался бы сложно.

Ага! Читаем характеристику с типом FFF3 и узнаём, включена ли лампа. Проверяем на лампочке (ну когда уже там практика по расписанию?): если там записано 0xFF , значит лампа включена. Скоро мы научимся выключать лампу программно и узнаем, что в выключенном состоянии там хранится 0x3B .

Здесь и далее будем использовать неинтерактивный режим gatttool (без флага -I ). Адреса характеристик можно узнать из дампа.

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

Обратите внимание, как задаются значения для записи (параметр -n ) — просто строка, по два символа на байт, никаких префиксов типа 0x .

Нужно отправлять [0xCC, (0x23|0x24), 0x33] в характеристику с типом FFE9 . Я не уверен, что 0x23 == вкл, а 0x24 == выкл. Проверить мне не на чем.

Итак, с питанием всё понятно. Разберёмся, как задавать произвольный статичный цвет. Присматриваясь к коду, замечаем непереименованный класс LEDRGBFragment , видим там следующее:

Отправляем [0x56, <red>, <green>, <blue>, 0x00, 0xF0, 0xAA] в характеристику с типом FFE9 (вообще, похоже, это основная характеристика для управления лампочкой) и цвет меняется на произвольный. В классе C152n есть ещё несколько похожих методов, но те байты не возымели эффекта на лампу.

Рядом с LEDRGBFragment лежит ещё один подозрительный класс — LEDWarmWhileFragment . Он посылает похожую последовательность ( [0x56, 0x00, 0x00, 0x00, <value>, 0x0F, 0xAA] ) всё в ту же характеристику:

Опытным путём я установил, что это белый цвет с заданной яркостью. "Warm While", хе-хе. Я бы сказал, что тут налицо очепятка и физическая неточность. Под словом "warm" (цветовая температура?) я понимал немного другое. В принципе, того же эффекта можно достичь записывая "оттенки серого" в RGB.

Так что там с предустановленными режимами? Посмотрим на ресурсы, вытянутые apktool 'ом:

Далее, ищем числовые эквиваленты имён:

Ищем по коду любой id (не забываем, что после декомпиляции все числа представлены в десятичном виде). Находится одно совпадение. Трёхходовочка, немного рефакторинга и, вуаля!, список предустановленных режимов у нас на руках:

Дальше всё просто. Смотрим Call Hierarchy (о, как я полюбил эту фичу за последнее время) этого метода, попадаем в некий LEDFunctionsFragment , а там:

Третьим байтом тут задаётся скорость работы режима. 0x01 — самая быстрая смена цветов, 0x1F — самая медленная. Моя лампочка принимает значения и больше 0x1F и работает ещё медленнее.

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

Часы в "новых" лампах "расположены" в характеристике с типом FE01 . В коде она используется и для чтения, и для записи. Сразу приведу код и пример его использования (в отдельном groovysh ):

Эти три замыкания служат для создания значения, пригодного к записи в часы и для преобразования внутреннего формата в человекочитаемый

На старых лампах часы задаются с помощью всё той же характеристики FFE9 . Там вообще любая запись данных происходит в эту характеристику, а чтение — из FFE4 .

Напоследок

Управлять лампочкой из консоли не очень удобно, так что, возможно, при наличии свободного времени я продолжу баловаться с ней на более высоком уровне. На C++ наверно вряд ли смогу написать что-нибудь запускаемое, но обёртки над libbluetooth есть даже под node.js, так что надежда есть.

И видео, как это работает, чтоб не думали, что это какое-то шарлатанство. Прошу прощения за дыхоту и качество — снимал на девайс из pre-BLE эпохи:

E27 Светодиодная лампа 12W RGB Музыка Воспроизведение затемняемой беспроводной Bluetooth лампы аудио динамик Красочная световая лампа с 24 клавишами пульт дистанционного управления

E27 Светодиодная потолочная лампочка с динамиком Bluetooth, 48 Вт / 28 Вт / 18 Вт затемняемая современная музыкальная лампа ж / пульт дистанционного управления, мобильный телефон APP Control Изменение цвета Домашняя вечеринка

Светодиодный беспроводной Bluetooth лампа свет динамик 12W RGB смарт-музыка play лампа + пульт дистанционного управления 220 В

Светодиодный беспроводной Bluetooth лампа свет динамик 12W RGB смарт-музыка play лампа + пульт дистанционного управления 220 В

V E27 Смарт потолочный светильник RGB Белый Bluetooth Музыка НЛО Светодиодная лампочка 24Keys Пульт дистанционного управления Лампочка для домашнего декора

V E27 Смарт потолочный светильник RGB Белый Bluetooth Музыка НЛО Светодиодная лампочка 24Keys Пульт дистанционного управления Лампочка для домашнего декора

E27 Лампочка Красочная светодиодная лампа Bluetooth 4.0 Спикер Домашняя сцена

E27 Лампочка Красочная светодиодная лампа Bluetooth 4.0 Спикер Домашняя сцена

LED RGB Беспроводной Bluetooth динамик Лампа Свет Музыка Воспроизведение Лампа Удаленная вечеринка

LED RGB Беспроводной Bluetooth динамик Лампа Свет Музыка Воспроизведение Лампа Удаленная вечеринка

OU BANG Смарт Bluetooth лампа UFO E27, многоцветная RGB-лампа + белый высокой мощности 18W / 24W / 48W пульт дистанционного управления MultiColorEd Light Music Player

OU BANG Смарт Bluetooth лампа UFO E27, многоцветная RGB-лампа + белый высокой мощности 18W / 24W / 48W пульт дистанционного управления MultiColorEd Light Music Player

Можно по-разному относиться к идеям умного дома и подключения к интернету и смартфону всего, что только можно воткнуть в розетку. Однако будущее, как говорится, уже наступило, и умные лампы — один из самых ярких (во всех смыслах слова) представителей этого будущего. Сегодня на рынке есть множество производителей умных ламп, однако цены на их продукцию высоки, что толкает многих людей в сторону идеи купить китайский аналог в два-три раза дешевле. Тут, правда, никогда не знаешь, за что платишь. Попробуем внести некоторую ясность в этот вопрос.

Введение

Если производитель опубликовал API, то лампу можно программировать самостоятельно, и здесь открываются огромные возможности. Не говоря уже о том, что само программирование лампы — занятие необычное и фановое.

Итак, в этом обзоре:

    — одна из самых известных ламп китайского производства, цена 26 долларов; — лампа, произведенная достаточно известной китайской компанией MIPOW, цена 29 долларов; — лампа загадочной китайской компании MagicLight — фактически ноунейм, цена 21 доллар; — ноунейм лампа со встроенным динамиком (!), цена 19 долларов.

Все четыре лампы маломощные и в первую очередь рассчитаны на применение в настольных светильниках или для декоративного освещения. Причем если лампы Yeelight и MagicLight еще как-то можно использовать для освещения помещений (500 лм), то MIPOW и BL-08A на эту роль не годятся совсем, так как их световой поток составляет всего 300 лм, а это аналог лампы накаливания мощностью 25 Вт.

Также отметим, что все лампы общаются со смартфоном по протоколу Bluetooth Low Energy (BLE), так что рулить ими с компа с помощью обычного RESTful API не удастся, однако можно протокол поснифать и написать собственную реализацию управляющего приложения. Кроме того, лампы с Bluetooth можно использовать в качестве маячков (Beacon).

Yeelight Blue II

Любой, кто хоть раз распаковывал смартфоны Xiaomi или хотя бы смотрел обзоры этих устройств, сразу поймет, кто на самом деле производит эти лампы. Коробка из жесткого картона без глянцевого покрытия, почти полное отсутствие надписей и темный поролон внутри. Несложно догадаться, что Yeelight — это бренд всем известной фирмы Xiaomi, которую Массачусетский технологический институт признал самой инновационной компанией в мире.

Классическая картонная коробка Xiaomi

Классическая картонная коробка Xiaomi

Реверс малвари

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

Лампа и инструкция

Лампа и инструкция

Характеристики у лампы вполне обыкновенные:

  • энергопотребление: 6 Вт;
  • в режиме простоя: 0,3 Вт;
  • цветовая температура: 1700–6500 К;
  • световой поток: 500 лм;
  • срок службы: 20 000 ч;
  • гарантия: 1 год;
  • управление: Bluetooth LE.

При максимальной яркости лампа сравнима по мощности с сорокаваттной лампой накаливания, а по цветовой температуре — с любыми лампами, начиная от лампы накаливания и заканчивая люминесцентными холодного свечения. То есть испускаемый ею свет может быть как теплым, так и холодным в зависимости от настроек. Однако стоит иметь в виду, что Yeelight, как и любые другие умные лампы, регулирует цветовую температуру, снижая яркость светодиодов холодного белого свечения и повышая яркость цветных светодиодов так, чтобы примешать больше желто-оранжевого оттенка. Внутри у Yeelight установлено три белых светодиодных блока цветовой температуры 6500 К, а также красный, зеленый и синий светодиоды.

Довольно увесистая

Довольно увесистая

Приложение для управления лампой называется Yeelight Blue и доступно на Android и в iOS в официальных магазинах приложений. Оно дает возможность регулировать цветовую температуру и яркость, а также включать динамическую смену цвета и задавать скорость. Еще есть режим «Диско», в котором лампа мигает разными цветами под музыку (она распознается с микрофона или через проигрыватель смартфона). Долго удерживая кнопку выключения, можно установить таймер. Также есть функция одновременного управления всеми имеющимися лампами, так что если ты купил сразу три лампы в люстру, то не будешь мучиться с настройками каждой из них.

Главный экран приложения Предустановки Уведомления в шторке позволяют управлять лампой прямо с экрана блокировки

У Yeelight есть очень важное достоинство по сравнению с остальными лампами из этого обзора — ее API открыт и документирован. Более того, в Сети можно найти исходники работающего приложения для управления лампой, а в маркете доступен неофициальный плагин AutoYeelight для Tasker. Так что запрограммировать поведение лампы ты сможешь, даже не умея писать код (плагин, кстати, определяет расстояние до лампы, так что можно использовать ее в качестве блютусного маячка).

Если Bluetooth неудобен и хочется все же использовать Wi-Fi, есть другой вариант — Yeelight Sunflower. Это комплект из нескольких ламп, управляемых с одного хаба. Хаб подключается по Wi-Fi и может получать команды по локальной сети. Сами лампы в комплекте точно такие же.

Подключаем плагин AutoYeelight к Tasker

Подключаем плагин AutoYeelight к Tasker

В общем, Yeelight Blue II — это качественная лампа с Bluetooth LE по приемлемой цене. Отличный вариант для всех, кто хочет не только управлять освещением со смартфона, но и самостоятельно программировать лампы.

MIPOW BTL200

Китайская компания MIPOW известна в первую очередь как производитель портативных зарядных устройств для мобильников и планшетов. Помимо этого, фирма выпускает наушники и Bluetooth-гарнитуры, а с недавнего времени и умные лампы и светильники. Мы протестировали MIPOW BTL200 (коммерческое название — Playbulb Rainbow), которая при более низкой мощности и больших размерах стоит дороже лампы Yeelight.

Побитая во время транспортировки коробка Трехстраничная инструкция

Внешний вид MIPOW не вызывает нареканий, а вот в остальном недочеты обнаружились быстро. Во-первых, световой поток лампы составляет всего 280 лм, что соответствует лампе накаливания в 25 Вт, то есть лампа рассчитана исключительно на применение в настольных светильниках или в декоративных целях. Во-вторых, версия приложения для Android просто-напросто не работает. Нам так и не удалось выяснить, что именно подвело — версия ОС (тестировалась на Android 5.1.1) или модель смартфона. Приложение либо вообще не видит лампу, либо видит, но не может подключиться. Версия для iOS работает без нареканий.

Заметно легче Yeelight

Заметно легче Yeelight

Функции приложения все те же, что и у Yeelight, плюс несколько дополнительных: возможность регулировки яркости взмахом, возможность не только установить таймер отключения, но и будильник, возможность установить PIN-код на доступ к лампе и набор эффектов. Отдельных настроек для регулировки цветовой температуры нет.

Главный экран приложения Настройки таймера Настройки эффектов

Из официальных характеристик, которые удалось раздобыть:

  • энергопотребление: 5 Вт;
  • световой поток: 280 лм;
  • управление: Bluetooth LE.

Больше ни на коробке, ни на официальном сайте информации не приведено.

Выводы: дороговата для 280 лм, приложение для Android может не заработать. Зато включается быстрее всех остальных ламп в обзоре — почти моментально.

MagicLight Smart LED

Информации об этой компании нам удалось найти ровно ноль, что дает нам полное право называть лампу классическим китайским ноунеймом. Впрочем, в данном случае даже искать информацию было излишним: лампа выглядит дешево, колпак рассеивателя выполнен из пластика и прикреплен к корпусу непрочно. При встряхивании внутренности лампы болтаются, что, однако, не помешало ей выдержать транспортировку «Почтой России».

Классическая дешевая упаковка ноунейма Вместо инструкции — карточка с QR-кодом для установки приложения

На этом можно было бы и закончить, но мы пошли дальше и обнаружили, что как лампа MagicLight неплоха. Во-первых, при указанной мощности светового потока в 500–550 лм (как у Yeelight) она заметно ярче всех остальных ламп в обзоре. Во-вторых, это единственная лампа, которая умеет сохранять состояние (вкл/выкл, цвет, яркость) между отключениями питания.

Легкая и хлипкая

Легкая и хлипкая

В-третьих, приложение для работы с лампочкой хоть и производит впечатление сделанного на скорую руку, но работает без сбоев на всех платформах и обладает самым богатым набором функций среди рассмотренных. Здесь есть множество предустановок для динамической смены цветов и яркости, встроенный музыкальный проигрыватель с набором режимов цветомузыки, таймер для отключения, возможность тонкой настройки собственного алгоритма динамического изменения цветов и яркости, уже знакомый нам режим «Диско» и возможность выбора цвета при помощи камеры.

Главный экран приложения Выбор алгоритма динамической смены цветов Режим «Диско»

Характеристики, которые удалось собрать:

  • энергопотребление: 7,5 Вт;
  • цветовая температура: 2700–3200 К, 6000–6500 К;
  • световой поток: 500–550 лм;
  • срок службы: 20 000 ч;
  • циклов включения/выключения: 50 000;
  • управление: Bluetooth.

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

Выводы: очень низкое качество, зато неплохое приложение и низкая цена.

BL-08A

Еще один ноунейм, но не лишенный инноваций в китайском стиле: эта лампа совмещена с динамиком. Трудно представить, какой сценарий использования был в голове у изобретателей этого гаджета, но применение ему найти можно — например, использовать в качестве не требующего втыкания в розетку проигрывателя для ванной комнаты. Звук на лампу передается по протоколу Bluetooth/A2DP, так что можно включить музыку, положить телефон на диван и идти принимать душ, бодро подпевая лампочке.

Коробка подозрительно похожа на коробку MIPOW

Коробка подозрительно похожа на коробку MIPOW

Во всем остальном лампа стандартная:

Интересно, что это единственный производитель, который указал в характеристиках лампы индекс цветопередачи (насколько естественный цвет освещаемого объекта соответствует видимому). Это один из главных показателей качества света. 70,9 — не лучший из возможных индекс, но он вполне ожидаем. У большинства светодиодных ламп примерно такие же показатели, а совсем дешевые имеют индекс на уровне 65. Для сравнения: индекс цветопередачи лампы накаливания составляет 96, люминесцентной лампы — 80–85.

Динамик посередине, светодиоды по окружности с шагом в полсантиметра

Динамик посередине, светодиоды по окружности с шагом в полсантиметра

Приложение для управления BL-08A довольно простое. Все, что оно умеет, — это менять цвет лампы (вручную или под музыку), включать и выключать свет, проигрывать музыку и устанавливать таймер на отключение. Причем изменение цвета здесь происходит не плавно, как в других лампах, а через выбор заранее заданных значений. Цветовой круг и ползунки яркости не работают ни в Android, ни в версии для iOS.

Главный экран приложения Включатель лампы Настройки таймера

Зато сборка не вызывает никаких нареканий. Лампа выглядит монолитной, внутри ничего не шумит при встряхивании. Она даже выдержала тест старым советским патроном, в который лампу приходится вкручивать, прилагая серьезные усилия.

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

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

Выводы

Умные лампы достойного качества в Китае есть, и, я думаю, если делать обзор всех возможных ноунеймов, то удастся найти пяток неплохих. Протестировав четыре лампы, могу сказать следующее: безусловный победитель во всех категориях — Yeelight, тут тебе и качество, и открытый API. Второе место вполне можно было бы отдать MIPOW, если бы не завышенная цена и малая мощность (приложение, я уверен, они пофиксят). Ноунейм с динамиком, как ни странно, отличается неплохим качеством, чего не скажешь о его приложении.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Читайте также: