Сказ про то, как я Nanoleaf к умному дому подключал

в 12:02, , рубрики: Aurora, diy или сделай сам, diy-проекты, nanoleaf, Nanoleaf Aurora, гаджеты, подключение
Сказ про то, как я Nanoleaf к умному дому подключал - 1

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

Начало истории

Источник изображения

Итак, первым в нашем в доме поселился Xiaomi Bedside Lamp — жене подарили умный светильник на день рождения. Какое-то время он работал без подключения к сети, просто как ночник, цвет которого легко регулировался с помощью сенсорной панели на верхней части.

Все поменялось, когда я приобрел шлюз одноименной фирмы и несколько датчиков на движение и открытие. Я легко добавил их в домашнюю сеть, но как только попытался сделать то же самое с ночником, меня ждало фиаско. Этот умный девайс ни в какую не хотел добавляться. После сброса на заводские настройки я видел его в Mi Home, но на этапе подключения к Wi-Fi процесс останавливался и добавить его не получалось.

Я потратил несколько часов на форумах, пытаясь понять, почему система зависает, но так и не смог найти причину. Ночник продолжал работать офлайн, и всех это устраивало. Очередным поводом попробовать победить проблему стала покупка датчика температуры и влажности Xiaomi Mijia Bluetooth Temperature Humidity Sensor:

Источник изображения

Он связывается с умным домом как Bluetooth Low Energy Device, а фишка ночника в том, что он еще умеет работать BLE-шлюзом. Последний берет на себя функции посредника между множеством Bluetooth-датчиков и контроллером умного дома. Чтобы получать данные без использования прямого соединения, нужно обязательно выполнить сопряжение ночника с Mi Home.

Так это выглядит в идеальном мире

Так это выглядит в идеальном мире

Так что я в очередной раз попытался его настроить, но используя другой беспроводной маршрутизатор. В спецификации устройства сказано, что оно поддерживает только Wi-Fi сети 2.4GHz. Роутер провайдера создавал сразу две сети обоих стандартов: 2.4GHz и 5GHz. Взятый у друга был попроще, поддерживая протоколы 802.11 b/g/n.

С ним подключиться тоже не удалось, несмотря на множество попыток смены настроек. Пробовал переключать режимы вручную, менял каналы и страны — все впустую. Mi Home почти всегда видел сеть, пытался с ней соединиться, но каждый раз попытка заканчивалась сбоем. Смена версии Mi Home не дала ровным счетом ничего, и я в очередной раз отложил решение в долгий ящик.

Nanoleaf Shapes Hexagon

Сказ про то, как я Nanoleaf к умному дому подключал - 5

В этот Новый год друзья положили нам под елочку Nanoleaf — да, такой гаджет оценит любой гик. Модульный светильник собирается из независимых друг от друга панелей. В нашем комплекте их было девять штук, их можно закрепить на любой стене особым типом двусторонней клейкой ленты. От обычной она отличается специальным «язычком» — если потянуть за него, крепежный элемент без проблем отделяется от поверхности. Особенно ценно, если живете в съемной квартире и не хотите повредить стены.

Между собой панели соединяются при помощи особых перемычек. Блок питания достаточно мощный, чтобы вытянуть 21 элемент. «Мозг» — специальный контроллер, который можно подсоединить к любой из панелей:

Контроллер Nanoleaf Shapes, источник

Контроллер Nanoleaf Shapes, источник

Этот небольшой девайс самостоятельно определяет топологию всех подключенных панелей и позволяет управлять ими как единым целым. У контроллера беспроводные интерфейсы вроде Wi-Fi и NFC. Последний выполняет сопряжение без ввода пароля, то есть ты просто подносишь смартфон.

Сначала он открывает собственную точку доступа. Потом приложение спрашивает, с какой из известных Wi-Fi-сетей нужно соединиться, и отправляет SSID и пароль этой сети. Nanoleaf Shapes должен самостоятельно выполнить подключение к Wi-Fi-сети дома и отобразиться в приложении. Именно на этом этапе я снова встретился с точно такой же проблемой, которую описал выше — с Xiaomi Bedside Lamp.

Сопряжение прерывалось на моменте соединения с сетью Wi-Fi, а официальная документация предлагала полный сброс устройства. Изначально я пробовал использовать iPhone с актуальной, на момент написания этого текста, версией iOS 18. В качестве альтернативы проверил на Android-телефонах, таких как Honor 50 и Huawei P Smart Z. Оба после сброса видели контроллер, пробовали соединить его с беспроводной сетью, и на этом процесс останавливался. В бесплодных попытках я проверил все три способа сопряжения: с помощью NFC, отсканировав QR-код на обороте контроллера и даже через ручной ввод пин-кода.

На Reddit я увидел сообщение, что у одного из пользователей была похожая ситуация, которая якобы решилась перепрошивкой. Получается замкнутый круг: чтобы решить проблему с Wi-Fi, нужно перепрошить контроллер, вот только сделать это можно только «по воздуху», то есть приконнектившись к Wi-Fi.

Разгадка

Решить проблему помогло вот что. На iPhone я поднял точку доступа, а на Honor 50 сделал ее основным способом подключения. После этого выполнил сброс Nanoleaf до заводских настроек и запустил сопряжение. Это была небольшая, но значимая победа. Через мобильное приложение я обновил прошивку контроллера и надеялся, что это поможет подключиться к домашней сети.

Впрочем, надежда разбилась о суровую реальность: после того как я попытался повторить сопряжение с Wi-Fi-сетью, контроллер вновь отказался работать — Accessory is not reachable. Тем не менее стало ясно: если я обнаружу разницу между хотспотом на iPhone и домашней сетью, проблема будет решена.

Мы привыкли думать, что все производители стремятся обеспечить обратную совместимость, но это не так. В беспроводных сетях вендоры по-прежнему сохраняют возможность установить шифрование WEP, которое уже больше 20 лет считается небезопасным. Но вот производители современных устройств не позволяют соединяться с такими сетями.

Если вы на iPhone попробуете подключиться к Wi-Fi-сети, зашифрованной WPA TKIP или WPA2 TKIP, то iOS пометит соединение как плохо защищенное. В качестве приемлемого уровня безопасности предлагается WPA2 AES или WPA3. Ну а некоторые производители устройств уже перестали использовать WPA TKIP, даже если поддержка формально заявлена.

Моя домашняя беспроводная сеть сейчас построена на роутерах Mikrotik с помощью технологии CAPsMAN. Все они для максимальной совместимости поддерживают WPA и WPA2, как TKIP, так и AES. Часть клиентов у меня очень старая, и WPA TKIP — их предел. Когда любое устройство пытается подключиться к сети, роутер по умолчанию предлагает WPA TKIP. Это источник проблемы с Wi-Fi-соединением для многих smart-гаджетов.

Если вы уберете поддержку WPA TKIP и WPA AES, оставив WPA2 TKIP, то подключение пройдет без каких-либо сложностей. Это сработало не только для Nanoleaf, но и с проблемным ночником Xiaomi. При этом нет разницы, какая версия протокола 802.11 b/g/n используется. Производители этих устройств, несмотря на заявленную поддержку WPA TKIP и WPA2 TKIP, нормально работают только с последним.

Это объяснило все мои предыдущие попытки. Роутер провайдера по умолчанию использовал WPA TKIP. Точка доступа iPhone в режиме совместимости предлагает WPA2 TKIP в качестве минимально допустимого протокола, и это дало наконец Nanoleaf успешно подключиться.

В домашней сети мне по-прежнему нужно использовать устройства, которые не поддерживают WPA2, так что я решил создать еще одну точку доступа. У меня в ящике давно лежал миниатюрный роутер Mikrotik mAP lite. Для него я сделал отдельный профиль CAPsMAN, указав только WPA2 TKIP в качестве единственного поддерживаемого способа.

Mikrotik RBmAPL-2nD, источник

Mikrotik RBmAPL-2nD, источник

На это, казалось бы, элементарное решение у меня ушло огромное количество времени и попыток. На профильных форумах я несколько раз видел, что пользователи рекомендуют предпочитать WPA2 TKIP другим стандартам, но не придал этому значения. Я был убежден, что все современные устройства поддерживают WPA-протокол. Оказалось, это не всегда верно.

А вы когда-нибудь сталкивались с такой проблемой? Было бы интересно послушать!

Автор: Rebrov_S

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js