Извлечение данных из аккаунта mi home

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
23 мая 2017, 12:45 • 5 откликов • 57 просмотров
У компании xiaomi помимо всего прочего есть устройства умного дома. В частности, из интересующих нас в этом проекте – хаб и датчик влажности/температуры. Хаб выполняет функции управляющего центра и маршрутизатора для всех устройств, он же отвечает за получение данных с датчиков. Для управления всем этим официально есть только мобильные приложения для Android и iOS. Для работы необходимо зарегистрировать аккаунт, войти с ним в приложение, и добавить в аккаунт из него все устройства.

Есть несколько комплексов хаб/датчики, расположенных в разных контролируемых помещениях. Все комплексы работают под разными аккаунтами. Хочется централизованно получать из всех аккаунтов данные о температуре и влажности, сохранять их, строить графики, получать уведомления при достижении критических значений климата, а также при пропадании связи. А еще с помощью простейшего api иметь возможность получать нужные значения в виде простого текста.

Так вот, задача такова:
- Необходим скрипт, выполняемый на обычном linux сервере с LAMP. Скрипт по крону должен подключаться ко всем зарегистрированных в нем аккаунтам mi home, и получать из них данные климата, записывать их в свою базу.
- У системы может быть несколько пользователей, заходящих в нее по логину/паролю, у каждого пользователя может быть доступ к показаниям одного или нескольких датчиков, находящихся в одном или нескольких помещениях.
- Для каждого датчика нужно иметь возможность посмотреть график за произвольный период, автоматически обновляемый по мере поступления информации.
- Нужна сводная панель, где без перезагрузки страницы по мере получения данных с датчиков должна показываться текущая ситуация. На этой панели соответственно показываются датчики, к которым у конкретного пользователя есть доступ. При выходе показаний за критические значения выделять их.
- api должно работать так: при обращении по адресу хост/адрес/скрипт?key=XYZ&sensor=6&mode=temperatur e (к примеру) отдавать значение в виде текста
- как у веб-интерфейса так и у api нужен простейший автобан, блокирующий попытки перебора
- В административном интерфейсе скрипта нужна возможность добавлять/менять/удалять аккаунты mi home, добавлять/удалять в систему датчики, подключенные к ним, добавлять/удалять/менять пользователей и их права.
- в нем же нужно управлять списком email адресов, на который должны уходить уведомления при выходе показаний влажности/температуры для каждого датчика за критические отметки. Отметки эти должны настраиваться индивидуально для каждого датчика.
- отдельно – список адресов для уведомлений о потере связи с хабом или с датчиком. Настраиваются индивидуально для каждого аккаунта mi home.
- отправка писем по smtp с ssl, настройки которого тоже надо где то хранить и редактировать.


Задача не срочная. При ответе, пожалуйста, пишите ориентировочную стоимость проекта. Для тестирования предоставляю логин/пароль от аккаунта mi home, с несколькими подключенными датчиками.

Этот заказ уже размещался тут, но исполнитель исчез.