Разбираем контроллер умного дома Z-Wave.Me Hub
Что-то давненько я не ковырял разные необычные железки. На днях мне снова пришлось вернуться к теме умных домов, протестировать вот такой набор железа.
1. Контроллер Z-Wave.Me Hub
2. Датчик затопления
3. Датчик открытия двери, движения, температуры
4. Реле с сухим контактом
5. Реле с измерением мощности нагрузки
Что интересно, на контроллере написано, что это российская разработка. А на самом деле в веб-интерфейсе имеется логотип европейской компании POPP, которая выпускает точно такой же девайс. Если это действительно наши для немцев придумали, то мое глубочайшее уважение разработчикам. Но если честно, верится с трудом.
Дизайн аккуратный, со всех сторон мигают и переливаются лампочки. Правда, не совсем ясно, как и куда его крепить. Скорее всего, к стене, но никакого крепежа в комплекте не было, даже отверстий подходящих на корпусе нет. Контроллер нормально запустился, все датчики и реле без проблем подключились. Управлять умным домом можно через локальную сеть, Wi-Fi или сайт find.z-wave.me.
Передо мной стояла задача выяснить, можно ли организовать удаленное управление контроллером через собственный сайт. Собственно, именно эта модель была выбрана, потому что ее использует Ростелеком в своем умном доме, а у него есть собственный личный кабинет.
Первым делом я попробовал попасть в контроллер через сеть. Он отвечал по ssh, но ни один из указанных на корпусе паролей не подходил. Пришлось аккуратно расколупать корпус в поисках консоли. К счастью, разработчики не стали сильно огораживать устройство, даже нормально распаяли на плате UART. На обратной стороне платы я обнаружил флешку MicroSD, на которой хранятся настройки и логи. Этих логов пишется достаточно много, а кроме того, используется журналируемая файловая система ext4. Неизвестно, сколько проживет флешка в таком режиме.
Первым делом я вошел в failsafe режим OpenWrt и поменял пароль root. Но после перезагрузки войти в систему не получилось. Сравнив хеш пароля до и после перезагрузки, я понял, что пароль кто-то меняет. Пришлось скопировать корневую файловую систему на флешку и тщательно изучить ее.
Обнаружился скрипт /etc/init.d/set_default_password, который делал следующее:
ROOT_PASSWORD=`dd if=/dev/mtd3 bs=1 skip=$((0x100)) count=10` && echo -e “$ROOT_PASSWORD\n$ROOT_PASSWORD” | passwd
WIFI_PASSWORD=`dd if=/dev/mtd3 bs=1 skip=$((0x110)) count=10` && sed -i ‘s/\(option key \).*$/\1″‘$WIFI_PASSWORD'”/’ /etc/config/wireless
Пароли хранились в особом месте внутренней памяти и устанавливались при каждой загрузке контроллера. Можно было бы перезаписать их, но я пока не стал это делать и входил в систему, используя прошитый рутовый пароль. Интересно, уникален ли этот пароль для каждого устройства и хранит ли изготовитель базу паролей всех изготовленных контроллеров для нужд техподдержки. При этом он попадает в локальную сеть дома, а там всякое возможно…
Исследуя систему, можно найти много интересного. Не обошлось и без костылей.
sleep 10 # if we don’t wait, it hangs on something.
Весь основной функционал выполняет один монолитный процесс z-way-server, который содержит в себе и работу с периферией, и веб-интерфейс, написанный на богомерзком яваскрипте, и хост для выполнения плагинов, написанных на нем же. Z-Way API открыто и позволяет выполнять все необходимые действия.
А теперь о самом главном. Я таки нашел, как сделано в этой системе удаленное управление. Это скрипт /etc/init.d/zbw_connect. Он устанавливает SSH туннель до сервера find.z-wave.me и пробрасывает на него порты веб-интерфейса (8083) и ssh (22). Скрипт содержит в себе логин и приватный ключ для соединения с сервером, а также передает через переменные окружения другие данные, необходимые для доступа. Отредактировав этот скрипт, я перенаправил туннель на свой сервер и смог управлять контроллером через Z-Way API. Скорее всего, Ростелеком сделал то же самое, особо не изменяя прошивку контроллера.
На очереди создание личного кабинета пользователя и организация передачи запросов из него через API. Фактически, полная реализация серверной части. А это значит, много интересной работы.
Здравствуйте! Есть ли еще информация по этому устройству?
Проект был закрыт, этой железки у меня уже нет. Слитая прошивка валяется где-то, если что-то надо, могу посмотреть, но проверить не могу.
@Zloy Admin
Здравствуйте.
Эх жаль, я уже год наблюдаю за блогом, в надежде на инструкцию по прошивке контроллера. Мне достались по дешевке три набора от ростелеком, но без привзки к другим системам умных домов – они валяются мертвым грузом, и хз что с ними делать…
@Дмитрий
Вопрос еще актуален?
@Дмитрий
Есть ли еще желание снести прошивку от Ростелеком и поставить прошивку которую предлагает разработчик этих устройств?
Появится возможность управлять умным домом локально без подключения к интернет сети, а также по желанию можно будет подключить контроллер к find.z-wave.me и появится возможность управлять удаленно.
@Максим
Я меня есть такое желание. А что – есть такая возможность?
@Игорь
Да есть возможно поставить прошивку от вендора.
Соответственно нужно понимать что в таком случае если вдруг захочется вернуться в Умный дом от Ростелеком, то нужно будет искать уже их прошивку.
Разместил на Яндекс Диске инструкцию по прошивке и две прошивки за 2020 год
https://yadi.sk/d/jOKdXBgt2ImRCw?w=1
И как говориться все на свой страх и риск. Прошивку необходимо осуществлять аккуратно, контроллер не должен в момент прошивки терять подключение к питанию и к uart
Соответственно после прошивки необходимо будет пользоваться уже следующей инструкцией по эксплуатации:
http://rus.z-wave.me/drive/?file=254cfb543fcfdc8f24263ae4a9fb6fab5996
Дополнительно рекомендую, после ознакомления с новым интерфейсом, скачать дополнительный виджет который объединяет элементы много-функциональных устройств/датчиков в один виджет. Название не помню, но в интерфейсе загрузки дополнительных виджетов есть описания этих виджетов.
После прошивки у контроллера будет две панели управления одна (базовая) будет доступна по адресу https://192.168.115.1, а вторая экспертная панель https://192.168.115.1/expert
Желательно будет подключиться к wi-fi, который раздает контроллер, не через телефон. Ну или в браузере телефона выбрать отображение страницы в версии для ПК.
@Максим
Ура! Без шуток, полтора года искал, как перепрошить. И ваш сайт видел. Утром обязательно попробую.
@Максим
Большое Спасибо! Буду пробовать. Результат отпишу.
Спасибо все норм получилось
@Максим
Максим привет, а есть возможность скинуть образ флешки с установленной ОС и прошивкой на данный Хаб?