Xiaomi Roborock интеграция в умный дом Home Assistant

Всем привет! Сегодня я хотел бы поговорить о роботах пылесосах в умном доме. Эти устройства прошли эволюцию от обычного робота пылесоса, хаотично тыкающегося в стены и промахивающегося мимо зарядки до пылесоса, умеющего строить карту и двигающемся в упорядоченном порядке. Современные устройства требуют все меньше внимания, переводя управление с физических кнопок в приложения на мобильном телефоне. В этом посте я хочу пойти немного дальше и показать, как подключить робот -пылесос в систему домашней автоматизации Home Assistant и свести взаимодействие с ним только к очистке мусорного контейнера

Сразу хочу отметить, пост не про обзор содержимого коробки и функционала всем известного робота от Xiaomi. Скорее я хочу поделиться тем, как я интегрировал его в умный дом Home Assistant
Из коробки робот неплохо убирается, причем уборка производится не хаотично, а последовательно, робот строит карту помещения с возможностью отметок виртуальных стен (можно посмотреть в приложении MiHome) имеет возможность запуска по расписанию. Так же робот можно интегрировать с другими устройствами экосистемы Xiaomi. По сравнению с моим предыдущим Irobot Roomba 780 это однозначно шаг вперед, я бы сказал прыжок в части удобства уборки, при этом качество уборки как минимум не хуже.
Из оставшихся неудобств — шум при уборке. Особенно это не приятно, когда смотришь телевизор, а он убирается в той же комнате.
Итак, постановка задачи: робот создает много шума, который мешает, поэтому он должен сам проводить уборку, пока никого нет дома. Второе условие- никаких китайских облаков. Все должно работать локально, т.е без интернета.
Для интеграции с  Home Assistant в первую очередь нам нужно получить токен робота. Удаляем приложение MiHome на телефоне и устанавливаем ломаную версию MiHome MiHome от vevs на 4pda
Далее
— заходим в плагин пылесоса
— вызываем меню пылесоса (три точки в правом верхнем углу) / General settings / Информация о сети.
— General settings
Если пылесос был добавлен ранее, до установки MI HOME от vevs, нужно его удалить и добавить заново вручную. После получения токена, приложение можно удалить и установить родной MiHome

В файл configuration.yaml Home Assistant помещаем код из файла Xiaomi_vacuum.yaml Перезагружаем сервер и после этого пылесос будут доступен для размещения на домашнем экране. Стандартная карточка позволяет управлять роботам так же как и из родного приложения, просматривать остаток фильтров и пр. Дополнительно скрипт включает в себя пример зональной уборки, когда можно на карточке выбрать комнату в которой нужно убраться, а так же выбор мощности.
Ссылка на плагин GitHub
Карточка может выглядеть к примеру так:

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


Настраиваем логику работы пылесоса в графическом редакторе Node Red (установленный как addon в Home Assistant). Код автоматизаций приведен в файле node_red_vacuum.txt


Согласно заложенной логике, пылесос каждый день начиная с 8:00 будет ожидать, когда все уйдут из дома, после чего выставит максимальную мощность всасывания и начинать уборку. Сообщения о начале, окончании и ошибкам во время уборки будут приходить на телефон в виде push сообщений с помощью плагина fcm-android. Так же в 8 утра на телефон придет push запрос: начать уборку сейчас или все-таки подождать. Сейчас я его отключил за ненадобностью, но логика осталась

Ссылка на плагин уведомлений fcm-android:
Ссылка на плагин GitHub

По итогу сейчас мы узнаем об уборке только по информационным сообщениям на телефонах. Но мусор все же выкидывать приходится.
Ну и в завершении модная интеграция с голосовыми помощниками на примере Yandex Алисы
Добавить в избранное +39 +79
+
avatar
+5
Не могли бы Вы описать полную структуру Вашего умного дома. Не обязательно с объяснениями как это сделано и ссылками на компоненты.
Со стороны нуба в этом деле хотелось бы понять как оно у Вас вообще составлено и за счет чего работает адекватно.
+
avatar
+11
Выложу и дам ссылку
+
avatar
+1
И я буду ждать, спасибо.
+
avatar
  • u3712
  • 20 мая 2020, 18:46
