Инструкция для получения доступа к устройству в целях получения и хранения данных с него удобным образом. Зачем? Чтобы в перспективе настроить свой Умный Дом без ограничений приложений, которые предоставляют производители.
Приветствую! Меня зовут Андрей Степанов, я CTO во fuse8. Для этой статьи мы с фронтенд-разработчиком Дмитрием Симоновым обсудили его опыт настройки техники Xiaomi. Вот, что он рассказал.
Предыстория
Купил очиститель воздуха Xiaomi Mi Air Purifier 3H и занялся настройкой. Оказалось, что у устройств Xiaomi есть привязка к региону продажи или экспорта. Это значит, что нельзя просто так взять и подключить любое устройство к одному приложению miHome. Например у меня получилось так, что робот-пылесос был привязан к Китаю, а очиститель воздуха – к Сингапуру, и запускать их в одном miHome не получается. Причем эта привязка реализована вроде как в самом miHome, но это не точно.
Погуглив, выяснил, что есть 2 популярных решения. Первое – поставить какое-то приложение от отечественных умельцев, которые вырезали это ограничение на подключение к приложению. Это решение я не пробовал, поэтому рекомендовать не буду. Второе решение – сделать клонирование приложения с теми же логином и паролем, но с другим регионом. Им я и воспользовался.
How to setup Mi Home Security Camera 2k Pro on iOS iPhone
Реализуется в 2 клика: вот подробная инструкция для xiaomi.
Каково было мое удивление, когда я узнал, что приложение не отображает динамику. В нем просто дублировалась информация с устройства, например: сейчас 27 градусов и 43% влажности. Еще были доступны кнопки управления устройством: включить, выключить и изменить скорость. А ведь хотелось следить за тем, как меняется влажность в зависимости от температуры, просматривать динамику влажности по дням, ну хоть что-то такое…
Я подумал, что было бы здорово получать информацию с устройства на компьютер сейчас и на raspberry pi в перспективе. На локальной машине уже можно хранить данные, обрабатывать и выводить их по своему желанию. И да, я видел, что есть готовые решения типа home-assistant, но я хочу свой велосипед.
Решение
Мой Mi Air Purifier 3H использует miIO протокол для передачи данных по wi-fi. Чтобы реализовать наблюдение на локальной машине, нужен инструмент, который будет парсить отправляемые устройством пакеты и декодировать их.
Скажу сразу – на питоне сделать это было бы быстрее, так как библиотека python-miio обновляется чаще. Но я просто фронт, а значит все будет javascript
Для node.js тоже есть решение. Это miIO Device Library, но последнее обновление было сделано 6 лет назад. Но это не беда: помимо декларативного управления описанных устройств есть управление напрямую.
Реализация
- Ставим библиотеку. С помощью команды npm install miio .
- Пишем маленький сервер
let http = require(‘http’); http.createServer(function (req, res) < res.end(«The server is running!»); >).listen(8080);
Теперь перейдем к библиотеке. В общих чертах управление будет выглядеть так: вызываем метод device, в качестве параметра передаем объект с полями: address — ip адрес Mi Air Purifier 3H в локальной сети и token — токен авторизации. Здесь можно посмотреть, как получить токен.
Умный дом Xiaomi. Как все работает? Настройка и опыт использования
Метод device возвращает объект устройства (промис, если точнее). У него есть метод call , который принимает уже непосредственно команды.
const miio = require(‘miio’); const token = ‘e3b07da6d4bbf7f7e1322db0c26e1bbe’ let http = require(‘http’); http.createServer(function (req, res) < miio.device(< address: ‘192.168.0.102’, token >) .then(device => < device.call(‘get_properties’ ,[]).then(data=> console.log(data)) device.call(‘get_properties’ ,[]).then(data=> console.log(data)) >) .catch(err => console.log(err)); res.end(«The server is running!»); >).listen(8080);
Конструкция [] требует пояснения. С ее помощью задаем, с какого датчика нам нужно получить показания.
Вот как эта конструкция формируется:
- Ищем спецификацию на ваше устройство по ссылке вот такого формата:
https://miot-spec.org/miot-spec-v2/instance?type= + ваше устройство (поможет Google).
- Спецификация по ссылке отдается в формате json. Далее методом пристального взгляда ищем нужные нам свойства. Мне нужны были температура и влажность.
Эпилог
«Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус… Но зачем?» (с)
После вышеописанных манипуляций удается получить доступ к устройству. Можно хранить и выводить информацию с датчиков, как вашей душе угодно. Можно пилить свой Умный Дом с полной автоматикой, блекджеком и Алисой, и все это без ограничений приложений, которые предоставляют производители.
У меня по плану: жду малинку, запущу там Node, добавлю какую-нибудь базу и буду пилить фронт с графиками и прочей живностью.
Источник: habr.com
Как управлять умными гаджетами Xiaomi при помощи Siri
В последнем обновлении приложения Mi Home появилась поддержка ярлыков Siri. Это значит, что управлять китайскими гаджетами получится при помощи голосового ассистента с iPhone или iPad.
Сейчас разберемся, что и как работает, как настроить и активировать новую фишку.
Что необходимо
Для того, чтобы совместить гаджеты Xiaomi и Siri понадобится:
- iPhone или iPad с iOS 12 на борту.
- Установленное приложение для автоматизации Команды. Настроить можно и без этой программы, но в дальнейшем для устройств в ней появятся дополнительные сценарии и скрипты.
- Установленное приложение Mi Home с учетной записью сервиса или программа Yeelight. Некоторые аппараты подключаются исключительно через последнее приложение.
- Умные гаджеты, которые работают через приложение Mi Home или Yeelight.
На данный момент программа поддерживает большинство устройств собственного производства и многие гаджеты, выпускаемые суб-брендами или компаниями-партнерами. Так, например, в Mi Home работают умные гаджеты Aqara или Philips.
Голосом получится активировать любую функцию умного устройства, которая доступна при создании сценариев автоматизации.
Как настроить команды Siri
В iOS должен быть активирован голосовой ассистент по пути Настройки – Siri. Здесь же для программ Mi Home или Yeelight нужно активировать опцию Siri и предложения.
Другие настройки голосового ассистента не имеют значения, его можно вызывать любым удобным способом или даже вводить команды с клавиатуры.
Для настройки в приложении Mi Home потребуется:
1. Перейти в приложении Профиль – Настройки – Функции лаборатории – iOS Shortcut и активировать единственный переключатель.
2. Создать новую автоматизацию на одноименной вкладке.
3. В качестве триггера выбрать исключительно параметр Включить вручную. Команды, которые активируются по таймеру, местоположению или значению любого датчика нельзя активировать через Siri.
Также не получится добавлять несколько событий для активации. Если нужно совершать одно действие как через Siri, так и при определенных условиях, просто создайте пару одинаковых сценариев с разными триггерами.
4. Настроить автоматизацию, указав одно или несколько совершаемых действий и нажать Сохранить.
5. В списке сохраненных сценариев находим созданный и нажимаем на него.
6. Открываем параметры (три точки в правом верхнем углу) и добавляем голосовую команду в меню Siri Shortcut.
Для настройки в приложении Yeelight потребуется:
1. Добавить устройство в приложение Yeelight.
2. Перейти в настройки устройства.
3. Открыть раздел Add Siri Shortcut и добавить голосовую команду для нужного действия.
Как запускать гаджеты кнопкой
Голосовой ассистент не всегда удобно использовать, хорошо иметь кнопку для активации того или иного гаджета. Виджет приложения Mi Home выглядит так себе, а в Home Kit устройства пока не интегрируются.
Можно добавить пару скриптов для активации в приложении Команды и вывести их в виджет:
1. Создаем сценарий автоматизации в Mi Home.
2. Запускаем приложение Команды и добавляем новый скрипт.
3. В строке поиска пишем «Mi» (без кавычек).
4. Выбираем созданный сценарий, присваиваем ему название и понятную иконку.
5. Выводим виджет приложения Команды.
Теперь активировать команды можно через кнопку прямо с экрана блокировки.
Совет: не добавляйте много сценариев в Mi Home сразу. Приложение Команды видит лишь несколько самых последних. Нужно добавить 2-3 сценария автоматизации в Mi Home, создать на них кнопки, опять добавить 2-3 сценария и опять создать им кнопки.
Как менять или удалять команды
После добавления команд управлять ими можно как в приложениях, так в меню Настройки – Siri и Поиск – Мои быстрые команды.
Как видите, Xiaomi сделала большой шаг к интеграции своих гаджетов в систему управления умным домом HomeKit. Пока устройства могут управляться только при помощи Siri, а для автоматизации придется использовать родное приложение, но это лучше, чем ничего.
Извините, что у нас нет умных гаджетов, можем предложить тариф за 0 рублей. – Yota ?
В следующей статье из данного цикла я расскажу, как добавить некоторые штуки Xiaomi в HomeKit прямо сейчас.
(13 голосов, общий рейтинг: 4.31 из 5)
Хочешь больше? Подпишись на наш Telegram.
Источник: www.iphones.ru