Как подключить технику Xiaomi к локальному серверу на Node.js: первый шаг к настройке своего Умного дома

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Инструкция для получения доступа к устройству в целях получения и хранения данных с него удобным образом. Зачем? Чтобы в перспективе настроить свой Умный Дом без ограничений приложений, которые предоставляют производители. 

Приветствую! Меня зовут Андрей Степанов, я CTO во fuse8. Для этой статьи мы с фронтенд-разработчиком Дмитрием Симоновым обсудили его опыт настройки техники Xiaomi. Вот, что он рассказал.

Предыстория

Купил очиститель воздуха Xiaomi Mi Air Purifier 3H и занялся настройкой. Оказалось, что у устройств Xiaomi  есть привязка к региону продажи или экспорта. Это значит, что  нельзя просто так взять и подключить любое устройство к одному приложению miHome. Например у меня получилось так, что робот-пылесос был привязан к Китаю, а очиститель воздуха – к Сингапуру, и запускать их в одном miHome не получается. Причем эта привязка реализована вроде как в самом miHome, но это не точно.

Погуглив, выяснил, что есть 2 популярных решения. Первое – поставить какое-то приложение от отечественных умельцев, которые вырезали это ограничение на подключение к приложению. Это решение я не пробовал, поэтому рекомендовать не буду. Второе решение – сделать клонирование приложения с теми же логином и паролем, но с другим регионом. Им я и воспользовался. Реализуется в 2 клика: вот подробная инструкция для  xiaomi. 

Каково было мое удивление, когда я узнал, что приложение не отображает динамику. В нем просто дублировалась информация с устройства, например: сейчас 27 градусов и 43% влажности. Еще были доступны кнопки управления устройством: включить, выключить и изменить скорость. А ведь хотелось следить за тем, как меняется влажность в зависимости от температуры, просматривать динамику влажности по дням, ну хоть что-то такое…

Я подумал, что было бы здорово получать информацию с устройства на компьютер сейчас и на raspberry pi в перспективе. На локальной машине уже можно хранить данные, обрабатывать и выводить их по своему желанию. И да, я видел, что есть готовые решения типа home-assistant, но я хочу свой велосипед.

Решение

Мой  Mi Air Purifier 3H использует miIO протокол для передачи данных по wi-fi. Чтобы реализовать наблюдение на локальной машине, нужен инструмент, который будет парсить отправляемые устройством пакеты и декодировать их.
Скажу сразу – на питоне сделать это было бы быстрее, так как библиотека python-miio обновляется чаще. Но я просто фронт, а значит все будет javascript

Источник: https://habr.com/ru/articles/732276/


Интересные статьи

Интересные статьи

Лето 2021 года выдалось жарким не только из-за погоды, но и новостей из мира Ransomware. В конце мая группа DoppelPaymer произвела, пользуясь маркетинговым термином, "ребрендинг", переименовав свои но...
Привет! Меня зовут Павел Анохин, я сооснователь и один из кураторов музея Яндекса. Хочу поделиться историей, связанной с нашим экспонатом — редкой платой с Лисп-процессором Symbolics. История эта уход...
Однажды наступает момент, когда кодер решает, что пора бы уже завести себе партнера по одиночеству, то есть домашнего любимца. Я представляю вам мой сугубо личный обзор идеального...
Иногда возникает желание работать с устройством, подключенным по USB, не держа его на столе рядом с ноутбуком. У меня таким устройством является китайский гравёр с лазером на 500 мВт,...
Экспериментальный протокол и реализация алгоритма сортировки на программируемом ДНК-компьютере Учёные давно ведут эксперименты с хранением информации в ДНК и с обработкой этой информации. Н...