Xiaomi Mijia Sweeping Vacuum Cleaner 1C интеграция с Home Assistant

Робот пылесос Xiaomi Mijia Vacuum Cleaner 1C - не дорогая модель робота пылесоса с возможностью влажной уборки. Рассмотрим интеграцию устройства с системой автоматизации Home Assistant. Все ниже описанное относится к модели STYTJ01ZHM (версия для китая: SKV4073CN, глобальная версия: SKV4093GL) dreame.vacuum.mc1808.

Предварительная подготовка
Пылесос в локальной сети работает по протоколу Xiaomi miio, поэтому для подключения к сторонним системам автоматизации нам потребуется token устройства. Как получить токен подробно написано в статье: Xiaomi miio получение токена для доступа к устройству.
Интеграция с Home Assistant
Для интеграции Xiaomi Mijia Sweeping Vacuum Cleaner 1C с Home Assistant необходимо установить сторонний компонент, т.к. с интеграцией из коробки с компонентом xiaomi_miio пылесос не работает. Скачиваем со страницы компонента на GitHub архив, из архива папку xiaomi_vacuum
со всем содержимым кладем в .homeassistant/custom_components
, если ее нет, то необходимо создать. Для Linux/Unix систем будет так:
$ sudo mkdir -p /home/homeassistant/.homeassistant/custom_components/ $ sudo wget https://github.com/Concentricc/xiaomi_vacuum/archive/master.zip $ sudo unzip master.zip $ sudo cp -R xiaomi_vacuum-master/custom_components/xiaomi_vacuum/ /home/homeassistant/.homeassistant/custom_components/ $ sudo chown -R homeassistant:homeassistant /home/homeassistant/.homeassistant/custom_components/xiaomi_vacuum/
Удаляем архив и распакованные файлы и папки:
$ sudo rm -R xiaomi_vacuum-master/ $ sudo rm -R master.zip
Заполняем файл конфигурации configuration.yaml
.
## Xiaomi Mijia Sweeping Vacuum Cleaner 1C vacuum: - platform: xiaomi_vacuum name: "<span class="tlid-translation translation" lang="en"><span title="">ElectricBroom</span></span>" host: <strong>Vacuum_IP_Address</strong> token: <strong>Vacuum_Token</strong>
name - имя пылесоса в Home Assistant, задается произвольно
host - IP адрес пылесоса в домашней сети. В домашней сети посмотреть можно на маршрутизаторе, для надежности в настройках DHCP сервера лучше задать для устройства постоянный IP адрес.
token - Токен устройства полученный на стадии "Предварительная подготовка".
Проверяем конфигурацию Home Assistant Configure -> Server Controls -> Check Configuration
, если всё хорошо, то перегружаем систему автоматизации Configure -> Server Controls -> Check Configuration -> Restart
.
После перезагрузки в разделе Configure -> Entities
должен появиться пылесос.

Добавление карточки управления на панель Lovelace
В Home Assistant переходим в раздел HACS -> Fronend
, ищем и добавляем карточку Vacuum Card
.
Как установить HACS подробно описано в статье: Установка HACS в Home Assistant.

Карточка позволяет:
- Запускать/останавливать уборку
- Выставлять режим уборки (тихий, стандарт, интенсивная уборка, турбо)
- Заставить пылесос подать голос что бы его можно было найти
- Отправить пылесос на док станцию
- Показывает статистику во время уборки
- Показывает заряд пылесоса и состояние расходных материалов (фильтр и щетки)
Добавляем карточку на панель Lovelace Edit Dashboard -> + Add Card
. В добавленной карточке нажимаем Show Code Editor
, заполняем:
type: 'custom:vacuum-card' entity: vacuum.<span class="tlid-translation translation" lang="en"><span title="">electricbroom</span></span> image: default show_name: true compact_view: false show_toolbar: true show_status: true stats: cleaning: - attribute: cleaning_area subtitle: Очищено unit: м² - attribute: cleaning_time subtitle: Время уборки unit: мин. default: - attribute: total_cleaning_count subtitle: Кол.уборок - attribute: filter_life_level subtitle: Фильтр unit: '%' - attribute: side_brush_life_level subtitle: Бок. щётка unit: '%' - attribute: main_brush_life_level subtitle: Осн. щётка unit: '%'
Теперь во время режима ожидания на карточке будет отображено общее количество уборок и состояние расходных материалов, во время уборки будет отображаться время уборки и убранная площадь.

Добавление в устройства умного дома Яндекс, управление с помощью Алисы
Если Home Assistant настроен на интеграцию с умным домом Яндекс, то пылесосом можно управлять с помощью умной колонки. Что бы Алиса понимала, что от нее хотят в файле конфигурации configuration.yaml
добавляем в раздел интеграции yandex_smart_home
пылесос. Как управлять устройствами в Home Assistant при помощи Алисы подробно описано в статье: Интеграция Home Assistant и Алисы по фамилии Яндекс.
## Yandex Smart Home yandex_smart_home: filter: include_entities: - vacuum.<span class="tlid-translation translation" lang="en"><span title="">electricbroom</span></span> entity_config: vacuum.<span class="tlid-translation translation" lang="en"><span title="">electricbroom</span></span>: name: "Веник" room: "Гостиная"
Проверяем конфигурацию Home Assistant Configure -> Server Controls -> Check Configuration
, если всё хорошо, то перегружаем систему автоматизации Configure -> Server Controls -> Check Configuration -> Restart
.
Обновляем конфигурацию в умном доме Яндекс.

Теперь достаточно сказать Алисе: Пропылесось.
Автоматизация
Поскольку пылесос не имеет лидара и вместо него оснащен верхней камерой, то хорошо он ориентируется только в освещенном помещении. Идея автоматизации в том, чтобы, как только пылесос начинает уборку, в комнатах, где он должен убраться включалось верхнее освещение, в помещениях где стоят датчики движения и свет включается/отключается автоматически свет зажигался и отключался только после окончания уборки, при этом перед уборкой сохранялись, отключались и после уборки восстанавливались значения триггеров автоматизации.
Пока заняться такой автоматизацией не хватает времени, после ее реализации она обязательно появится в этом разделе.
Комментарии
Добрый день. Вроде делал все по инструкции, но что то пошло не так.
Из сообщения: Unable to discover device at address 192.168.1.49 - можно сделать вывод, что HA не может найти пылик.
Начинаем с простого проверяем IP адрес устройства, проверяем доступно ли устройство по этому адресу: ping 192.168.1.49, проверяем верен ли токен устройства, ну и самое невозможное, точно ли у вас данная модель устройства, т.к. этот компонент работает только с моделью из статьи.
токен был неверный из программы с 4pda. Попробовал из Вашей статьи взять другую программу (token_extractor.exe ) Она все сделала правильно.
Спасибо за помощь.
Большое спасибо за туториал, использовал его чтобы через HA добавить в Homekit, в качестве временного костыля, ибо в Homebridge пока ребята поддержку 1C модели не завезли. Жаль, что у меня почему-то HA отваливается от Homekit спустя несколько минут после перезагрузки HA, и как исправить пока непонятно. Но это совсем другая история, не относящаяся к этому статье :)
Единственное, что стоит добавить в инструкцию, это строчку "version: 1.0.0" после токена в конфиге, ибо Home Assistant теперь требует в обязательном порядке указывать версию.
Спасибо за уточнение, на данный момент у меня версия HA 2021.2.3 и указывать версии не требует. Попозже обновлю, проверю и исправлю в статье.
С HomeKit не могу вам помочь т.к. не пользуюсь им, но как обычно копание в логах часто приводит к решению проблемы.