Как запрограммировать робота-пылесоса Xiaomi: от базовых настроек до продвинутой автоматизации

Роботы-пылесосы Xiaomi давно перестали быть просто «умными швабрами» — сегодня это полноценные помощники с открытым API, поддержкой сценариев автоматизации и возможностью глубокой кастомизации. Однако большинство пользователей ограничиваются базовыми функциями из приложения Mi Home, даже не подозревая, что их Mi Robot Vacuum или Xiaomi Robot Vacuum-Mop 2 Pro можно запрограммировать на выполнение сложных задач: от уборки по расписанию с учётом влажности воздуха до интеграции с системой умного дома на базе Home Assistant.

В этой статье мы разберём все способы программирования роботов-пылесосов Xiaomi — от простых настроек в официальном приложении до работы с токенами API, создания пользовательских скриптов и прошивки альтернативного ПО. Особое внимание уделим моделям с LDS-лидаром (например, Mi Robot Vacuum-Mop P или S7 MaxV), так как они поддерживают наиболее гибкие сценарии. Если вы никогда не занимались программированием техники, не переживайте: первые разделы написаны для новичков, а сложные моменты мы разберём на конкретных примерах с пошаговыми инструкциями.

Предупреждаем заранее: глубина настройки зависит от модели вашего робота. Устройства без лидара (например, Mi Robot Vacuum Cleaner 1S) имеют ограниченные возможности, тогда как флагманские модели вроде Xiaomi Robot Vacuum-Mop 2 Ultra позволяют управлять даже давлением швабры и скоростью вращения щёток через API. Чтобы не запутаться, в конце статьи мы приведём сравнительную таблицу возможностей по моделям.

1. Базовые настройки в приложении Mi Home: что можно запрограммировать без технических знаний

Официальное приложение Mi Home (или Xiaomi Home для европейских регионов) — самый простой способ запрограммировать робота-пылесоса. Здесь доступны основные функции, которые покрывают 80% потребностей пользователей:

  • 📅 Расписание уборки — настройка автоматической уборки по дням недели и времени.
  • 🗺️ Зональная уборка — выбор конкретных комнат или зон на карте (доступно для моделей с лидаром).
  • 🔄 Режимы работы — переключение между «Тихой», «Сбалансированной», «Турбо» и «Максимальной» мощностью.
  • 🚫 Запретные зоны — обозначение областей, которые робот должен игнорировать (например, детские коврики или миски с едой).
  • 🔋 Управление зарядкой — настройка уровня заряда батареи для начала уборки.

Чтобы настроить расписание, откройте приложение Mi Home, выберите ваш робот-пылесос и перейдите в раздел Расписание. Здесь можно создать несколько правил, например:

  • Уборка по будням в 9:00 (когда все ушли на работу).
  • Влажная уборка по субботам в 12:00.
  • Быстрая уборка кухни ежедневно в 18:00 перед приходом домочадцев.
⚠️ Внимание: Если ваш робот-пылесос Xiaomi не сохраняет карту после выключения, проверьте настройки Сохранение карты в меню устройства. В некоторых прошивках эта опция отключена по умолчанию для экономии энергии.

Для моделей с поддержкой многокомнатной карты (например, S7 MaxV) доступна функция Уборка по комнатам. Вы можете указать, какие помещения убирать в конкретное время. Например, спальню — только по утрам, а коридор — ежедневно. Для этого:

  1. Откройте карту в приложении Mi Home.
  2. Нажмите на иконку Редактировать (карандаш).
  3. Выделите нужные комнаты и сохраните зону.
  4. В расписании выберите созданную зону вместо «Всей площади».
📊 Какую модель робота-пылесоса Xiaomi вы используете?
Mi Robot Vacuum 1S
Mi Robot Vacuum-Mop P
Xiaomi Robot Vacuum-Mop 2 Pro
S7 MaxV
Другая модель

2. Продвинутые сценарии в Mi Home: автоматизация по триггерам

Мало кто знает, но в Mi Home есть встроенный конструктор автоматизации (Умные сценарии), который позволяет создавать цепочки действий на основе триггеров. Например, робот может начинать уборку, когда:

  • 🏠 Вы уходите из дома (по геолокации смартфона).
  • 🌡️ Уровень пыли в воздухе превышает норму (данные с датчика Xiaomi Air Purifier или Mi Air Quality Monitor).
  • 🕒 Прошло N часов после последней уборки.
  • 🔋 Заряд батареи робота достиг 100%.

Чтобы создать такой сценарий:

  1. В Mi Home перейдите в раздел Профиль → Умные сценарии → Добавить сценарий.
  2. Выберите Если... и укажите триггер (например, Геолокация → Ушёл из дома).
  3. В блоке То... добавьте действие Начать уборку для вашего робота-пылесоса.
  4. Сохраните сценарий и включите его.

Более интересные примеры:

  • 🚪 Уборка после открытия входной двери. Если у вас есть умный замок Xiaomi Smart Door Lock, можно настроить уборку приходной зоны через 10 минут после открытия двери.
  • 💧 Влажная уборка при высокой влажности. Используйте данные с датчика Mi Temperature and Humidity Sensor: если влажность выше 60%, робот моет полы.
  • 🐕 Уборка после кормления питомца. Если у вас есть автоматическая кормушка Xiaomi Pet Feeder, запускайте робота через 30 минут после кормления, чтобы убрать рассыпанный корм.
⚠️ Внимание: Сценарии с геолокацией сильно сажают батарею смартфона. Если робот срабатывает нестабильно, проверьте настройки энергосбережения для приложения Mi Home (разрешите работу в фоновом режиме).

3. Работа с API Xiaomi: как получить токен и управлять роботом через HTTP-запросы

Для тех, кому возможностей Mi Home недостаточно, существует неофициальный API Xiaomi. С его помощью можно отправлять роботу прямые команды через HTTP-запросы, интегрировать его с Home Assistant, Node-RED или даже писать собственные скрипты на Python. Главное — получить токен устройства.

Существует несколько способов извлечь токен:

  1. Через приложение Mi Home (для Android).
    • Установите модифицированную версию Mi Home с поддержкой вывода токенов.
    • Авторизуйтесь и найдите ваш робот-пылесос в списке устройств.
    • Токен отобразится в информации об устройстве.
  2. Через MITM-прокси (для iOS/Android).
    • Настройте перехват трафика через Fiddler или Charles Proxy.
    • В Mi Home выполните любое действие с роботом (например, запустите уборку).
    • В логах прокси найдите запрос к api.io.mi.com — токен будет в параметре deviceId.
  • Через скрипт miio-cli (для ПК).
    npm install -g miio-cli
    

    miio discover --handshake

    Скрипт выведет список устройств в вашей сети с токенами.

  • После получения токена вы можете отправлять команды роботу через HTTP. Пример запроса для запуска уборки на Python:

    import requests
    
    

    token = "YOUR_DEVICE_TOKEN" # Замените на ваш токен

    did = "YOUR_DEVICE_ID" # ID устройства (можно найти в Mi Home)

    ip = "192.168.1.100" # Локальный IP робота

    url = f"http://{ip}/miIO.info"

    headers = {"Content-Type": "application/json"}

    data = {

    "id": 1,

    "method": "miIO.info",

    "params": []

    }

    response = requests.post(url, json=data, headers=headers)

    print(response.json())

    Запуск уборки

    url = f"http://{ip}/miIO.info"

    data = {

    "id": 2,

    "method": "app_start",

    "params": []

    }

    response = requests.post(url, json=data, headers=headers)

    Полный список поддерживаемых команд для роботов-пылесосов Xiaomi можно найти в документации Home Assistant. Например:

    • app_start — начать уборку.
    • app_pause — приостановить уборку.
    • app_zoned_clean — уборка в указанной зоне (требуются координаты).
    • app_goto_target — отправить робота в конкретную точку на карте.
    ⚠️ Внимание: Токены устройств Xiaomi могут меняться после обновления прошивки или сброса настроек. Если команды перестали работать, повторите процедуру извлечения токена.
    Что будет если кто-то узнает ваш токен устройства?

    Если токен попадёт в чужие руки, злоумышленник сможет управлять вашим роботом-пылесосом через локальную сеть (например, запускать уборку ночью или отправлять его в запретные зоны). Чтобы защититься:

    1. Не публикуйте токен в открытых репозиториях (например, на GitHub).

    2. Используйте локальную сеть вместо облака (команды отправляйте на IP робота, а не через api.io.mi.com).

    3. Периодически меняйте токен, сбрасывая настройки робота в Mi Home (Настройки устройства → Общие → Сброс).

    4. Интеграция с Home Assistant: полный контроль над роботом

    Home Assistant — это открытая платформа для умного дома, которая позволяет объединить устройства разных производителей в единую систему. С её помощью вы можете:

    • 📊 Визуализировать карту уборки в реальном времени.
    • 🤖 Создавать сложные автоматизации с учётом данных с других датчиков.
    • 📱 Управлять роботом через голосовых помощников (Алиса, Google Assistant, Siri).
    • 🔄 Синхронизировать уборку с другими устройствами (например, выключать робота при включении пылесоса).

    Чтобы подключить робот-пылесос Xiaomi к Home Assistant:

    1. Установите Home Assistant на Raspberry Pi, NAS или ПК.
    2. В файле конфигурации configuration.yaml добавьте интеграцию xiaomi_miio:
      vacuum:
      

      - platform: xiaomi_miio

      host: 192.168.1.100 # IP робота

      token: YOUR_DEVICE_TOKEN

    3. Перезагрузите Home Assistant.
    4. В интерфейсе появится новая сущность vacuum.xiaomi_vacuum, которой можно управлять через панели или автоматизации.

    Пример автоматизации в Home Assistant, которая запускает уборку, когда все ушли из дома, а влажность воздуха выше 50%:

    automation:
    

    - alias: "Уборка при отсутствии дома и высокой влажности"

    trigger:

    - platform: state

    entity_id: group.family

    to: "not_home"

    for: "00:30:00" # Задержка 30 минут

    condition:

    - condition: numeric_state

    entity_id: sensor.humidity

    above: 50

    action:

    - service: vacuum.start

    entity_id: vacuum.xiaomi_vacuum

    - service: notify.telegram

    data:

    message: "Робот начал уборку: влажность {{ states('sensor.humidity') }}%."

    Важно: модели роботов-пылесосов Xiaomi с прошивкой после 2023 года могут требовать дополнительную аутентификацию через облако. В этом случае для интеграции с Home Assistant потребуется использовать компонент miio2 с поддержкой облачного токена.

    Получить токен устройства|Установить Home Assistant на Raspberry Pi/NAS|Добавить интеграцию xiaomi_miio в configuration.yaml|Проверить подключение в меню Developer Tools → States|Создать тестовую автоматизацию-->

    5. Альтернативные прошивки: Valetudo и открытые возможности

    Если вас не устраивают ограничения стандартной прошивки Xiaomi, можно установить альтернативное ПО, такое как Valetudo. Это проект с открытым исходным кодом, который предоставляет:

    • 🌐 Локальное управление без зависимости от облака Xiaomi.
    • 🗺️ Продвинутые инструменты работы с картой (редактирование зон, ручное управление).
    • 🔧 Поддержка пользовательских скриптов на JavaScript.
    • 📡 Интеграция с MQTT для умного дома.

    Valetudo поддерживает следующие модели роботов-пылесосов Xiaomi:

    Модель Поддержка Valetudo Требуется ли рутинг Особенности
    Mi Robot Vacuum 1S ✅ Да ✅ Да Ограниченная функциональность из-за слабого железа
    Mi Robot Vacuum-Mop P ✅ Да ✅ Да Полная поддержка LDS-лидара и зонной уборки
    Xiaomi Robot Vacuum-Mop 2 Pro ✅ Да ❌ Нет (установка через SSH) Поддержка мультикарт и автоматического распознавания комнат
    S7 MaxV ✅ Да ❌ Нет Поддержка 3D-камер и улучшенной навигации

    Процесс установки Valetudo зависит от модели. Для большинства устройств потребуется:

    1. Получить root-доступ к роботу (например, через уязвимость в прошивке или специальный скрипт).
    2. Подключиться к роботу по SSH (обычно по адресу root@192.168.1.100, пароль пустой или 1234567890).
    3. Запустить установщик Valetudo:
      wget -O - https://raw.githubusercontent.com/Hypfer/Valetudo/master/scripts/install.sh | bash
    4. После установки веб-интерфейс Valetudo будет доступен по адресу http://[IP_робота]:80.

    В интерфейсе Valetudo вы можете:

    • 🖥️ Управлять роботом через веб-браузер (включая ручное управление с джойстика).
    • 📝 Редактировать карту, добавлять виртуальные стены и зоны уборки.
    • 📊 Просматривать статистику уборки и ошибки.
    • 🔧 Настраивать пользовательские команды через JavaScript.
    ⚠️ Внимание: Установка альтернативных прошивок может привести к потере гарантии и нестабильной работе робота. Перед прошивкой сделайте резервную копию оригинальной прошивки через команду dd if=/dev/mtdblock0 of=/tmp/full_backup.bin.

    6. Программирование через сторонние приложения: AlternativeApp и другие

    Если работа с API и прошивками кажется слишком сложной, можно использовать сторонние приложения, которые расширяют функционал Mi Home. Самые популярные:

    • 📱 AlternativeApp for Xiaomi Vacuum (Android) — позволяет настраивать расписание с точностью до минуты, создавать сложные зоны уборки и управлять роботом без интернета.
      • Поддерживает модели: Mi Robot Vacuum 1/1S, Mi Robot Vacuum-Mop P, S5/S6.
      • Требует токен устройства (извлекается так же, как для API).
    • 🌍 Vacuum Map Viewer (веб) — отображает карту уборки в реальном времени с возможностью ручного управления.
      • Работает через облако Xiaomi (нужен токен).
      • Поддерживает экспорт карты в формате .svg.
    • 🤖 Robot Vacuum Controller (iOS) — альтернатива Mi Home с расширенными настройками зон и расписания.
      • Есть функция "Следование за мной" (робот едет за вами по дому).
      • Поддерживает голосовое управление через Siri.

    Пример настройки AlternativeApp:

    1. Скачайте APK с GitHub и установите на Android.
    2. Добавьте робот-пылесос, введя его IP, токен и Device ID.
    3. В меню Advanced настройте:
      • Custom commands — создайте собственные команды (например, уборка только по периметру).
      • Map management — редактируйте сохранённые карты.
      • DND mode — настройте "не беспокоить" по расписанию.

    Преимущества сторонних приложений:

    • ✅ Нет зависимости от серверов Xiaomi (работает локально).
    • ✅ Больше гибкости в настройке зон и расписания.
    • ✅ Поддержка старых моделей, которые больше не обновляются.

    Недостатки:

    • ❌ Требуется ручная настройка (токены, IP).
    • ❌ Нет официальной поддержки (возможны баги).

    7. Сравнение возможностей программирования по моделям Xiaomi

    Не все роботы-пылесосы Xiaomi поддерживают продвинутые функции. Ниже — сравнение популярных моделей по возможностям кастомизации:

    Модель LDS-лидар Поддержка Valetudo API-команды Зональная уборка Мультикарта Интеграция с Home Assistant
    Mi Robot Vacuum 1S ❌ Нет ✅ Да (с рутингом) Базовые ❌ Нет ❌ Нет ✅ Да
    Mi Robot Vacuum-Mop P ✅ Да ✅ Да Расширенные ✅ Да ❌ Нет ✅ Да
    Xiaomi Robot Vacuum-Mop 2 Pro ✅ Да (прецизионный) ✅ Да Полные ✅ Да ✅ Да (до 3 карт) ✅ Да
    S7 MaxV ✅ Да + 3D-камера ✅ Да Полные + камера ✅ Да ✅ Да (до 4 карт) ✅ Да
    Xiaomi Robot Vacuum-Mop 2 Ultra ✅ Да (двойной лидар) ❌ Нет (пока) Полные + базовая станция ✅ Да ✅ Да (до 5 карт) ✅ Да

    Если ваша модель не поддерживает нужные функции, рассмотрите апгрейд. Например, переход с Mi Robot Vacuum 1S на Xiaomi Robot Vacuum-Mop 2 Pro откроет доступ к:

    • 🗺️ Точной карте с сохранением нескольких этажей.
    • 🚿 Автоматической смене режимов (пылесос/швабра).
    • 🔄 Интеграции с другими устройствами умного дома.

    8. Частые ошибки и их решение

    При программировании роботов-пылесосов Xiaomi пользователи сталкиваются с типичными проблемами. Разберём самые распространённые:

    • 🔌 Робот не отвечает на API-команды.
      • Проверьте, что IP-адрес робота не изменился (используйте статический IP в роутере).
      • Убедитесь, что токен актуальный (после обновления прошивки он может сброситься).
      • Проверьте, что робот и устройство, с которого отправляются команды, находятся в одной сети.
    • 🗺️ Карта не сохраняется после выключения.
      • Включите опцию Сохранение карты в настройках робота в Mi Home.
      • Для моделей без лидара карта не сохраняется принципиально (они используют случайный алгоритм уборки).
    • 🔄 Робот не возвращается на базу.
      • Проверьте, что база установлена на ровной поверхности и не закрыта препятствиями.
      • Обновите прошивку робота (в старых версиях были баги с навигацией).
      • Если робот застрял, используйте команду app_charge через API, чтобы принудительно отправить его на зарядку.
    • 📱 Приложение Mi Home не видит робот.
      • Перезагрузите робот (зажмите кнопку питания на 10 секунд).
      • Сбросьте настройки робота до заводских (Настройки → Общие → Сброс).
      • Проверьте, что робот подключён к сети 2.4 GHz (не 5 GHz).

    Если робот выдаёт ошибку с кодом (например, Error 10 или Error 12), расшифровать её можно в документации Home Assistant. Например:

    • Error 3 — робот застрял.
    • Error 5 — проблема с боковой щёткой.
    • Error 9 — низкий заряд батареи.
    ⚠️ Внимание: Если после прошивки Valetudo робот перестал включаться, проверьте целостность файловой системы через SSH. Частая причина — нехватка места в разделе /tmp. Решение: подключитесь по SSH и выполните df -h, чтобы проверить свободное место.

    FAQ: Ответы на частые вопросы

    Можно ли запрограммировать робот-пылесос Xiaomi без интернета?