Как добавить пылесос xiaomi в комплект Apple HomeKit

Обновлено: 24.11.2024

Я отлично разбираюсь в домашней автоматизации и создал довольно приличную систему для Apple Home, но с одним недостатком — пылесосом Xiaomi Roborock S5.

Существует множество хороших ресурсов (ссылки ниже) о том, как это сделать, но я хотел поделиться своими шагами, так как это потребовало небольшого пробного периода.

Шаги

  1. (Настройка Homebridge и настройка с помощью HomeKit)
  2. Получить токен устройства Xiaomi
      (или любой эмулятор Android) (в частности, эта версия)
    • Войти, извлечь журнал и получить токен (хранится в Bitwarden)
  3. Настроить устройство miio с токеном + IP
    • Проверьте, все ли работает
  4. Настройка аксессуара Homebridge (робота-пылесоса)
    • Плагин Homebridge: homebridge-xiaomi-roborock-vacuum
    • Добавить аксессуар: пылесос Xiaomi Roborock.
    • Тестирование в Apple Home
  5. Настроить комнаты
    • Добавить таймер (для всех настроенных комнат) 12:00/00:00
    • Добавить настройки комнаты в порядке, выбранном в таймере.
    • Перезапустите Homebridge
    • Проверьте каждую комнату (порядок может отличаться)

Домашний мост

Если вы читаете это руководство, скорее всего, вы уже знаете о Homebridge. Для тех, кто не Homebridge позволяет добавлять устройства, не поддерживающие HomeKit, в ваш Apple Home.

Я не буду вдаваться в подробности о Homebridge, но просто для справки: у меня есть Homebridge, работающий на Raspberry Pi, и я добавил его в свой дом Apple.

Токен устройства Xiaomi

Первое препятствие, которое нужно преодолеть с помощью этой настройки, — это получить токен устройства Xiaomi, который используется для связи с пылесосом. Я предполагаю, что токен устройства является дополнительным уровнем безопасности, чтобы гарантировать, что только клиенты Xiaomi могут общаться с устройством, и без него настройка Homebridge была бы невозможна.

Итак, как мы можем получить доступ к этому безопасному токену?

Андроид

Самый простой способ сделать это — получить устройство Android и запустить старую версию приложения Xiaomi MiHome (4.4.49, если быть точным). Эта версия приложения MiHome удобно распечатывает сведения об устройстве в файле журнала, который можно извлечь и прочитать.

У нас в семье Apple нет устройств Android, поэтому на помощь приходит BlueStacks. BlueStacks — это мощный эмулятор, предназначенный для геймеров Android, которые хотят играть на macOS или Windows 10. Его можно загрузить бесплатно.

После загрузки установите APK-файл MiHome и войдите в учетную запись Mi, в которой зарегистрирован пылесос. Что должно произойти в фоновом режиме, так это то, что будет создан файл, который вы экспортируете на свой компьютер:

Заглянув внутрь этого файла, вы найдете кучу сообщений журнала и несколько строк JSON, которые будут содержать строку «токен». убедитесь, что устройство является правильным, так как здесь будет отображаться любое устройство в учетной записи. Также рекомендуется не сбрасывать deviceId и ip на этом этапе, так как они могут понадобиться позже.

После того, как ваши токены хранятся где-то для сохранности, заметки подходят для этого, но я использовал защищенную заметку Bitwarden, потому что перемещался между компьютерами.

Настроить miio

Первое, что нужно сделать с токеном, — проверить, работает ли он.

Чтобы проверить это, используйте miio , который предоставляет множество полезных команд, которые помогают общаться с различными устройствами MiHome. Установите это на компьютер, где установлен Homebridge.

После установки команду miio discovery можно использовать для быстрого сканирования сети на наличие устройств (если вы запустите ее сейчас, вы можете увидеть свой пылесос, однако, скорее всего, токен вернется как . ).

Чтобы действительно общаться с целевым устройством, необходимо обновить локальный кеш токенов на тот, который получен из журнала. Для этого просто запустите команду miio tokens update с IP-адресом и токеном для устройства

Это позволит вам затем запросить устройство с помощью miio inspect, который должен вернуть различную статистику устройства, состояние и т. д.

На этом этапе вы должны быть абсолютно уверены, что токен действителен и устройство отвечает.

Настроить Homebridge

Настройка различных устройств/аксессуаров в Homebridge осуществляется с помощью подключаемых модулей. Плагин для настройки пылесоса — это homebridge-xiaomi-roborock-vacuum, который вы можете найти на сайте Homebridge или воспользоваться ссылкой.

