Добавляем Roborock S50 в HomeKit (немного о версиях протокола miio и для чего вообще он нужен)

18 ноября 2019, 10:11

Что делать, если устал от приложения Mi Home? Любимый гаджет от Xiaomi не HomeKit ready девайс, да еще и "живет" только на Российском сервере. В семье нет фанатов Android и очень хочется чего-то большего, чем просто иконка от приложения Дом на iOS. 

В данной статье я поделюсь своим опытом добавления устройства Xiaomi Roborock S50 в Умный дом от Apple. Данная задача была решена, однако учитывая некоторые особенности, информации о которых я не нашел во время изучения уже существующих статей, хотел бы поделиться своими наработками с вами. В этом деле я новичок. 

Задача 1: Устанавливаем протокол miIO

О том, что такое протокол miio и для чего он нужен - я не знал. На просторах сети о нем не так много информации, как хотелось бы. Информация конечно есть, но я, по каким-то причинам, не изучил этот вопрос. Вероятно потому, что нигде в инструкциях о miIo особо не упоминают. Поэтому, в момент запуска Homebridge на моей Raspberry, ни одно устройство от Xiaomi заводиться не хотело. И это не удивительно. Если на вашем Homebridge с miio все в порядке, поздравляю. Но не поленитесь ознакомиться с моими наблюдениями ниже.
Итак, что же такое - протокол miIo и как его накатить? Какие есть особенности, на которые нельзя просто закрыть глаза?

miIO - сетевой протокол Xiaomi, по которому взаимодействуют между собой wifi-устройства из экосистемы Xiaomi (Mi Home). Использование этого протокола позволяет управлять теми устройствами, которые не имеют открытого режима разработчика. Например, Xiaomi Mi Robot Vacuum (о нем пойдет речь в данной статье) и Xiaomi Philips LED Ceiling Lamp (которые также есть у меня дома).

Подробно с особенностями miIo можно ознакомиться на GitHub.

Устанавливаем miIo. Установка происходит через терминал, командой:

sudo npm install -g miio@0.15.6

Почему 0.15.6 и вообще, что это такое? Цифры за символом @ обозначают номер версии протокола. Только при использовании miio@0.15.6 наш Roborock S50 будет стабильно себя вести и всегда оставаться на связи с HomeKit.  Очень важно внимательно изучать спецификации плагина, который вы собираетесь установить и обращать внимание на требуемую версию miIo. 

Две полезные команды, связанные с установкой протокола miIo на ваш Homebridge. 

  • Для установки последней стабильной версии miIo, команда: 

sudo npm install -g miio
  • Для установки определенного номера версии miIo, команда:
sudo npm install -g miio@номер_версии

Что делать, если люстры Xiaomi Philips LED Ceiling Lamp требуют miio@0.14.1, а пылесос Roborock S50 не будет стабильно работать в случае отсутствия рекомендованной версии miIo@0.15.6? Как говорится, необходим тест-драйв. Немногим ранее, я установил miIo@0.14.0 по рекомендации одного из Гуру Sprut.ai и, к сожалению, я понятия не имел о том, что бывают разные версии, которые могут влиять на стабильность работы устройств. И вот какие выводы я могу сообщить после 2-х недель использования двух вышеуказанных гаджетов на miIo@0.15.6:

  • Xiaomi Philips LED Ceiling Lamp не потеряли своего функционала, следовательно, повышение версии miIo не навредило плагину и устройству.
  • Roborock S50 перестал терять связь и отваливаться при каждом удобном случае (об этом я расскажу в блоке установки плагина).
  • Отображение состояния пылесоса теперь в режиме реального времени. Все задержки ушли вместе с обновлением версии miIo. 

Задача 2: Поиск IP пылесоса и Token

О том, как получить Token и IP устройств Xiaomi, подробно описано в статье на сайте Sprut.ai. Удобство модифицированной версии приложения Mi Home для Android устройств заключается в том, что через настройки подключенного ранее к Mi Home устройства, можно одновременно получить желаемую информацию, но с одной важной оговоркой. У пылесоса Token в настройках сети не отображается. Там просто нет этого пункта. Но унывать не стоит, необходимо проделать следующую процедуру (на базе установленного модифицированного Mi Home):

  • Профиль - Доступ - Доступ к устройству - Общие устройства (вот и наш Token).

1600x_image.png?1574026164
1600x_image.png?1574026165
1600x_image.png?1574026165

  • IP адрес можно получить просто открыв Общие настройки - Данные сети в устройстве Roborock S50 (с любого устройства iOS или Android):

1600x_image.png?1574026165
1600x_image.png?1574026166
1600x_image.png?1574026166

Задача 3: Установка плагина

Установка плагина для управления Roborock S50 через Homebridge не составит никакого труда. Варианта установки плагина у нас два:  

