Наводимо лад в «розумному домі»: налаштування Vacuum Card для пилосмока в Home Assistant
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.
Привіт, на зв’язку Богдан Свердлюк. Я люблю «розумний будинок» і розповідаю про нього українською. У цьому посібнику розглянемо, як легко налаштувати багатофункціональну картку пилосмока у Home Assistant на прикладі Xiaomi. російський військовий корабель іди нах***!
Картка Vacuum Card — це елемент інтерфейсу Home Assistant для пилосмоків різних брендів: Roborock, Mijia, Xiaomi, Roomba, Ecovacs та інших. Вона потрібна для зручного доступу до панелі інструментів пилосмока і перегляду статистики. Я налаштовуватиму її на прикладі Mi robot vacuum v1. Інтеграція робота та картка працюють одночасно з Mi Home.
Встановлення
За замовчуванням в Home Assistant на картку пилосмока потрібно натиснути ще раз, щоб отримати доступ до панелі інструментів. Це не зручно. Український розробник і супроводжувач відкритого коду Денис Довгань створив анімовану картку, яка відображає стан і дозволяє контролювати робота.
Окремо хочу зазначити, що кожен проєкт Дениса на Github має такий банер. Як на мене, це відповідально. росія понесе покарання за свої злочини.
1. Для картки необхідно встановити HACS (Home Assistant Community Store). Це такий собі агрегатор неофіційних інтеграцій та елементів інтерфейсу.
2. В HACS перейдіть у розділ Frontend >> Explore & Download repositories введіть Vacuum Card та завантажте його.
3. На дашборді (Lovelace) натисніть три крапки у верхньому лівому кутку >> Налаштувати зведення >> знизу натиснути кнопку додати картку та оберіть картку «Пилосос».
4. У конфігурації у рядку Entity впишіть назву свого пилосмока. Вона завжди починається з vacuum. Автодоповнення допоможе вам вказати назву правильно.
В результаті отримуємо картку, де можна почати прибирання, поставити на паузу, відправити пилосмок на базу, переглядати рівень заряду та змінювати потужність.
Статистика
Можна переглядати статистику будь-яких сенсорів пилосмока. Для цього я переробив приклад зі сторінки проєкту. Замініть vacuum.archik на назву свого приладу. Назву сенсорів можна переглянути в інтеграції Xiaomi Miio.
Вам не обов’язково мати багато статистики. Оберіть лише те, що вас цікавить. Наприклад час роботи фільтра покаже, коли його потрібно замінити.
type: custom:vacuum-card entity: vacuum.archik actions: start: service: vacuum.start stats: default: - entity_id: sensor.archik_filter_left value_template: '{{ (value | float(0) / 3600) | round(1) }}' unit: годин subtitle: Фільтр - entity_id: sensor.archik_side_brush_left value_template: '{{ (value | float(0) / 3600) | round(1) }}' unit: годин subtitle: Бічна Щітка - entity_id: sensor.archik_main_brush_left value_template: '{{ (value | float(0) / 3600) | round(1) }}' unit: годин subtitle: Головна щітка - entity_id: sensor.archik_sensor_dirty_left value_template: '{{ (value | float(0) / 3600) | round(1) }}' unit: годин subtitle: Сенсори
Якщо вставляти текст конфігурації, можна отримати помилку tab characters must not be used in indentation. Потрібно замінити символи TAB на пробіл. Зробити це можна онлайн.
Value template — це мова шаблонів, що дозволяє виконувати певні дії над отриманими значеннями. До прикладу вище, ми конвертували секунди в години.
Ось інший приклад статистики:
type: custom:vacuum-card entity: vacuum.archik actions: start: service: vacuum.start service_data: entity_id: vacuum.archik stats: default: - entity_id: sensor.archik_last_clean_duration value_template: '{{ (value | float(0) / 60) | round(1) }}' unit: хвилин subtitle: Час прибирання - entity_id: sensor.archik_last_clean_end value_template: '{{ relative_time(as_datetime(states(''sensor.archik_last_clean_end''))) }}' subtitle: Останнє прибирання - entity_id: sensor.archik_last_clean_area value_template: '{{value | round(0) }}' unit: м² subtitle: Прибрана площа
’{{ relative_time(as_datetime(states(’’sensor.archik_last_clean_end’’))) }}’ — показує час, що минув з останнього прибирання.
’{{value | round(0) }}’ — округлює число.
Зоноване прибирання
Можна створити сценарій для прибирання певної кімнати і додати їх на картку у вигляді піктограми. Є два способи отримати зони прибирання:
— отримання номеру кімнати
— отримання координат кімнати
Розглянемо останній варіант. Моя конфігурація Vacuum Card виглядає так:
shortcuts: - name: Прибрати вітальню service: script.clean_living_room icon: mdi:sofa - name: Прибрати кухню service: script.clean_kitchen icon: mdi:silverware-fork-knife
Де script.clean ... це скрипти. Щоб створити скрипт перейдіть в бічне меню >> Конфігурація >> Скрипти >> Додати скрипт. У розділі «Послідовність» оберіть виклик служби xiaomi_miio.vacuum_clean_zone.
Ціллю оберіть сутність свого пилосмока. У розділі Zone вкажіть координати та кількість повторів, збережіть.
Щоб дізнатись назву скрипту в режимі редагування натисніть три крапки у верхньому правому куті >> Інформація >> Налаштування >> Ідентифікатор об’єкта.
Отримання координат кімнати
Є декілька способів дістати координати кімнати, проте найзручнішим для мене виявився той, що передбачає використання Xiaomi Cloud Map Extractor. Для цього:
1. Завантажте Xiaomi Cloud Map Extractor за допомогою HACS (розділ frontend).
2. Додайте до configuration.yaml таку конфігурацію:
camera: - platform: xiaomi_cloud_map_extractor host: 192.168.0.108 token: 33314e674j8c744a317a626d905e4157 username: [email protected] password: password_example colors: color_path: [255, 255, 255] draw: ['all'] map_transformation: scale: 1 trim: top: 20 bottom: 20 left: 20 right: 20 auto_update: true scan_interval: seconds: 600 #10minutes attributes: - calibration_points
де замініть host на ip свого пилосмока;
tocken — токен пристрою, легко отримати за допомогою Cloud Tokens Extractor. Його можна запустити в Home Assistant як python-скрипт або як програму Windows;
username — логін облікового запису Mi Home;
password — пароль облікового запису Mi Home.
3. Перезавантажте Home Assistant:
Після перезавантаження в інтерфейсі з’явиться карта кімнат, але без можливості взаємодії. Для отримання координат потрібно:
- завантажити з HACS картку xiaomi-vacuum-map-card з HACS (розділ frontend);
- додати картку Xiaomi Vacuum Map Card в інтерфейс Home Assistant;
- змінити конфігурацію картки. В мене така:
type: custom:xiaomi-vacuum-map-card entity: vacuum.archik map_source: camera: camera.xiaomi_cloud_map_extractor calibration_source: camera: true map_modes: - template: vacuum_clean_zone - template: vacuum_goto language: uk tap_action: action: fire-dom-event xiaomi_vacuum_map_card: action_handler_id: xiaomi_vacuum_map_card_id_1 action: set_internal_variable variable: variable_1 value: some value vacuum_platform: default map_locked: true two_finger_pan: false
Щоб отримати координати кімнати:
- перейдіть у режим редагування картки;
- натисніть + на картці та виділіть бажану зону;
- натисніть кнопку «скопіювати координати».
Я описав лише частину можливостей картки. Більше — на сторінці проєкту.
Також хочу поділитись посиланням на конфігурацію Home Assistant Дениса. Сподіваюся, це допоможе вам надихнутися на шляху до створення власного розумного дому.
Якщо цей посібник був вам корисний, подякуйте донатом у фонд «Повернись живим».
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів