Управление роботом-пылесосом
В модуле Xiaomi miIO официально поддерживается управление двумя моделями роботов-пылесосов Xiaomi - Mi Vacuum Cleaner и Mi Roborock S50/S51. Другие модели, вероятно, также будут поддерживаться, поскольку все пылесосы имеют однотипное API, и в таком случае в модуле в качестве модели нужно выбрать любую из двух имеющихся моделей пылесосов.
Настройка
Перед началом работы настройте модуль в соответствии со статьей. А также убедитесь, что пылесос в модуле имеет статус онлайн, а в его настройках указан корректный токен. Для получения актуального статуса пылесоса необходимо активировать периодический опрос, указав разумный период (в секундах) в поле Период опроса.
Класс, объект, свойства
Так как пылесос устройство не "простое" и в типовых Простых устройствах MajorDoMo оно не представлено, то для их совместной работы необходимо создать класс, объект и свойства, через которые они смогут взаимодействовать друг с другом.
В Панели управления MajorDoMo переходим в Объекты - Добавить новый класс.
Заполняем поля Родительский класс, Название нового класса и Описание, нажимаем Добавить. Имя класса обязательно латиницей.
После сохранения переходим на вкладку Свойства. Там уже есть унаследованные свойства от родительского класса.
Необходимо добавить недостающие свойства, применимые к новому устройству (пылесосу).
Список всех свойств (метрик) пылесоса виден в модуле Xiaomi milO на вкладке Данные робота-пылесоса. Удобно открыть их в соседней вкладке браузера, чтобы переключаясь между ними копировать названия метрик пылесоса в создаваемые свойства класса.
В большинстве случаев достаточно назвать свойства класса точно также как и метрики в модуле, но при желании можно указывать свое название. Последовательно добавляем свойства пылесоса из модуля Xiaomi milO в класс. При этом вовсе необязательно создавать свойства на каждую метрику, если нет необходимости использовать их в дальнейшем.
Теперь на вкладке Объекты нашего нового класса создаем Объект устройства, который будет привязан к пылесосу. В качестве примера назовем объект MiRoborock.
Привязка свойств объекта к метрикам
После того, как Объект для пылесоса создан, его необходимо связать с самим устройством. Для этого в модуле Xiaomi milO заходим в пылесос на вкладку Данные и связываем каждую метрику с соответствующим свойством нашего нового объекта. Для этого пользуемся выпадающим списком в столбце Связанный объект.
И сразу же в столбце Связанное св-во связываем его с соответствующим свойством объекта.
Теперь MajorDoMo может управлять пылесосом и получать его статус.
Управление
Управление (отправка команд) осуществляется через запись в свойство, привязанное к метрике command, необходимых команд с помощью функции setGlobal().
Например, чтобы начать уборку достаточно записать в свойство command объекта MiRoborock команду app_start, а для завершения уборки соответственно команду app_stop.
1 2 3 4 5 6 |
// Начать уборку setGlobal('MiRoborock.command','app_start'); // Остановить уборку setGlobal('MiRoborock.command','app_stop'); // Возврат на базу setGlobal('MiRoborock.command','app_charge'); |
Возможные команды для управления пылесосом хорошо расписаны здесь https://github.com/MeisterTR/XiaomiRobotVacuumProtocol