Вариант 1: Если на вашем Homebridge установлен Web интерфейс, переходим в раздел - Плагины и в поиске вводим: Roborock Vacuum. Нам необходим плагин GitHub (автор nicoh88). После чего, устанавливаем плагин. Homebridge после установки перезагружать нельзя. Нам необходимо пройти в Настройки плагина и указать: 
  • Name (имя устройства - важно указать так, как указано в примере) - Xiaomi Roborock S50 Vaccum 2nd Generation.
  • IP адрес в формате: 192.168.0.0 (нули заменить на адрес вашего устройства).
  • Token нашего пылесоса в таком формате: 339f76447122387757596а418734645 (пример).
О том, где взять необходимые данные я рассказывал выше. 
1600x_image.png?1574022083
1600x_image.png?1574022083

Вариант 2: Если на вашем Homebridge не установлен Web интерфейс, запускаем Терминал и вводим следующие команды:  

sudo apt install git
sudo npm install -g homebridge-xiaomi-roborock-vacuum@latest --unsafe-perm

Homebridge после установки перезагружать нельзя. Нам необходимо внести изменения в файл конфигурации - config.json. Надеюсь, к моменту установки плагина у вас установлено подключение к Raspberry по SSH. Если нет, бегом портал, изучать статью Подключение по SSH к Raspberry. Таким образом, установив соединение по SSH, мы открываем файл config.json (/home/pi/.homebridge/config.json) в редакторе и вносим изменения в код конфигурации. 

Важно! Перед тем как изменять файл config.json, рекомендую сделать его копию на рабочий стол вашего ПК (в случае ошибки, сломанный конфиг может быть заменен на рабочий и Homebridge оживет).

Итак, мы добавляем информацию в раздел - "accessories". Должно получиться вот так: 

"accessories": [
 {
  "accessory": "XiaomiRoborockVacuum",
  "name": "Xiaomi Roborock S50 Vaccum 2nd Generation",
  "ip": "192.168.1.151",
  "token": "1234567890abcdef1234567890abcdef",
  "pause": false,
  "dock": true
 }
],

Вот так будет выглядеть часть файла конфигурации (кусок кода) с учетом необходимости добавления нового аксессуара к уже существующему: 

{
    "bridge": {
        "name": "HomeBridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "032-45-154"
    },
    "accessories": [
        {
            "accessory": "RaspberryPiTemperature",
            "name": "RaspberryPi CPU Temperature"
        },
        {
            "name": "Xiaomi Roborock S50 Vaccum 2nd Generation",
            "ip": "192.168.1.151",
            "token": "1234567890abcdef1234567890abcdef",
            "pause": true,
            "dock": true,
            "accessory": "XiaomiRoborockVacuum"
        }
    ],
    "platforms": [
        {
            "platform": "config",
            "name": "Config",
            "port": 8080,
            "sudo": true,
            "temp": "/sys/class/thermal/thermal_zone0/temp",
            "restart": "sudo -n systemctl restart homebridge",
            "log": {
                "method": "systemd",
                "service": "homebridge"
            }
        },

Далее файл config.json необходимо сохранить. После сохранения перезагружаем Homebridge командой: 

sudo -n systemctl restart homebridge

Результат наших стараний

Подведем итог. Для корректного подключения Roborock S50 к Apple HomeKit нам потребовалось:

  • Установить протокол управления устройствами Xiaomi - miIo@0.15.6.
  • Получить IP адрес и Token пылесоса.
  • Установить плагин в Homebridge.
  • Обновить файл конфигурации config.json (указав Имя, IP и Token).
  • Перезагрузить Homebridge.
После чего, в приложении Дом от Apple появится еще одно устройство, состоящее из 3 аксессуаров:

1600x_image.png?1574026166
1600x_image.png?1574026166
1600x_image.png?1574026167
1600x_image.png?1574026168
1600x_image.png?1574026168
1600x_image.png?1574026168

Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 7 месяцев назад

    Хорошая статья! Кстати только в этом устройстве объединение девайсов ios 13 показалось полезным 

    • Дмитрий Уваров (dmitryivtec)
      Дмитрий Уваров (dmitryivtec) 7 месяцев назад

      Спасибо! Да, объединение действительно оказалось удобным. И снижает риск случайного запуска устройства)

  2. Вячеслав Фетисов (Ziracul)
    Вячеслав Фетисов (Ziracul) отредактировано 7 месяцев назад

    Крутая статья, спасибо за интересный материл

  3. Евгений Олейник (permadm)
    Евгений Олейник (permadm) 7 месяцев назад
    Отлично! Только надо поправить milo на miio. 

К списку статей
Россия, рп. Дрожжино, с/п. Булатниковское

Устройства в материале

Xiaomi Philips LED Ceiling Lamp

Производитель: Xiaomi
Заказать на:

Roborock S50

Производитель: Xiaomi
Заказать на:

Raspberry Pi 4

Производитель: Raspberry Pi
Заказать на:

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие статьи

09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
30 августа 2019, 07:28
Несколько нетривиальных способов использования датчика открытия окон/дверей от Xiaomi/Aqara.
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.