Каждый плагин указывает свою собственную конфигурацию аксессуара, а для homebridge-xiaomi-roborock-vacuum аксессуар XiaomiRoborockVacuum имеет множество параметров. По умолчанию используются такие вещи, как токен и IP

Этой настройки достаточно, чтобы начать играть с Apple Home, поэтому, как только вы добавите свой IP-адрес и токен, запустите Homebridge и попробуйте ее. 🧹

Пылесос должен отображаться в Apple Home как вентилятор (что имеет смысл, по крайней мере, до тех пор, пока HomeKit не поддерживает пылесосы). Мощность вакуума можно контролировать с помощью % вентилятора, поэтому 100% — это Turbo на моем Roborock S5.

Настроить комнаты

Оглядываясь назад на конфигурацию, можно увидеть несколько необязательных параметров, которые могут быть полезны (доступен полный список)

< td>"cleaning"
Имя Значение по умолчанию Примечания
cleanword Префикс имени переключателей в комнате
комната false Массив ` id`, `name` для конфигураций комнат
зоны false Массив конфигураций `name`, `zone`< /td>

Когда указывается массив комнаты (или зоны), в Apple Home создается дополнительный переключатель с именем записи в массиве. Чистое слово предшествует имени комнаты, поэтому, если для комнаты настроено имя «Кухня», переключатель будет помечен как «уборка кухни».

В моей квартире 5 комнат, поэтому я настроил конфигурацию комнаты следующим образом

Насколько я могу судить, идентификатор является произвольным (конфигурация примера начинается с 16), однако, когда я попытался начать с 1, это не сработало.

Следующий шаг немного странный, но в приложении MiHome должен быть настроен таймер на 00:00 / 00:00 (первый таймер в списке). Я подозреваю, что таймер настраивает какой-то внутренний идентификатор, на который впоследствии можно положиться, чтобы обеспечить надежную работу сопоставления комнат.

При настройке таймера важно добавить уборку комнаты с помощью Выберите комнату для разделения и добавить комнаты в порядке, указанном в конфигурации. Это должно позволить сопоставить комнату Homebridge с комнатой MiHome.

Еще раз перезапустите Homebridge и откройте приложение Apple Home. Проверьте правильность сопоставления каждой комнаты. Не паникуйте, если не просмотрите каждую комнату и не запишите, где она настроена, вы обнаружите, что каждая комната сопоставлена, и только метки нуждаются в обновлении.

Заключительные советы

  • Установите чистое слово, например "Очистить", чтобы вам не приходилось говорить прерывистыми фразами.
  • В Apple Home переименуйте устройство в «Робот-пылесос» или что-то в этом роде и разделите каждый переключатель на отдельную плитку, это помогает с командами включения / выключения (в противном случае есть несколько переключателей, и Siri запутается).
  • Если вы посмотрите на основной вентилятор, вы увидите уровень заряда батареи и процент срока службы фильтра.

Привет, Siri, пропылесось в гостиной

На этом все! Поздравляю, это того стоит, так как теперь вы сможете вызывать уборку комнаты с помощью голоса.

Roborock, один из основных производителей роботов-пылесосов экосистемы Xiaomi Smart Home, сегодня обновил свое собственное приложение, включив в него ярлыки Siri, немного расширив набор параметров ярлыков, доступных через собственное приложение Mi Home от Xiaomi.

Приложение Roborock во многом работает так же, как и в приложении Mi Home, с картой этажа, на котором находится ваш пылесос, а также с возможностью создания комнат и зон в зависимости от модель.

Как вы можете видеть на скриншотах выше, хотя список опций не особенно исчерпывающий, у вас есть возможность убирать отдельные комнаты, чего не хватает в приложении Mi Home. У вас также есть опции для установки мощности всасывания и опция «Найти меня», если пылесос где-то застрял, и у вас возникли проблемы с его поиском. Конечно, вы также получаете базовые функции, такие как «Пуск», «Пауза» или «Возобновить уборку», а также возвращение пылесоса в док-станцию.

Поскольку роботы-пылесосы не являются категорией, поддерживаемой в HomeKit, Siri Shortcuts максимально приближены к функциям HomeKit, если только вы не используете HomeBridge/HOOBS для добавления пылесоса в HomeKit, который затем представляет пылесос как вентилятор. что может быть не так идеально. Вы также, как правило, не получаете возможность убирать отдельные комнаты таким образом, по крайней мере, без некоторого программирования, поэтому ярлыки весьма полезны, пока Apple не решит добавить такую ​​категорию.

В настоящее время Roborock предлагает множество различных моделей, в зависимости от того, где вы живете, включая T7 Pro, E4, S5, S6 и еще несколько, каждая из которых может работать с приложениями Roborock или Mi Home.< /p>

