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 запрос: начать уборку сейчас или все-таки подождать. Сейчас я его отключил за ненадобностью, но логика осталась
По итогу сейчас мы узнаем об уборке только по информационным сообщениям на телефонах. Но мусор все же выкидывать приходится.
Ну и в завершении модная интеграция с голосовыми помощниками на примере Yandex Алисы
Не могли бы Вы описать полную структуру Вашего умного дома. Не обязательно с объяснениями как это сделано и ссылками на компоненты.
Со стороны нуба в этом деле хотелось бы понять как оно у Вас вообще составлено и за счет чего работает адекватно.
Дык, именно в этом и проблема. ;))
У меня оно замечательно работает по расписанию, и напрягает только одно — выносить мешок с мусором.
Причем, из-за малой мощности пылесоса (все они такие) фильтр не особо качественный и пыль И выдувается И вываливается обратно через заборную щель (назад). Так что, приходится каждый раз идти и делать вскрытие.
Пропустил хоть раз — себе навредил, мусор может спокойно лежать кучками, особенно на слабой силе всасывания.
У меня 1 модель.
очень странно, может у вас с турбиной проблемы?
я убираю на средней скорости раза по 2-3 в день область у кошачьего лотка, вытряхиваю контейнер раз в неделю.
ничего не высыпается, а там шерсть, наполнитель из лотка, пыль, всё остаётся в контейнере. (робот сяоми первого поколения)
Действительно странно. Ни в первой, ни во второй версии никогда ничего не вываливалось назад. Может разве что действительно при переполненном баке такое возможно разве что.
Сделайте простую проверку — соберите пыль в квартире (в turbo), а потом подведите и сделайте локальную уборку на ковре (на минимальной турбине).
Сам «ковер» не важен, на нем просто четче заметны «выбросы».
Это не я «придумал» — внимательно посмотрите на конструкцию пылесборника и сразу отпадут все вопросы.
автор скажите а как вы знаете такие параметры приведенные в коде? — # Зал [[24531,25035,29581,29785,1]]
# Спальня [[25120,20953,30470,25053,2]]
# Кухня [[20755, 26622,23905,31822,2]]
# Коридор [[19282,20911,24532,26611,2]]
Я правильно понимаю, что команды управления от HA идут на пылесос через интернет и китайские сервера, а локально без интернета автоматизация не работает?
Хм, это точно или предположение? Могу я попросить вас доподлинно проверить управление через HA при отключеном интернете? Я собирался тоже купить пылесос Xiaomi и подключить к HA, но по словам дилеров управление работает только через интернет, из-за этого пришлось отказаться от такой идеи.
Да. Если Вы сделаете так как я описал- все будет работать без интернета (ну кроме Алисы конечно).
Я только что выключил интернет, отключив кабель от роутера. Робот работает из интерфейса ha
Спасибо большое за информацию, тогда все таки закажу и себе. Я правильно понял, что вы прошивку пылесоса оставили стоковую и никаких кастомов на него не шили?
Подробнее пожалуйста…
Потому как:
1. Вы разрешили пылесосу ваш wifi, следовательно — установили приложение из которого дали адрес роутера
2. «Далее — заходим в плагин пылесоса» т.е. через сервер китая…
3. «шлюз xiaomi» — это из другой оперы… Вопрос был: «команды управления от HA идут на пылесос через интернет и китайские сервера». Или вы тыкаете карточки не понимая что дальше?
Напоминаю — очень интересует методика и железо от функции: «когда все уйдут из дома»
Для проверки — присвойте пылесосу (на роутере) адрес отличный от того который был в приложении. Если всё работает — Вы победили (а я пошёл изучать Home Assistant). Если-же нет… Очередные костыли (причём кривые)
в HA(home assistant) указывается локальный ip пылесоса в домашней сети, команды HA посылает роботу на этот IP, HA не знает идентификатора пользователя (MIUI аккаунта) к которому привязан робот в приложении MI HOME. Так что желательно настраивать на роутере статический IP для робота.
Выше я уже написал, что все работает с физически отключенным интернетом
HA напрямую посылает команды пылесосу, используя в качестве ключа токен. Как его получить я написал в статье. IP адрес указывается не в приложении MiHome, а в HA как раз для того, чтобы локально управлять роботом
Документация по интеграции Roborock и HA www.home-assistant.io/integrations/vacuum.xiaomi_miio/
Скажу даже больше, все устройства Xiaomi (как Wifi так и ZigBee), которые я использую работают локально без китайских облаков
Все это конечно хорошо. Пока работает. А давайте представим что система словила глюк. Бросок питания, молния, обрыв интернета… Или что-то из китайской комплектухи сдохнет.
И все встало. А я в коммандировке на 3 недели.
Семье сидеть 2-3 недели в абсолютно мертвой квартире? Я думаю меня прибьют по приезду…
Для всех критично важных устройств необходимо делать или возможность ручного управления или резервирование. Ну и бесперебойники (ups) конечно.
Критически оценивая мою инсталляцию я могу сказать, что ничего страшного не произойдет даже если упадет сервер умного дома. Все устройства продолжат работать сами или позволят управлять ими вручную. Вот к примеру термостат на батарее с физическими кнопками
Я покупал вот такие клапаны https://aliexpress.ru/item/item/32964219806.html
К ним пркрутил управление через самый простой сонофф через домотикз. Но все равно практически не использую, основная регулировка идет через управление полом
Рассматривал такой вариант, но тянуть провода к батареи нет желания, хотелось бы автономное устройство. Так же через сонофф получаем либо постоянно открыто, либо постоянно закрыто, т.е. нет других положений.
так и случилось у меня… :))))
по приезду через неделю, меня готовы были растерзать. света в доме небыло.
после этого была переделана схема и сделан резерв, чтобы можно было и физически и дистанционно пользоваться светом.
ТС, присоединяюсь к ждунам Вашей статьи/обзора с подробностями реализации НА-окружения дома.
Сейчас сижу на Xiaomi, хочется перестать все делать через китайские серверы.
Подскажите. Хайоми роборок говорит что у него проблема в ориентации перезагрузить систему, но это не помогает. Врезается как ненормальный в стены, пялится назад и резко вперед, базу тоже не видит, уборку естественно не делает. Кто знает что с ним сделать?
Господа, установил себе ми хоум от вевс, предварительно удалив старый ми хоум, но в меню пылесоса (по трем точкам) нет информации о сети! я уже и робота дважды удалял доабвлял, ми хоум от вевса сносил-ставил, даже профиль пересоздавал от xiaomi, все равно нет информации о сети. может я куда то не туда нажимаю?
Если пылесос был добавлен ранее, до установки MI HOME от vevs, нужно его удалить и добавить заново вручную. После получения токена, приложение можно удалить и установить родной MiHome
В файл configuration.yaml Home Assistant помещаем код из файла Xiaomi_vacuum.yaml Перезагружаем сервер и после этого пылесос будут доступен для размещения на домашнем экране. Стандартная карточка позволяет управлять роботам так же как и из родного приложения, просматривать остаток фильтров и пр. Дополнительно скрипт включает в себя пример зональной уборки, когда можно на карточке выбрать комнату в которой нужно убраться, а так же выбор мощности.
вот тут явно пропущена строчка об интеграции токена в home assistans. по инструкции мы просто добавляем скаченный с репозитория файл, не внося в него изменений
каким образом осуществляется интеграция и куда необходимо вставлять инфомацию из токена, который мы получили от ми хоум вевс?
Автору огромное спассибо, но имею проблемму. Сделал все по инструкции в статье и получаю таккую ошибку в настройках объекта пылесоса: «У этого объекта нет уникального идентификатора, поэтому его настройками нельзя управлять из пользовательского интерфейса.»
Коллеги, подскажите пожалуйста, достаточно примитивные вопросы наверное.
1. Добавил файл yaml в папку /config, добавил в secrets host + token. Перезапустил и прогнозируемо ничего не случилось. В устройствах, объектах ничего нового.
2. Начал крутить !include vacuum_xiaomi.yaml. ни в раздел homeassistant: добавить, ни как другие команды типа «scene: !include scenes.yaml» — ничего типа «vacuum: !include vacuum_xiaomi.yaml» не сработало. А что вообще надо сделать или заинклудить после того, как файл ямл размещен?
Со стороны нуба в этом деле хотелось бы понять как оно у Вас вообще составлено и за счет чего работает адекватно.
У меня оно замечательно работает по расписанию, и напрягает только одно — выносить мешок с мусором.
Причем, из-за малой мощности пылесоса (все они такие) фильтр не особо качественный и пыль И выдувается И вываливается обратно через заборную щель (назад). Так что, приходится каждый раз идти и делать вскрытие.
Пропустил хоть раз — себе навредил, мусор может спокойно лежать кучками, особенно на слабой силе всасывания.
У меня 1 модель.
я убираю на средней скорости раза по 2-3 в день область у кошачьего лотка, вытряхиваю контейнер раз в неделю.
ничего не высыпается, а там шерсть, наполнитель из лотка, пыль, всё остаётся в контейнере. (робот сяоми первого поколения)
Сам «ковер» не важен, на нем просто четче заметны «выбросы».
Это не я «придумал» — внимательно посмотрите на конструкцию пылесборника и сразу отпадут все вопросы.
# Спальня [[25120,20953,30470,25053,2]]
# Кухня [[20755, 26622,23905,31822,2]]
# Коридор [[19282,20911,24532,26611,2]]
И автоматизация автоматизировалась.
Я только что выключил интернет, отключив кабель от роутера. Робот работает из интерфейса ha
Потому как:
1. Вы разрешили пылесосу ваш wifi, следовательно — установили приложение из которого дали адрес роутера
2. «Далее — заходим в плагин пылесоса» т.е. через сервер китая…
3. «шлюз xiaomi» — это из другой оперы… Вопрос был: «команды управления от HA идут на пылесос через интернет и китайские сервера». Или вы тыкаете карточки не понимая что дальше?
Напоминаю — очень интересует методика и железо от функции: «когда все уйдут из дома»
Для проверки — присвойте пылесосу (на роутере) адрес отличный от того который был в приложении. Если всё работает — Вы победили (а я пошёл изучать Home Assistant). Если-же нет… Очередные костыли (причём кривые)
HA напрямую посылает команды пылесосу, используя в качестве ключа токен. Как его получить я написал в статье. IP адрес указывается не в приложении MiHome, а в HA как раз для того, чтобы локально управлять роботом
Документация по интеграции Roborock и HA
www.home-assistant.io/integrations/vacuum.xiaomi_miio/
Скажу даже больше, все устройства Xiaomi (как Wifi так и ZigBee), которые я использую работают локально без китайских облаков
И все встало. А я в коммандировке на 3 недели.
Семье сидеть 2-3 недели в абсолютно мертвой квартире? Я думаю меня прибьют по приезду…
Критически оценивая мою инсталляцию я могу сказать, что ничего страшного не произойдет даже если упадет сервер умного дома. Все устройства продолжат работать сами или позволят управлять ими вручную. Вот к примеру термостат на батарее с физическими кнопками
К ним пркрутил управление через самый простой сонофф через домотикз. Но все равно практически не использую, основная регулировка идет через управление полом
Себе я покупал ZWave этот. Мне он обошелся с доставкой в 5000
по приезду через неделю, меня готовы были растерзать. света в доме небыло.
после этого была переделана схема и сделан резерв, чтобы можно было и физически и дистанционно пользоваться светом.
Сейчас сижу на Xiaomi, хочется перестать все делать через китайские серверы.
в MiHome не нашел ничего подобного.
каким образом осуществляется интеграция и куда необходимо вставлять инфомацию из токена, который мы получили от ми хоум вевс?
Подскажите что я делаю не так
1. Добавил файл yaml в папку /config, добавил в secrets host + token. Перезапустил и прогнозируемо ничего не случилось. В устройствах, объектах ничего нового.
2. Начал крутить !include vacuum_xiaomi.yaml. ни в раздел homeassistant: добавить, ни как другие команды типа «scene: !include scenes.yaml» — ничего типа «vacuum: !include vacuum_xiaomi.yaml» не сработало. А что вообще надо сделать или заинклудить после того, как файл ямл размещен?