Пылесос Xiaomi MiRobotVacuum

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

dengi.76
Сообщения: 222
Зарегистрирован: Вт фев 06, 2018 9:40 pm
Откуда: Пермь
Благодарил (а): 117 раз
Поблагодарили: 7 раз

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение dengi.76 » Вс апр 12, 2020 12:02 pm

dengi.76 писал(а):
Вс апр 12, 2020 11:21 am
Kis_s писал(а):
Вс апр 12, 2020 10:59 am
dengi.76 писал(а):
Вс апр 12, 2020 8:06 am
т.к. при ручном изменении свойства " segment_clean" у меня пылесос убирает нужную комнату, а при отправки команды - нет !
Спасибо !
Отдельной "команды" нет. Все должно работать так:
1. JavaScript в сцене меняет свойство объекта пылесоса. Пусть оно называется "segment_clean". Туда должны попасть номера сегментов 1,2,3,10
2. Это свойство объекта должно быть связано со свойством пылесоса "segment_clean" модуля xiaomimiio на закладке Данные.
3. Как только это происходит, модуль xiaomimiio сам посылает команду пылесосу.

В текущей версии xiaomimiio есть проблема, свойство segment_clean не выводится в закладке Данные пылесоса. Надеюсь, уважаемый skysilver поправит это. Подробности тут: viewtopic.php?f=5&t=4863&e=1&view=unread#p118051
Я именно так и сделал - добавил 70 строку, появился segment_clean , и при его изменении пылесос убирает выбранную комнату. В общем смысл понятен - буду разбираться. Спасибо !!!
Спасибо ОГРОМНОЕ ДРУЖИЩЕ !!! Благодаря Вашим подсказкам и инструкции по настройке сцены Пылесос от "Divan" получилось настроить зональную уборку через свойство "segment_clean" на пылесосе Mi Vacuum Cleaner ( roborock.vacuum.m1s ) !
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение kas5858 » Вт апр 14, 2020 3:23 pm

Kis_s писал(а):
Вс апр 05, 2020 6:43 pm
Добрый день! У меня Roborock 2-й редакции. Карта тоже не хотела ничем читаться. Но, почитав https://github.com/marcelrv/XiaomiRobotVacuumProtocol и повозившись с MiHiome понял, что последнии версии MiHome(с цветной картинкой) сами размечают комнаты, дают их редактировать и убирать отдельно.
Вообщем я выкрутился с уборкой комнат таким образом:
1. Разметил в обновленной MiHome комнаты, - она позволяет сделать сколько угодно
2. В модуле xiaomimiio есть возможность подавать разные команды. К сожалению, get_room_mapping выдала только одну комнату. Пришлось давать команду app_segment_clean перебирая параметры номера сегмента, чтобы выяснить, куда пылесос поедет. Таким образом выяснил, что у меня номера сегментов такие: 4 - Душевая, 8 - Детская, 16 - Гостиная, 17 - Прихожая, 18- Ванная, 19 - Спальня, 20 - Кухня, 21 - Гардеробная. Я так понимаю, что при редактировании комнаты(разбитии или слиянии) новые объекты пишутся с инкрементом идентификатора.
3. И самое "неприятное", - модуль xiaomimiio не умеет пока работать с сегментами, поэтому пришлось его "подправить". В файле "/var/www/html/modules/xiaomimiio/xiaomimiio.class.php" исправить строчку:
$this->addToQueue($properties[$i]['DEVICE_ID'], 'app_zoned_clean', '[' . $value . ']');
на
$this->addToQueue($properties[$i]['DEVICE_ID'], 'app_segment_clean', '[' . $value . ']');
формат команды практически не отличается от работы с зонами:
{"id":8338,"method":"app_zoned_clean","params":[[26234,26042,27284,26642,5]]}
{"id":8338,"method":"app_segment_clean","params":[1,2,3,4,10]}
где цифры - найденные в п.п.2 ID комнат, так что изменяя zoned_clean на "4,8" мы отправляем пылесос убирать сегменты 4 и 8 (При этом никаких скобок даже не надо добавлять, скрипт пишет прямо в нужном формате).

Дальше сделал все, как у Вас, только добавил еще состояний, их на самом деле больше, сам код видно в state:
0 Unknown
1 Initiating
2 Sleeping
3 Idle
4 Remote Control
5 Cleaning
6 Returning Dock
7 Manual Mode
8 Charging
9 Charging Error
10 Paused
11 Spot Cleaning
12 In Error
13 Shutting Down
14 Updating
15 Docking
16 Go To
17 Zone Clean
18 Room Clean
100 Fully Charged
3.1. Изменил отображение полей на "Оставшиеся проценты", как в MiHome, например "filter_work_life_p Оставшийся срок работы фильтра (в % от 150 часов)" "main_brush_work_life_p Оставшийся срок работы основной щетки (в % от 300 часов)" "sensor_dirty_life_p Оставшийся срок работы сенсоров (в % от 30 часов)" "side_brush_work_life_p Оставшийся срок работы боковой щетки (в % от 200 часов)"
3.2. Сделал изменение цвета полей информации: меньше 10% - красный, меньше 30% - желтый, иначе зеленый