Включение совместимости с HomeKit на Xiaomi Roborock S50 с root-правами

г-н - пятница, 3 мая 2019 г., 23:42

Недавно я купил пылесос Xiaomi Roborock S50.На первый взгляд, это отличный продукт — довольно доступный по цене, красивый бытовой прибор и, самое главное, способный выполнять рутинную деятельность, которую давно пора было автоматизировать.

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

Приложение также позволяет вам управлять пылесосом, когда вы находитесь вдали от домашней сети Wi-Fi. Это достигается с помощью облака, то есть компьютеров Xiaomi, расположенных в Китае.

Последняя вещь меня больше всего напугала в этом продукте, и перед покупкой я убедился, что с этим можно что-то сделать. Оказывается, есть!

Укоренение пылесоса — это так в 2019 году

Программное обеспечение называется Valetudo. По сути, это веб-сервер, работающий локально в вакууме и имитирующий серверные службы Xiaomi. Однако это не главная часть головоломки, поскольку размещение этого веб-сервера на устройстве стало возможным благодаря потрясающей работе группы людей, стоящих за Dustcloud, которая предлагает набор методов открытия устройства для взлома.

Установка Valetudo – довольно простая процедура, и, в конце концов, вместо программного обеспечения, созданного в стране с сомнительным уважением к частной жизни людей, вы получаете удобный для мобильных устройств веб-клиент, который также обслуживается этим устройством. Есть возможность запускать часть стека на домашнем сервере, но это слишком сложно для обслуживания.

Домашний комплект

К авторам вышеупомянутых плагинов Homebridge было отправлено несколько запросов на добавление совместимости с Valetudo, но рутирование вакуума кажется слишком новым, поэтому в итоге не было плагинов для устройств с поддержкой Valetudo. Теперь, когда я недавно стал разработчиком Node.JS (а?), создающим бэкенды на Javascript (отойди от газона), я сделал один.

Сделай это

Плагин называется homebridge-valetudo-xiaomi-vacuum, он доступен через npm, и его основы уже довольно прочны. Он предоставляет несколько режимов очистки в виде кнопок, показывает состояние батареи и некоторые другие удобства. И я чертовски весело провел время, делая это.

Плагин Homebridge для пылесосов Xiaomi / Roborock

Этот плагин для домашнего моста позволяет вам управлять роботами-пылесосами Xiaomi в приложении Apple Home (HomeKit).

В настоящее время он представлен в приложении Home в виде веера, потому что Apple официально не поддерживает пылесосы в Homekit (мы не можем дождаться этого момента)!

Для нижележащего коммуникационного уровня используется порт библиотеки miio, которая больше не поддерживается. Вы найдете код в каталоге ./miio.