0
Но мусор все же выкидывать приходится.
Дык, именно в этом и проблема. ;))
У меня оно замечательно работает по расписанию, и напрягает только одно — выносить мешок с мусором.
Причем, из-за малой мощности пылесоса (все они такие) фильтр не особо качественный и пыль И выдувается И вываливается обратно через заборную щель (назад). Так что, приходится каждый раз идти и делать вскрытие.
Пропустил хоть раз — себе навредил, мусор может спокойно лежать кучками, особенно на слабой силе всасывания.
У меня 1 модель.
+
avatar
0
мне помогает пускать его дважды подряд. тогда меньше пыли на полу остается
+
avatar
+3
очень странно, может у вас с турбиной проблемы?
я убираю на средней скорости раза по 2-3 в день область у кошачьего лотка, вытряхиваю контейнер раз в неделю.
ничего не высыпается, а там шерсть, наполнитель из лотка, пыль, всё остаётся в контейнере. (робот сяоми первого поколения)
+
avatar
+1
Действительно странно. Ни в первой, ни во второй версии никогда ничего не вываливалось назад. Может разве что действительно при переполненном баке такое возможно разве что.
+
avatar
  • u3712
  • 21 мая 2020, 12:53
0
Сделайте простую проверку — соберите пыль в квартире (в turbo), а потом подведите и сделайте локальную уборку на ковре (на минимальной турбине).
Сам «ковер» не важен, на нем просто четче заметны «выбросы».
Это не я «придумал» — внимательно посмотрите на конструкцию пылесборника и сразу отпадут все вопросы.
+
avatar
  • sicoo
  • 20 мая 2020, 18:51
0
автор скажите а как вы знаете такие параметры приведенные в коде? — # Зал [[24531,25035,29581,29785,1]]
# Спальня [[25120,20953,30470,25053,2]]
# Кухня [[20755, 26622,23905,31822,2]]
# Коридор [[19282,20911,24532,26611,2]]
+
avatar
+1
Координаты можно получить в приложении FloleVac
+
avatar
+1
Спасибо. И мои 5 копеек — openHAB 2.5.4







+
avatar
  • Paolo
  • 20 мая 2020, 19:06
0
Корги чудесный.
+
avatar
0
Какой пылесос умничка, даже на базу возвращается не порожняком, а убираясь )
+
avatar
0
Влажной уборкой не пользуетесь, судя по всему? Вот там комнаты вестма юзабельны.
+
avatar
0
Осталось узнать — когда никого нет дома…
И автоматизация автоматизировалась.
+
avatar
  • shx
  • 21 мая 2020, 01:15
0
это реализуется кучей разных способов в HA. у меня следит за wifi телефонов
+
avatar
+6
Ждем статей типа: «Интеграция жены, ребенка и домашнего кота в умный дом Home Assistant»
+
avatar
+2
у меня есть. отслеживает по вайфай появление дома вышеозначенных
+
avatar
+1
и включается охрана ?)) то кран брызнет в глаз, то ручка током ударит )
+
avatar
  • ober
  • 20 мая 2020, 21:55
+2
И кота?

+
avatar
+1
А кота — в первую очередь!
+
avatar
  • Ivancho
  • 08 февраля 2021, 00:03
0
А захотел обмануть «умный дом» — пришёл домой с выключенным вайфаем?)))
+
avatar
0
Я правильно понимаю, что команды управления от HA идут на пылесос через интернет и китайские сервера, а локально без интернета автоматизация не работает?
+
avatar
+1
Нет. Все работает локально. Более того, я вообще не использую шлюз xiaomi в своей инсталляции
+
avatar
+1
Хм, это точно или предположение? Могу я попросить вас доподлинно проверить управление через HA при отключеном интернете? Я собирался тоже купить пылесос Xiaomi и подключить к HA, но по словам дилеров управление работает только через интернет, из-за этого пришлось отказаться от такой идеи.
+
avatar
+2
Да. Если Вы сделаете так как я описал- все будет работать без интернета (ну кроме Алисы конечно).
Я только что выключил интернет, отключив кабель от роутера. Робот работает из интерфейса ha
+
avatar
0
Спасибо большое за информацию, тогда все таки закажу и себе. Я правильно понял, что вы прошивку пылесоса оставили стоковую и никаких кастомов на него не шили?
+
avatar
0
Да. Не вижу смысла шить кастом
+
avatar
0
Подробнее пожалуйста…
Потому как:
1. Вы разрешили пылесосу ваш wifi, следовательно — установили приложение из которого дали адрес роутера
2. «Далее — заходим в плагин пылесоса» т.е. через сервер китая…
3. «шлюз xiaomi» — это из другой оперы… Вопрос был: «команды управления от HA идут на пылесос через интернет и китайские сервера». Или вы тыкаете карточки не понимая что дальше?

Напоминаю — очень интересует методика и железо от функции: «когда все уйдут из дома»

Для проверки — присвойте пылесосу (на роутере) адрес отличный от того который был в приложении. Если всё работает — Вы победили (а я пошёл изучать Home Assistant). Если-же нет… Очередные костыли (причём кривые)
+
avatar
+1
в HA(home assistant) указывается локальный ip пылесоса в домашней сети, команды HA посылает роботу на этот IP, HA не знает идентификатора пользователя (MIUI аккаунта) к которому привязан робот в приложении MI HOME. Так что желательно настраивать на роутере статический IP для робота.
+
avatar
+1
Выше я уже написал, что все работает с физически отключенным интернетом
HA напрямую посылает команды пылесосу, используя в качестве ключа токен. Как его получить я написал в статье. IP адрес указывается не в приложении MiHome, а в HA как раз для того, чтобы локально управлять роботом
Документация по интеграции Roborock и HA
www.home-assistant.io/integrations/vacuum.xiaomi_miio/

Скажу даже больше, все устройства Xiaomi (как Wifi так и ZigBee), которые я использую работают локально без китайских облаков
+
avatar
+1
Все это конечно хорошо. Пока работает. А давайте представим что система словила глюк. Бросок питания, молния, обрыв интернета… Или что-то из китайской комплектухи сдохнет.
И все встало. А я в коммандировке на 3 недели.

Семье сидеть 2-3 недели в абсолютно мертвой квартире? Я думаю меня прибьют по приезду…
+
avatar
+2
Для всех критично важных устройств необходимо делать или возможность ручного управления или резервирование. Ну и бесперебойники (ups) конечно.
Критически оценивая мою инсталляцию я могу сказать, что ничего страшного не произойдет даже если упадет сервер умного дома. Все устройства продолжат работать сами или позволят управлять ими вручную. Вот к примеру термостат на батарее с физическими кнопками
+
avatar
+1
А что за он?
+
avatar
+1
тоже интересует термостат на батарею с управлением из ХА по вайфай или блютуз
+
avatar
0
Я покупал вот такие клапаны https://aliexpress.ru/item/item/32964219806.html
К ним пркрутил управление через самый простой сонофф через домотикз. Но все равно практически не использую, основная регулировка идет через управление полом
+
avatar
0
Рассматривал такой вариант, но тянуть провода к батареи нет желания, хотелось бы автономное устройство. Так же через сонофф получаем либо постоянно открыто, либо постоянно закрыто, т.е. нет других положений.
+
avatar
0
Автономное с wifi, имхо, не получится
+
avatar
0
Тот что на картинке работает по ZWave. Есть такие же для ZigBee. Двух пальчиковых батареек хватает на зиму
+
avatar
+1
А можно ссылку на ZigBee. Есть еще такой вариант Danfoss Eco с блютузом, но как его подключитьк ХА не знаю.
+
avatar
+5
Ну к примеру вот, или вот но он что-то дорогой, лучше поискать такой же дешевле.
Себе я покупал ZWave этот. Мне он обошелся с доставкой в 5000
+
avatar
  • Aadima
  • 21 мая 2020, 13:23
0
а есть типа таких только для теплого пола? не продумали и выводы очень низко от пола п-ц не удобно, а хочется с телефона…
+
avatar
+1
так и случилось у меня… :))))
по приезду через неделю, меня готовы были растерзать. света в доме небыло.
после этого была переделана схема и сделан резерв, чтобы можно было и физически и дистанционно пользоваться светом.
+
avatar
  • Aadima
  • 21 мая 2020, 08:50
+1
А есть такие для тёплого пола?
+
avatar
+5
Долго мучался, но привязал пылесос к домотикзу. В результате понял, что процесс мне был интереснее результата :-)
+
avatar
0
ТС, присоединяюсь к ждунам Вашей статьи/обзора с подробностями реализации НА-окружения дома.
Сейчас сижу на Xiaomi, хочется перестать все делать через китайские серверы.
+
avatar
+2
Подписывайтесь :)
+
avatar
+1
+ подписался
+
avatar
0
Подскажите. Хайоми роборок говорит что у него проблема в ориентации перезагрузить систему, но это не помогает. Врезается как ненормальный в стены, пялится назад и резко вперед, базу тоже не видит, уборку естественно не делает. Кто знает что с ним сделать?
+
avatar
0
как програмно пылесосу выставить виртуальную стену?
в MiHome не нашел ничего подобного.
+
avatar
0
Господа, установил себе ми хоум от вевс, предварительно удалив старый ми хоум, но в меню пылесоса (по трем точкам) нет информации о сети! я уже и робота дважды удалял доабвлял, ми хоум от вевса сносил-ставил, даже профиль пересоздавал от xiaomi, все равно нет информации о сети. может я куда то не туда нажимаю?
Дополнительная информация
+
avatar
0
разобрался. надо было в телефоне создать папку vevs в ней папку logs, и по пути vevs/logs/ доступен токен
+
avatar
0
Если пылесос был добавлен ранее, до установки MI HOME от vevs, нужно его удалить и добавить заново вручную. После получения токена, приложение можно удалить и установить родной MiHome

В файл configuration.yaml Home Assistant помещаем код из файла Xiaomi_vacuum.yaml Перезагружаем сервер и после этого пылесос будут доступен для размещения на домашнем экране. Стандартная карточка позволяет управлять роботам так же как и из родного приложения, просматривать остаток фильтров и пр. Дополнительно скрипт включает в себя пример зональной уборки, когда можно на карточке выбрать комнату в которой нужно убраться, а так же выбор мощности.
вот тут явно пропущена строчка об интеграции токена в home assistans. по инструкции мы просто добавляем скаченный с репозитория файл, не внося в него изменений

каким образом осуществляется интеграция и куда необходимо вставлять инфомацию из токена, который мы получили от ми хоум вевс?
+
avatar
0
все понял, у кого возникнет такая же проблема — нужно данные из токена вставлять в код из Xiaomi_vacuum.yaml а затем его в в configuration.yaml H
+
avatar
0
Автору огромное спассибо, но имею проблемму. Сделал все по инструкции в статье и получаю таккую ошибку в настройках объекта пылесоса: «У этого объекта нет уникального идентификатора, поэтому его настройками нельзя управлять из пользовательского интерфейса.»

Подскажите что я делаю не так
+
avatar
  • apkraven
  • 11 августа 2021, 12:38
0
Коллеги, подскажите пожалуйста, достаточно примитивные вопросы наверное.
1. Добавил файл yaml в папку /config, добавил в secrets host + token. Перезапустил и прогнозируемо ничего не случилось. В устройствах, объектах ничего нового.
2. Начал крутить !include vacuum_xiaomi.yaml. ни в раздел homeassistant: добавить, ни как другие команды типа «scene: !include scenes.yaml» — ничего типа «vacuum: !include vacuum_xiaomi.yaml» не сработало. А что вообще надо сделать или заинклудить после того, как файл ямл размещен?