И все заработало ;о)
PS Спасибо за сцену с пылесосом ;о)))
Случайно не знаете как в сегментной уборки поставить количество уборок сегмента, так же как и в зональной?
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Ander
Сообщения: 56
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение Ander » Пн апр 20, 2020 4:41 pm

Друзья, может кто подскажет как регулировать мощность всасывания. Параметр fan_power только отображает текущую мощность но не меняет
pash4uga
Сообщения: 192
Зарегистрирован: Чт окт 04, 2018 12:04 pm
Благодарил (а): 28 раз
Поблагодарили: 45 раз

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение pash4uga » Пн апр 20, 2020 6:49 pm

Ander писал(а):
Пн апр 20, 2020 4:41 pm
Друзья, может кто подскажет как регулировать мощность всасывания. Параметр fan_power только отображает текущую мощность но не меняет
castom_mode, значения от 101 до 104
За это сообщение автора pash4uga поблагодарил:
Ander (Вт апр 21, 2020 10:57 am)
Рейтинг: 1.16%
bartwell
Сообщения: 61
Зарегистрирован: Пн апр 23, 2018 11:10 am
Благодарил (а): 16 раз
Поблагодарили: 29 раз

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение bartwell » Ср апр 22, 2020 12:52 am

pash4uga писал(а):
Пн апр 20, 2020 6:49 pm
castom_mode, значения от 101 до 104
А как включить режим влажной уборки?
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение kas5858 » Ср апр 22, 2020 10:22 am

bartwell писал(а):
Ср апр 22, 2020 12:52 am
pash4uga писал(а):
Пн апр 20, 2020 6:49 pm
castom_mode, значения от 101 до 104
А как включить режим влажной уборки?
water_box_custom_mode, значение от 200 до 204

Off 200
Low 201
Medium 202
High 203
Customize (Auto) 204
За это сообщение автора kas5858 поблагодарил:
bartwell (Чт апр 23, 2020 5:52 pm)
Рейтинг: 1.16%
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Sa1mon
Сообщения: 28
Зарегистрирован: Вт май 05, 2020 1:13 pm
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение Sa1mon » Вт май 05, 2020 7:52 pm

Kis_s писал(а):
Вс апр 05, 2020 6:43 pm
Добрый день! У меня Roborock 2-й редакции. Карта тоже не хотела ничем читаться. Но, почитав https://github.com/marcelrv/XiaomiRobotVacuumProtocol и повозившись с MiHiome понял, что последнии версии MiHome(с цветной картинкой) сами размечают комнаты, дают их редактировать и убирать отдельно.
Вообщем я выкрутился с уборкой комнат таким образом:
1. Разметил в обновленной MiHome комнаты, - она позволяет сделать сколько угодно
2. В модуле xiaomimiio есть возможность подавать разные команды. К сожалению, get_room_mapping выдала только одну комнату. Пришлось давать команду app_segment_clean перебирая параметры номера сегмента, чтобы выяснить, куда пылесос поедет. Таким образом выяснил, что у меня номера сегментов такие: 4 - Душевая, 8 - Детская, 16 - Гостиная, 17 - Прихожая, 18- Ванная, 19 - Спальня, 20 - Кухня, 21 - Гардеробная. Я так понимаю, что при редактировании комнаты(разбитии или слиянии) новые объекты пишутся с инкрементом идентификатора.
3. И самое "неприятное", - модуль xiaomimiio не умеет пока работать с сегментами, поэтому пришлось его "подправить". В файле "/var/www/html/modules/xiaomimiio/xiaomimiio.class.php" исправить строчку:
$this->addToQueue($properties[$i]['DEVICE_ID'], 'app_zoned_clean', '[' . $value . ']');
на
$this->addToQueue($properties[$i]['DEVICE_ID'], 'app_segment_clean', '[' . $value . ']');
формат команды практически не отличается от работы с зонами:
{"id":8338,"method":"app_zoned_clean","params":[[26234,26042,27284,26642,5]]}
{"id":8338,"method":"app_segment_clean","params":[1,2,3,4,10]}
где цифры - найденные в п.п.2 ID комнат, так что изменяя zoned_clean на "4,8" мы отправляем пылесос убирать сегменты 4 и 8 (При этом никаких скобок даже не надо добавлять, скрипт пишет прямо в нужном формате).

Дальше сделал все, как у Вас, только добавил еще состояний, их на самом деле больше, сам код видно в state:
0 Unknown
1 Initiating
2 Sleeping
3 Idle
4 Remote Control
5 Cleaning
6 Returning Dock
7 Manual Mode
8 Charging
9 Charging Error
10 Paused
11 Spot Cleaning
12 In Error
13 Shutting Down
14 Updating
15 Docking
16 Go To
17 Zone Clean
18 Room Clean
100 Fully Charged
3.1. Изменил отображение полей на "Оставшиеся проценты", как в MiHome, например "filter_work_life_p Оставшийся срок работы фильтра (в % от 150 часов)" "main_brush_work_life_p Оставшийся срок работы основной щетки (в % от 300 часов)" "sensor_dirty_life_p Оставшийся срок работы сенсоров (в % от 30 часов)" "side_brush_work_life_p Оставшийся срок работы боковой щетки (в % от 200 часов)"
3.2. Сделал изменение цвета полей информации: меньше 10% - красный, меньше 30% - желтый, иначе зеленый

И все заработало ;о)
PS Спасибо за сцену с пылесосом ;о)))
Добрый день! Подскажите как сделать:
В модуле xiaomimiio есть возможность подавать разные команды. Где и как их подавать, весь модуль пересмотрел.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение skysilver » Ср май 06, 2020 11:54 am

Sa1mon писал(а):
Вт май 05, 2020 7:52 pm
Где и как их подавать, весь модуль пересмотрел.
п. 12 https://kb.mjdm.ru/xiaomimiio-gui/
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение Divan » Ср май 20, 2020 12:26 am

Делюсь идеей. Появилась яндекс станция и стало лениво ставить чебоксы для выбора зональной уборки, захотелось запускать зональную уборку голосом. Сделал управление зональной уборки через яндекс станцию. Это представлено для пылесоса Xiaomi первого поколения, как это работает у пылесоса второго поколения я не знаю, поделитесь своим опытом.

Немного прикола от Алисы :D
СпойлерПоказать
Image1.jpeg
Image1.jpeg (102.65 КБ) 5119 просмотров
Image2.jpeg
Image2.jpeg (67.64 КБ) 5119 просмотров
Image3.jpeg
Image3.jpeg (56.3 КБ) 5119 просмотров
Теперь по делу
Ставим модуль Yandex Home, мануал читать здесь и здесь

В модуле добавляем пылесос и привязываем к двум свойствам
1) StartingCleaning - Старт\стоп уборки с помощью Яндекс Алисы
2) SelectCleaningZone - Выбрать зону уборки с помощью Яндекс Алисы
СпойлерПоказать
Настройка в модуле Yandex Home.JPG
Настройка в модуле Yandex Home.JPG (58.47 КБ) 5119 просмотров
Я яндексе создаем сценарии для запуска зональной уборки
СпойлерПоказать
Сценарий уборка в коридоре.JPG
Сценарий уборка в коридоре.JPG (25.45 КБ) 5119 просмотров
В сценарии имеется 5 источников сигнала, каждый сигнал будет использоваться для зональной уборки, где в majordomo, в свойстве объекта будут значения one two three four five
СпойлерПоказать
5 источников сигнала.JPG
5 источников сигнала.JPG (15.41 КБ) 5119 просмотров
Выбираем источник
СпойлерПоказать
Выбран источник сигнала.JPG
Выбран источник сигнала.JPG (12.17 КБ) 5119 просмотров
В МД создаем связку свойство-метод, который будет запускать зональную уборку при получении этих значении one two three four five и связку-метод для прекращения уборки

Общий вид сценарии в яндексе
СпойлерПоказать
Сценарии пылесос.JPG
Сценарии пылесос.JPG (23.05 КБ) 5119 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
olis
Сообщения: 18
Зарегистрирован: Вс июл 14, 2019 6:29 pm
Благодарил (а): 8 раз
Поблагодарили: 6 раз

Re: Пылесос Xiaomi MiRobotVacuum

Сообщение olis » Вс июн 28, 2020 4:59 pm

kas5858 писал(а):
Вт апр 14, 2020 3:23 pm
Случайно не знаете как в сегментной уборки поставить количество уборок сегмента, так же как и в зональной?
Просто несколько раз укажите id сегмента. Например segment_clean = 5,5,17 значит дважды убрать сегмент 5 и потом один раз сегмент 17.

На счет get_room_mapping: у меня при любом раскладе возвращает пустой массив. Пришлось тоже методом тыка сегменты искать. Вот некоторые наблюдения, может кому пригодится:
1. Сегменты, которые в Mi Home сами определились и после этого там не редактировались будут id с 1 по 15. Сегменты, которые редактировались, будут с 16 по 31.
2. Если открыть карту квартиры в Mi Home и командой отправить пылесос в определенный сегмент, то через пару секунд на карте будет подсвечено в какой сегмент он поехал, либо будет отбой. Т.е. не надо ждать и смотреть как пылесос по дому катается пока вы id перебираете.
3. Чем больше операций редактирования сегментов в Mi Home, тем выше id и тем сложнее их потом найти, особенно после id 31. Поэтому, если надо перекроить карту, восстанавливаем в Mi Home карту из автоматического бекапа, который был сделан до начала правок и делаем минимальное число правок. Потом ищем наши сегменты: правленные с 16 по 31, неправленные с 1 по 15.
За это сообщение автора olis поблагодарил:
Albert (Вс июл 26, 2020 8:03 pm)
Рейтинг: 1.16%
Ответить