Возможности

  • Вентилятор как выключатель. При выключении сразу обратно на зарядную станцию.
    • Уровни скорости вентилятора регулируются с помощью 3D Touch/Force Touch.
    • Уровни водного режима, только если он включен в конфигурации и поддерживается устройством.

    Инструкции

    1. Установите плагин от имени пользователя root ( sudo su - ) с помощью npm install -g homebridge-xiaomi-roborock-vacuum@latest --unsafe-perm .
    2. Настройте конфигурацию домашнего моста config.json .
    3. Перезапустите домашний мост, ggf. перезапуск службы хоумбридж .
    • Пример config.json с одним пылесосом и уборкой комнаты:
    • Пример config.json с двумя очистками:

    Необязательные параметры

    < tr> < td>false < tr>
    Имя параметра Значение по умолчанию Примечания
    молчание false если установлено значение true, он будет регистрировать только предупреждения и сообщения об ошибках (скрывая информацию и сообщения отладки даже при запуске homebridge -D
    pause false при значении true HomeKit показывает дополнительный переключатель для «паузы» — переключатель включен, когда возможна пауза
    pauseWord pause используется для именования комментария Pause
    findMe если установлено значение true, HomeKit показывает дополнительный переключатель для «найди меня» — если он включен, пылесос скажет «Привет, я здесь»
    findMeWord where are you используется для автоматического именования команды «найди меня». Например: Привет, Siri, NameOfYourVacuum, где ты
    dock false при значении true HomeKit показывает датчик присутствия, если робот находится в зарядной док-станции
    водяная коробка false если установлено значение true, HomeKit показывает дополнительный ползунок для управления количеством воды, выпускаемой роботом (только в некоторых моделях, таких как S5-Max). В настоящее время находится в состоянии бета-тестирования
    dustCollection false если установлено значение true, HomeKit показывает дополнительный переключатель для управления сбором пыли с автоматически опорожняемой док-станцией (только некоторые модели, такие как S7+ или S7 с дополнительной док-станцией). В настоящее время находится в состоянии бета-тестирования
    cleanword очистка используется для автоматического именования селекторов комнат
    rooms false Массив идентификатора/имени для одной комнаты. Если установлено, у вас есть другой переключатель для уборки только этой комнаты
    зоны false Массив имени/координат зоны для одной группа зоны. Группа зон может содержать несколько квадратов зон, каждый из которых имеет собственное значение количества уборок. Координаты расположены в виде нижнего левого-x, нижнего левого-y, верхнего правого-x, верхнего-правого-y, количества чисток. Для каждой группы зон будет создана отдельная плитка в Доме. Выяснение координат потребует проб и ошибок. Каждая зона должна быть заключена в скобки: [], при этом все значение также заключено в скобки
    autoroom false set значение true для создания комнат из робота (только S6) или установка массива строк с именами комнат (см. полуавтоматический режим ниже)
    roomTimeout 0 при значении выше «0» — автоматически инициирует уборку нескольких комнат по истечении заданного времени в секундах

    Уборка помещения

    Этот подключаемый модуль поддерживает уборку помещений (только модели, поддерживающие уборку помещений через приложение Xiaomi Mi Home). Продолжайте читать, чтобы понять, как это работает и как его настроить.

    Как это работает

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

    Если вы хотите, чтобы ваш робот начал уборку после того, как вы включите или выключите переключатели комнат, используйте параметр конфигурации roomTimeout, чтобы установить количество секунд, в течение которых робот должен ждать перед запуском (это позволит вам найти другие комнаты, которые вы хотите для включения/выключения).

    Как это настроить

    Полуавтоматический

    Похоже, что эта функция работает со всеми моделями, поддерживающими уборку помещений, но может не работать с более новыми версиями прошивки (3.5.8_0358 или новее). Чтобы использовать его:

    1. Задайте для свойства autoroom в конфигурации массив имен комнат ( ["моя комната 1", "моя комната 2", "моя комната 3"] .
    2. В приложении Xiaomi Mi установите таймер на полночь (00:00 или 00:00).
    3. Включить Выберите комнату для разделения .
    4. На карте выберите комнаты в том порядке, в котором они указаны в конфигурации, установленной на шаге 1. Порядок важен, поскольку именно так подключаемый модуль сопоставляет названия комнат с идентификаторами.
    5. Отправьте таймер и убедитесь, что он отключен.
    6. Перезапустите домашний мост .

    Полностью автоматический

    Похоже, эта функция работает на моделях, поддерживающих присвоение названий комнатам в приложении Xiaomi / Roborock. Известно, что это касается Roborock S6, а также S4 с прошивкой версии 3.5.8_0358 или новее.

    Даже если у вас есть одна из этих моделей, но вы еще не назвали комнаты в своем приложении, эта функция не будет работать! Спасибо @domeOo

    Токен Сяоми

    Чтобы использовать этот подключаемый модуль, вы должны прочитать «токен» роботов-пылесосов xiaomi. Вот несколько подробных инструкций:

    Поддерживается ли моя модель?

    Поскольку новые пользователи присоединяются к нашему сообществу и используют этот подключаемый модуль, мы стараемся учиться на их устройствах и не отставать от новых устройств, выпускаемых Xiaomi. Однако главный разработчик @afharo владеет только моделью S5 и не может тестировать функции на других моделях. Если вам интересно, поддерживается ли ваше устройство, пожалуйста:

    1. Проверьте файл ./models/models.js, чтобы убедиться, что ваше устройство уже находится в явном списке.
    2. Если нет, возможно, он соответствует поведению по умолчанию (просто попробуйте запустить подключаемый модуль и посмотрите, работает ли он).
      1. Если это работает, но неправильные режимы вакуума (также известные как скорости): добавьте свою модель в список в 1 с правильным сопоставлением.
      2. Если это не работает, попробуйте проверить правильность IP-адреса и токена, выполнив команду miio-vacuum inspect id-or-address --token tokenAsHex .
        СОВЕТ. Попробуйте пару раз на случай сбоя сети.
      3. Если вы можете подключиться и просмотреть сведения о своем роботе, попробуйте вручную выполнить команды, описанные здесь.
        СОВЕТ. Список команд для вашего устройства можно найти в проекте Python python-miio.

      Моя модель якобы поддерживается, но не подключается

      Выполните команду miio-vacuum inspect id-or-address --token tokenAsHex , заменив id-or-address на IP-адрес вашего пылесоса, а tokenAsHex на шестнадцатеричное представление токена, полученное ранее.

      Читайте также: