Как сделать зональную уборку xiaomi
Перейти к содержимому

Как сделать зональную уборку xiaomi

  • автор:

DivanX10

Хочу выразить благодарность участнику форума MajorDoMo @pash4uga за хорошую идею в реализации зональной уборки с помощью чебоксов, это очень удобно. Выкладываю как это сделать. Если найдете косяки и сможете сделать правильно и лучше, я буду только рад.

Видеоинструкция

Готовая сцена и класс для пылесоса

Общий вид сцены

Вид бокового меню

Дополнительный код CSS — стиль для сцены

/* This css is for normalizing styles. You can skip this. */ *, *:before, *:after < -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0; >.XiaomiMiRobotVacuum < padding: 50px; background: rgba(0, 0, 0, 0.2); /* Цвет фона */ border: 1px solid black; /* Параметры рамки */ padding: 15px; /* Поля вокруг текста */ margin-bottom: 10px; /* Отступ снизу */ border-radius: 10px; >.form-group < display: block; margin-bottom: 15px; >.form-group input < padding: 0; height: initial; width: initial; margin-bottom: 0; display: none; cursor: pointer; >.form-group label < position: relative; cursor: pointer; font-size: 200%; color: green; >.form-group label:before < content:''; -webkit-appearance: none; background-color: transparent; border: 3px solid #0079bf; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05); padding: 15px; display: inline-block; position: relative; vertical-align: middle; cursor: pointer; margin-right: 5px; >.form-group input:checked + label:after < content: ''; display: block; position: absolute; top: -1px; left: 13px; width: 12px; height: 30px; border: solid #0079bf; border-width: 0 4px 4px 0; transform: rotate(45deg); >/*Button Transitions */ button < transition-property: all; transition-duration: 0.4s; transition-timing-function: ease-out; >/* General styling */ button < background: rgba(158, 212, 200, 0.5); border: 2px solid #fff; border-radius: 1em; color: #222; cursor: pointer; font-size: 18px; width: 180px; height: 60px; font: Helvetica, Arial, Sans-serif; padding: 5px; >button:hover < background: green; color: #fff; font-size: 18px; >body < background: #222; >>

Код для получения информации о пылесосе

 
Информация
Статус: %XiaomiMiRobotVacuum.State_text_rus%
Уровень заряда: %XiaomiMiRobotVacuum.Battery%%
Время уборки: %XiaomiMiRobotVacuum.СleanTime% минут
Основная щетка: %XiaomiMiRobotVacuum.MainBrushWorkLife% часов
Боковая щетка: %XiaomiMiRobotVacuum.SideBrushWorkLife% часов
Фильтр: %XiaomiMiRobotVacuum.FilterWorkLife% часов
Датчики: %XiaomiMiRobotVacuum.SensorDirtyLife% часов

Код блока с чебоксами для выбора зональной уборки

 
Где убрать?


DivanX10

Скачать готовую настройку класса и объекта пылесоса для импорта в MD можно здесь
Скачать полные настройки (класс и объекты, меню управления и сцена) для MD можно здесь
Скачать иконки пылесоса можно здесь. Иконки нарисованы в векторе, открывать в CoralDraw. Можно передалать их по своему вкусу и экспортировать в png. При экспорте указать размер пикселей, я выбрал для себя 28pix и разрешение 72dpi.
Обзор иконок

Скачиваем и устанавливаем программу Bluestack, можете и на телефон поставить, но мне удобнее было скопировать координаты в блокнот через Bluestack.
Скачиваем и устанавливаем программу FloleVac Now
Выбираем импорт из MiHome

Указываем логин\пароль от Mi Home

Переходим в раздел карты и еще раз указываем логин\пароль от Mi Home и выбираем сервер как в MiHome

Переходим в раздел карты. Перед тем, как будем выбирать зоны, сначала должна быть построена карта. Выделяем зону уборки. Потом нажимаем и удерживаем кнопку «Очистить зону» до тех пор, пока не появится сообщение «Координаты скопированы». Больше 5-ти зон не удаться сделать, но можно выделять одну зону и копировать координаты и так можно делать бесконечно.

На основе полученных координатах можно создавать свои сценарии или методы, кому как удобно. Пример списка сценарии

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

Формат команды для zoned_clean: либо одна зона [zone1], либо список зон [zone1],[zone2]. [x1 Integer, y1 Integer, x2 Integer, y2 Integer, times Integer] [26234,26042,27284,26642,5] - убрать одну зону 5 раз [26234,26042,27284,26642,1],[26232,25304,27282,25804,2],[26246,24189,27296,25139,3] - убрать три зоны Формат команды для goto_target: [x Integer, y Integer] [24200,20200]

Для примера, свои координаты обнулил, а так вместо этих координат вы можете вставить свои координаты. Можно вставить в одной комнате до 5-ти зон.

setGlobal('Xiaomi_MiRobotVacuum.ZonedClean', '[00000,00000,00000,00000,1],[00000,00000,00000,00000,1]');

Как управлять пылесосом?
Управление пылесосм происходит отправкой через свойство command:
app_start — начать уборку;
app_stop — остановить уборку;
app_pause — приостановить уборку;
app_spot — прибрать участок вокруг пылесоса;
app_charge — отправить на базу и встать на зарядку;
find_me — посигналить, чтобы найти пылесос.

Само свойство command

Полный список команд можно посмотреть здесь

Описание метрик пылесоса
1)filter_work_life — уход, через сколько времени нужно будет заменить фильтр
2)map_present — Карта построена или нет 1 или 0
3)in_cleaning — запуск уборки
4)fan_power — мощность всасывания
5)dnd_enabled — режим «Не беспокоить»
6)custom_mode — режим уборки (Тихий, Сбалансированный, Турбо, Полная скорость)
7)sensor_dirty_life — очистка датчиков после 30 часов
8)clean_time — сколько времени затрачено на последнюю уборку
9)filter_work_time — через который промежуток времени нужно заменить фильтр
10)battery — уровень заряда
11)side_brush_work_life — индикатор времени работы боковой щетки, где через 200 часов нужно ее заменить
12)main_brush_work_life — индикатор времени работы основной щетки, где через 300 часов нужно ее заменить
13)state — цифровое обозначение состояния пылесоса
14)state_text — тестовое сообщение состояния пылесоса
15)online — статус сети

Пример того, что означают цифры state
Обозначение свойства «state»
Zoned cleaning|Зональная уборка — state 17
Charging|Зарядка — state 8
Back to home|Обратно на базу — state 6
Spot Cleaning|Чистка точки — state 11

Обозначение свойства «state_text»
Cleaning — Уборка
Zoned cleaning — Зональная уборка
Charging — Заряжается
Sleeping — Спит
Waiting — Ожидание
Pause — Пауза
Back to home — Обратно на базу
Going to target — Идет к указанной точке
Spot Cleaning — Чистка в указанной точке

Так выглядит мое меню управления пылесосом

Боковое меню

Всплывающее меню

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

Робот-пылесос Xiaomi Robot Vacuum-Mop 2S

Один из хороших вариантов роботов пылесосов Xiaomi по соотношению цена/качество, если рассматривать к покупке здесь и сейчас в ближайшем магазине.

По сути своей, является усовершенствованной версией робота пылесоса Xiaomi Robot Vacuum Mop 3C (id — ijai.vacuum.v18), который в свою очередь является упрощенной версией Xiaomi MiJia Robot Vacuum-Mop 2 (ijai.vacuum.v2).

На данный момент существует только глобальная версия для продаж за пределами Китая. Предустановленные языки: Русский, Английский, Французский, Немецкий, Испанский, Итальянский.

Русская озвучка доступна после обновления до версии ПО 4.3.3 (на 4.1.3 имеем переведенное приложение и отсутствие русской озвучки).

Робот-пылесос позиционирует себя как модель средне-топового сегмента, оснащен лидаром, что позволяет пылесосу хорошо ориентироваться в помещении и строить подробную карту (точность уборки выше, а время уборки меньше по сравнению с моделями без лазерного дальномера).

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

Как и предыдущие модели может убираться в отдельных комнатах, на карте можно отметить запретные зоны и установить виртуальные стены.

Емкость аккумулятора позволяет убрать на одной зарядке площадь примерно равную 120 кв.м., а датчики глубины не дадут пылесосу упасть с лестницы (что, безусловно, актуально в связи с наличием функции «мультикарта»).

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

Интерфейс приложения, а также голосовые оповещения полностью на русском языке, что называется «из коробки». Есть возможность установки дополнительных кастомных озвучек.

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

Зональная уборка на Xiaomi Vacuum в Home Asisstant

Чтобы не потерялась в дебрях чата HA опубликую за него:

Чтоб его отправить чистить зону достаточно создать пару скриптов такого плана:

#scripts.yaml ‘1528405527840’: alias: Zone Cleanup Kitchen sequence: — data: command: app_zoned_clean entity_id: vacuum.xiaomi_vacuum_cleaner params: — — 27274 — 21708 — 30274 — 24458 — 1 service: vacuum.send_command

где 27274, 21708, 30274, 24458 — координаты зоны

— 1 количество раз уборки в заданной зоне

чтобы выяснить координаты я сделал так (только Android):

качаем и устанавливаем от сюда программку и запускаем на телефоне
запускаем и там предлагается 3 способа добавления пылесоса
у меня получилось вторым способом через MiAccaunt
далее в программке жмем в боковом меню Map
делаем выделение зоны
и при длительном нажатии на Clean в буфер будут скопированы координаты этой зоны

ну а далее скрипты можете вызывать как угодно и он будет ехать и убираться ))))

#configuration.yaml input_select: vacuum_room: name: Choose a room to clean options: — Select Input — Corridol — Kitchen — Living Room — Childrens Room — Bedroom

#automation.yaml — id: ‘1531897482144’ alias: Start Cleaning Room trigger: — platform: state entity_id: input_select.vacuum_room from: ‘Select Input’ action: — service: script.turn_on data_template: entity_id: > script.1528405527839 script.1528405527840 script.1528405527841 script.1528405527842 script.1528405527843 — service: input_select.select_option entity_id: input_select.vacuum_room data_template: option: «Select Input»

Пример конфига подсмотрел тут

Собственно на этом всё, говорим Спасибо, Pavel Yatskevich @paulig_brest, вопросы задаем чате HA

Ну и от меня, вот собственно что в итоге должно получится:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *