Большое разнообразие всевозможных «умных» устройств из экосистемы Xiaomi иногда подталкивает меня на мысль об их использовании в своем доме. А так как я использую Home Assistant в качестве центра управления всей автоматикой, очень хотелось бы управлять этими устройствами именно через него. И, естественно, локально. Без задержек из-за удаленности серверов и, что самое главное, не быть зависимым от какой-либо компании, даже если это такая компания как Xiaomi.
Один из выходов в такой ситуации — перепрошивка. Это самый прямой вариант, и в некоторых случаях даже топорный. Потому что не всегда получается вскрыть устройство без повреждений корпуса или приходится изобретать обходные пути ввиду того, что любимая прошивка не поддерживает тот или иной mcu, работающий в паре с esp8266 или esp32. Хотя этот вариант у меня самый любимый.
Например, устройства, работающие в экосистеме Tuya стали очень популярны у энтузиастов и большую их часть можно перепрошить без ущерба в функциональности, а то и вовсе добавить новые фичи. А вот устройства Xiaomi менее любимы у народных diy умельцев, но некоторые из них можно добавить в Home Assistant с родной прошивкой и управлять локально. Та же родная интеграция Yeelight, например.
Roborock Saugroboter Vacuum Map Dashboard Karte in Home Assistant erstellen
Чтобы управлять остальными, официально неподдерживаемыми в Home Assistant устройствами, работающими по протоколу MIoT, есть интеграция, доступная для установки через пользовательский магазин компонентов HACS — Xiaomi Miot Auto. С ее помощью можно попробовать добавить любое «умное» устройство из экосистемы Xiaomi в Home Assistant. Интеграция позволяет добавлять устройства через веб интерфейс, а это значит, что не нужно вручную вносить правки в конфигурацию. Очень удобно.
Я не берусь утверждать, что любое устройство будет работать «из коробки» c HA, но большинство будет точно. На странице интеграции есть список проверенных устройств, протестированных сообществом. Я же покажу весь процесс добавления, включая получение токена для локального управления, на примере вот такого небольшого модуля реле с маркировкой JL-SS-03.

Его размеры 82x35x22мм. Модуль небольшой, по типу тех, что встраивают в люстры. Приобретался тут:
Кстати, сейчас есть возможность приобрести этот релейный модуль со скидкой. Оформите заказ без оплаты — это можно сделать через мобильное приложение, выбрав «Другие способы оплаты» в самом низу. После этого напишите продавцу, что вы от kvvhost и он снизит цену еще на 13%
На упаковке все расписано на китайском, но основная информация по модулю читается и без переводчика.


Модуль позволяет управлять нагрузкой до 10А в сетях переменного тока 100-240В, допустимый диапазон температур для работы модуля -5℃~55℃. Отдельно отмечено, что максимальная мощность LED нагрузки не должна превышать 350Вт. Внутри установлено реле FANHAR W14-1AST на 10А.
Управление роботом пылесосом из Home Assistant.


Так как модуль предназначен для работы с приложением MiHome, на его упаковке есть соответствующее лого — works with Mijia. Как раз то, что нам нужно, чтобы проверить интеграцию.
Чтобы добавить устройство в Home Assistant через интеграцию Xiaomi Miot Auto для локального управления, нужно получить токен. Его можно будет узнать только если выполнить сопряжение с MiHome. Поэтому сначала добавляем модуль реле обычным способом. В приложении добавляем устройство — я зажал единственную кнопку на корпусе примерно на 3-4 секунды, после чего замигал синий светодиод под одной из темных заглушек для фиксации кабеля и в «поиске устройств поблизости» был найден мой модуль — julun smart switch. Добавляем.


После добавления скачается его персональный плагин — обычное дело для MiHome. Жаль только, что плагин без перевода и все подписи на китайском языке. Но для управления это не помеха, все интуитивно понятно. В выключенном и включенном состоянии у карточки разный фон.


Те, кто знаком с MiHome знают, что из-за удаленности их серверов, а управление происходит именно через них, присутствует небольшая задержка между отправкой команды — нажатием кнопки в приложении, до выполнения — переключения реле. Плохо, что Xiaomi не реализует локальное управление если телефон и устройство в одной WiFi сети. Может быть это не на всех устройствах, но на многих точно.
Кстати, Алиса сама обнаружила новое устройство от Xiaomi в сети и что-то там сказала про наши с ней отношения. Через Яндекс управляется, статус отображается.


Кому-то MiHome и Алисы будет достаточно, но моя цель — управлять реле из Home Assistant. Значит нужно получить токен устройства. Есть разные способы, но я не буду описывать их все. Самый простой и быстрый — с использованием Xiaomi Cloud Tokens Extractor из под Windows или Linux. Я буду пользоваться ноутбуком с виндой, поэтому покажу версию под нее.
Скачиваем с Github и запускаем. Ничего сложного нет, нас попросят ввести учетные данные вашего аккаунта Xiaomi. Вводим почту, затем пароль и на выборе сервера жмем enter. В этом случае будут показаны все ваши устройства на всех серверах, если вы пользовались разными. Например, устройства Yeelight скрипт распознал у меня в ru сегменте.

