Подключение пылесоса Xiaomi к Home Assistant

Само устройство уже “интегрировано” (имеет поддержку) в Home Assistant. Поэтому все будет весьма и весьма просто. Я буду подключать самую первую версию девайса. Скорее и вторая также будет … без мытарств подключаться. Нам потребуется IP адрес пылика и его токен. Будем считать, что эти две отмычки у вас уже есть … поэтому двигаемся далее.

configuratiom.yaml добавялем наш отмычки (IP адрес и токет пылесоса).

vacuum:
  - platform: xiaomi_miio
    host: 192.168.1.22
    token: 435463483463584b62644a3777614f7a

sensors.yaml

в platform добавляем все наши сенсоры. эти сенсоры будут собирать нам данные для дальнейшей обработки.

- platform: template
  sensors:
    vacuum_cleaner_error_sensor:
      friendly_name: Vacuum Cleaner Error Sensor
      value_template: >-
        {% if states.vacuum.xiaomi_vacuum_cleaner.attributes.error is defined %}
          {{states.vacuum.xiaomi_vacuum_cleaner.attributes.error}}
        {% else %}
          No Error
        {% endif %}

- platform: template
  sensors:
    vacuum_cleaner_status_sensor:
      friendly_name: Vacuum Cleaner Status Sensor
      value_template: >-
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.status }}

- platform: template
  sensors:
    vacuum_cleaner_battery_level:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.battery_level }}
      friendly_name: Battery Level
      unit_of_measurement: '%'

    vacuum_cleaner_cleaned_area:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.cleaned_area }}
      friendly_name: Cleaned Area
      unit_of_measurement: 'm²'

    vacuum_cleaner_status:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.status }}
      friendly_name: Status

    vacuum_cleaner_cleaning_time:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.cleaning_time }}
      friendly_name: Cleaning Time
      unit_of_measurement: 'min'

    vacuum_cleaner_main_brush_left:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.main_brush_left }}
      friendly_name: Main Brush Left
      unit_of_measurement: 'Hrs'

    vacuum_cleaner_side_brush_left:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.side_brush_left }}
      friendly_name: Side Brush Left
      unit_of_measurement: 'Hrs'

    vacuum_cleaner_filter_left:
      value_template: >
        {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.filter_left }}
      friendly_name: Filter Left
      unit_of_measurement: 'Hrs'

- platform: template
  sensors:
    vacuum_status:
      friendly_name: "Vacuum - Status"
      value_template: "Status: {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.status }}"

- platform: template
  sensors:
    vacuum_battery:
      friendly_name: "Vacuum - Battery"
      value_template: "Battery: {{ states.vacuum.xiaomi_vacuum_cleaner.attributes.battery_level }}"
      device_class: battery
      unit_of_measurement: '%'

делаем рестарт нашего Home Assistant сервиса и настраиваем далее автоматизацию.

automation.yaml (настраиваем по своему усмотрению)

в моем случае : Вторник / Четверг / Суббота в 18:30 начинаем уборку + оповещения обо всех его действиях и проблем в телеграм.

- alias: 'Vacuum Time Clean'
  initial_state: 'on'
  trigger:
    platform: time
    at: '18:30'
  condition:
    condition: and
    conditions:
      - condition: time
        weekday:
          - tue
          - thu
          - sat
  action: 
    - service: vacuum.start
      entity_id: vacuum.xiaomi_vacuum_cleaner

- alias: 'Vacuum Cleaning'
  trigger:
    platform: state
    entity_id: vacuum.xiaomi_vacuum_cleaner
    to: 'cleaning'
  action:
     - service: notify.telegram
       data:
        message: 'Пылесос начал уборку'

- alias: 'Vacuum Returning'
  trigger:
    platform: state
    entity_id: vacuum.xiaomi_vacuum_cleaner
    to: 'returning'
  action:
     - service: notify.telegram
       data:
#         message: 'Пылесос завершил уборку и возвращается на станцию. Время уборки: {{states.sensor.vacuum_cleaner_cleaning_time.state}} минут. Общая площадь уборки: {{sensor.vacuum_cleaner_cleaned_area}} m²' не работает пока.
         message: 'Пылесос завершил уборку и возвращается на станцию'
- alias: 'Vacuum Docked'
  trigger:
    platform: state
    entity_id: vacuum.xiaomi_vacuum_cleaner
    to: 'docked'
  action:
     - service: notify.telegram
       data:
        message: 'Пылесос прибыл на станцию и заряжается'

- alias: 'Vacuum Cleaner Error'
  trigger:
    - platform: state
      entity_id: sensor.vacuum_cleaner_status_sensor
      to: 'Error'
    - platform: state
      entity_id: sensor.vacuum_cleaner_status_sensor
      to: 'In Error'
    - platform: state
      entity_id: sensor.vacuum_cleaner_status_sensor
      to: 'Charging Error'
  action:
    - service: notify.telegram
      data:
        message: >-
          {% if is_state('sensor.vacuum_cleaner_error_sensor', 'No Error')  %}
            {{states.sensor.vacuum_cleaner_status_sensor.state}}
          {% else %}
            {{states.sensor.vacuum_cleaner_error_sensor.state}}
          {% endif %}

