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