Как видно на скриншоте, устройства удобно разбиты на блоки, в которых есть токен и даже ip адрес в локальной сети. Очень удобно. Теперь переходим в Home Assistant и устанавливаем Xiaomi Miot Auto из HACS или вручную, если вы этого еще не сделали.

Далее переходим в Настройки > Интеграции и жмем кнопку Добавить интеграцию. Выбираем из списка Xiaomi Miot Auto

На следующем этапе будет предложен выбор — использовать локальную интеграцию с токеном или облачную с Mi аккаунтом. Выбираем первый вариант — Add device using host/token

Теперь вводим данные нужного нам устройства для добавления.

Всё, модуль реле добавлен. Можно выбрать помещение, переименовать и добавить в карточку lovelace.

Управляется моментально, локально все таки. Из плюсов — если модуль отключен, то статус меняется на Недоступно. То же самое касается ручного переключения с помощью кнопки на устройстве, статус обновляется. Только интервал обновления ставьте поменьше, чтобы быстрее узнавать статус в Home Assistant.

На странице интеграции на Github расписаны очень интересные устройства, включая устройства климата, умные шторы, камеры и прочее. Было бы очень занимательно проверить некоторые из них в ближайшем будущем.
Источник: kvvhost.ru
Зональная уборка Xiaomi Vacuum 1S в Home Asisstant v2

- Во первых я немного поменял у себя концепцию уборки
- Во вторых интеграция Xiaomi Miio немного поменялась, ранее доставал сенсоры из атрибутов в ноябре или декабре они стали сенсорами.
- В третьих я наконец таки сделал карту для пылесоса в Home Assistant
- В четвертых добавил карточку Vacuum Card
Ссылку на мой пример прикрепляю lovelace
Для построения такой карточки необходимы следующие интеграции
- vacuum-card
- xiaomi-vacuum-map-card
- xiaomi_cloud_map_extractor
- multiple-entity-row
В стандартной интеграции Xiaomi Miio видим следующие сенсоры

Определяем ID комнат
На данный момент есть достаточно много способов получить ID, я буду рассматривать самые простые и быстрые варианты. Мне нравятся 2 способа
- Xiaomi Gateway 3 for Home Assistant — Самый простой способ
- Xiaomi Cloud Map Extractor



Добавляем стандартную интеграцию через меню добавить интеграцию
вводим учетные данные от MiHome и сущность vacuum добавляется автоматически.

В конфигурационном файле configuration.yaml включаем поддержку питон скриптов.
Помимо включения python скриптов нужно создать папку в корне » /config/python_script «.
В созданной папке /config/python_script нужно создать файл » xiaomi.py «. В квадратных скобках указываем полученные id комнат.
args = params_lera = hass.states.get(«input_boolean.lera_vacuum»).state params_artem = hass.states.get(«input_boolean.artem_vacuum»).state params_kitchen = hass.states.get(«input_boolean.kitchen_vacuum»).state params_koridor = hass.states.get(«input_boolean.koridor_vacuum»).state params_spalnya = hass.states.get(«input_boolean.spalnya_vacuum»).state params_zal = hass.states.get(«input_boolean.zal_vacuum»).state if params_lera == ‘on’: args[«params»].extend([20]) if params_artem == ‘on’: args[«params»].extend([19]) if params_kitchen == ‘on’: args[«params»].extend([16]) if params_koridor == ‘on’: args[«params»].extend([17]) if params_spalnya == ‘on’: args[«params»].extend([18]) if params_zal == ‘on’: args[«params»].extend([21]) hass.services.call(‘vacuum’, ‘send_command’, args)
Для Алисы отдельные 6 скриптов для уборки указанных комнат.
Также не стоит забывать, что у пылесоса есть счетчики до обслуживания и замены расходных материалов. После замены и очистки просто запускаем необходимый скрипт.
Автоматизации, опять же, каждый может делать на свой вкус. Мне, к примеру, не нужно запускать пылесос пока все на работе или по расписанию. Кому-то это важно. Мне важно, чтобы я мог сказать Алисе — уберись на кухне, либо зайти в приложение HA и выбрать необходимые комнаты для уборки, что собственно и сделал.
Но еще есть один важный и актуальный вопрос, возможно кто-то из читателей сможет на него ответить. Вопрос: «Если отключатся сервера Mihome, сможет ли пылесос определить id комнат, ну т.е хранятся они в облаке или в пылесосе локально?» Они хранятся локально. Без интернета все прекрасно работает
Карта пылесоса

Ставим интеграцию xiaomi_cloud_map_extractor, инструкция в репозитории есть не буду углубляться.
В файле конфигурации прописываем доступ к MiHome и остальные опции о них можно почитать в репозитории прикладываю свой пример /config/configuration.yaml
Ставим, правим конфиг, перезагружаем.
host: ip-адрес token: token от пылесоса, получаем в интеграции Xiaomi Gateway 3 username: логин MiHome password: пароль от MiHome country: «cn» — Страна которая указана в михоум
В итоге должна появиться сущность камеры с кучей данных

Если данных мало то неправильный токен, страна, логин либо пароль
В карточке указаны мои ID комнат и координаты кнопок для уборки комнат. Необходимо будет указать свои.
Для того чтобы не использовать python_script, вместо него нам потребуется простая автоматизация:
alias: Уборка выбранных комнат — Автоматизацией description: «» trigger: — platform: state entity_id: input_boolean.start_vacuum_clean_zone to: «on» condition: — condition: or conditions: — condition: state entity_id: input_boolean.lera_vacuum state: «on» — condition: state entity_id: input_boolean.artem_vacuum state: «on» — condition: state entity_id: input_boolean.kitchen_vacuum state: «on» — condition: state entity_id: input_boolean.koridor_vacuum state: «on» — condition: state entity_id: input_boolean.spalnya_vacuum state: «on» — condition: state entity_id: input_boolean.zal_vacuum state: «on» action: — service: vacuum.send_command data: command: app_segment_clean params: > > target: entity_id: vacuum.xiaomi_vacuum_cleaner — service: notify.telegram data: title: Внимание! message: >- Пылесос начал уборку в комнатах: — Кухня — Комната Артема — Коридор — Комната Леры — Спальня — Зал initial_state: true
Также переделал автоматизацию уведомлений от пылесоса
Источник: telegra.ph
Добавляем робот-пылесос Xiaomi Vacuum Cleaner 1C в Home Assistant
В данном уроке рассмотрим процесс добавления робота-пылесоса Xiaomi Vacuum Cleaner 1C в Home Assistant. И первое, что для этого потребуется – получить токен устройства. Проще всего это сделать установив модифицированный Mi Home от Vevs (подходит только для Android смартфонов). В данном способе найти токен в Mi Home можно зайдя в плагин устройства и перейдя по пути ‘’дополнительные настройки” – “информация о сети”.
Добавление Xiaomi 1C в Home Assistant
Для добавления пылесоса в Home Assistant требуется установить стороннюю интеграцию. Для этого лучше всего использовать компонент HACS, про установку которого я рассказывал ранее.
Добавление нужной интеграции с помощью HACS выглядит следующим образом:
- Заходим в HACS и переходим в раздел “Интеграции”.
- Нажимаем на три точки в правом верхнем углу и выбираем “Пользовательские репозитории”.

- В качестве категории выбираем “интеграция” и прописываем путь https://github.com/Concentricc/xiaomi_vacuum/
- Сразу же появится новая интеграция, которую нужно установить.

- Перезапускаем сервер после установки.
Если же Вы по какой-то причине не используете HACS, то интеграцию можно установить вручную, скопировав папку (ссылка на нее в пункте 3) xiaomi_vacuum и все находящиеся в ней файлы в папку /config/custom_components (необходимо создать).
Теперь можно добавить Xiaomi 1C в Home Assistant. Для этого достаточно в configuration.yaml прописать:
vacuum: — platform: xiaomi_vacuum host: IP адрес, не забудьте сделать его статическим в роутере token: токен name: VacuumMop
И желательно добавить friendly name в customize.yaml (поменяйте только имя сущности на свое):
#Пылесос vacuum.vacuummop: friendly_name: Пылесос
Далее сохраняем конфигурацию, проверяем ее “настройки –> сервер –> начать проверку” и перезапускаем Home Assistant. После перезагрузки пылесос появится в общем списке объектов.

Добавление карточки робота-пылесоса в Lovelace
Для того, чтобы добавить карточку, переходим в HACS –> Пользовательский интерфейс и нажимаем “Explore custom:vacuum-card» entity: vacuum.vacuummop stats: default: — attribute: filter_life_level unit: ‘%’ subtitle: Фильтр — attribute: side_brush_life_level unit: ‘%’ subtitle: Боковая щетка — attribute: main_brush_life_level unit: ‘%’ subtitle: Основная щетка cleaning: — attribute: cleaned_area unit: м2 subtitle: Убрано — attribute: cleaning_time unit: минут subtitle: Времени прошло
Особо описывать по коду тут нечего, все должно быть понятно. Есть default и cleaning. Первое – что отображается в режиме ожидания, второе – в режиме уборки.

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

Yeelight

10.10.2020
Дом с Алисой – приложение от Яндекса для умного дома

20.03.2022
Установка Xiaomi Mi Home на Windows 10

27.09.2020
Установка HACS в Home Assistant OS

15.04.2021
Настройка Home Assistant: начало. File Editor. Настройка интерфейса

02.01.2021
Источник: smarthomeinfo.ru