- alias: Vacuum Cleaner Error Solved
  trigger:
    - platform: state
      entity_id: sensor.vacuum_cleaner_error_sensor
      to: 'No Error'
  action:
    - service: notify.telegram
      data:
        message: Пылесос вне опасности

на выходе имеем вот такое управление (если ткнуть на надпись пылесоса) то увидим панель управления из Home Assistant. Настраиваем ее и сохраняем. Далее с такими настройками (по умолчанию), будет запускаться по автоматизации наш пылик.

Давайте теперь все данные наших сенсоров от нашего пылики соберем в одну группу и выделим для него вкладку Пылесос. Т.е. приведем к такому виду в HA

groups.yaml

vacuum:
  view: yes
  name: Пылесос
  entities:
    - group.vacuum_p_all

vacuum_p_all:
  name: Статусы
  entities:
    - sensor.vacuum_status
    - sensor.vacuum_cleaner_error_sensor
    - sensor.vacuum_cleaner_status_sensor
    - sensor.vacuum_cleaner_battery_level
    - sensor.vacuum_cleaner_cleaned_area
    - sensor.vacuum_cleaner_status
    - sensor.vacuum_cleaner_cleaning_time
    - sensor.vacuum_cleaner_main_brush_left
    - sensor.vacuum_cleaner_side_brush_left
    - sensor.vacuum_cleaner_filter_left
    - sensor.vacuum_cleaner_battery

customize.yaml (настриаваем все сами под себя). Я привел пример как можно заменить sensor.vacuum_cleaner_battery_level на удобное название Уровень заряда

vacuum.xiaomi_vacuum_cleaner:
  friendly_name: Пылесос
sensor.vacuum_cleaner_battery_level:
  friendly_name: Уровень заряда

Все. Теперь у нас появился еще 1 сенсор – sensor.vacuum_cleaner_battery_level, который мы можем использовать в теме Подсчет оставшегося заряда на батарейках устройств Xiaomi + уведомления. Вариант для самых продвинутых

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

9 комментариев
Популярные
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
Vovik
Vovik
20.01.2020 23:36

Может кому-то пригодится сообщение об окончании уборки:
message: “Пылесос завершил уборку и возвращается на станцию. Время уборки: {{ states (‘sensor.vacuum_cleaner_cleaning_time’) }} минут. Общая площадь уборки: {{states(‘sensor.vacuum_cleaner_cleaned_area’)}} m²”

Николай
Николай
21.06.2020 18:55

Комментарий для таких же невнимательных как я. Нужно обратить внимание на то, как определился в HA пылесос. Например у меня он определился как vacuum.mi_robotСоответственно вместо {{ states.vacuum.XIAOMI_VACUUM_CLEANER.attributes.cleaning_count }}Мне нужно было указать {{ states.vacuum.VACUUM.MI_ROBOT.attributes.cleaning_count }}

Николай
Николай
21.06.2020 23:37

на выходе имеем вот такое управление (если ткнуть на надпись пылесоса) то увидим панель управления из Home Assistant. “
Подскажите пожалуйста, как-нибудь можно вывести это не отдельной панелью управления, а через lovelace например на отдельной вкладке?

Jeff Scrum
Jeff Scrum
06.01.2021 11:08

Мало ли кто-то наткнется. Для того чтобы отображать время уборки или площадь можно вытащить их значения из атрибутов:
“Время уборки – {{ states.vacuum.xiaomiroborock.attributes.cleaning_time }} минут. Убрано – {{ states.vacuum.xiaomiroborock.attributes.cleaned_area }} m².”
где “vacuum.xiaomiroborock” – имя пылесоса в HA

iCredo7
iCredo7
07.01.2021 11:38

Ох, народ. Специально зарегистрировался, чтобы написать комментарий. Возможно, это сэкономит кому – то целый день.
По этой инструкции мучался весь день подключая Xiaomi Vacuum Cleaner LDS(
STYJ02YM) – пылесос просто отображался неактивным. Перерыл весь интернет, ковырялся в пакетах python – ничего не помогало. Случайно наткнулся на решение. https://github.com/nqkdev/home-assistant-vacuum-styj02ymДелается все буквально за пять минут.

iCredo7
iCredo7
07.01.2021 11:40

Ох, народ. Специально зарегистрировался, чтобы написать комментарий. Возможно, это сэкономит кому – то целый день.
По этой инструкции мучался весь день подключая Xiaomi Vacuum Cleaner LDS(
STYJ02YM) – пылесос просто отображался неактивным. Перерыл весь интернет, ковырялся в пакетах python – ничего не помогало. Случайно наткнулся на решение. https://github.com/nqkdev/home-assistant-vacuum-styj02ym
Делается все буквально за пять минут.

Алексей
Алексей
17.01.2021 18:06

все делаю по инструкции, но мой пылесос пишет, что он не доступен…..куда копать?

9
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x