Clean main branch
This commit is contained in:
@@ -1,437 +0,0 @@
|
||||
# взято тут https://sprut.ai/article/odin-iz-variantov-upravleniya-pylesosom-1c-stytj01zhm-dreame-vacuum-mc1808-iz-home-assistant
|
||||
select_vacuum_clean_rooms:
|
||||
|
||||
xiaomi_miot:
|
||||
language: ru
|
||||
translations:
|
||||
# Global dictionary
|
||||
'强劲': 'Турбо'
|
||||
'标准': 'Стандартный'
|
||||
'节能': 'Средний'
|
||||
'关': 'Бесшумный'
|
||||
'低': 'Низкий'
|
||||
'中': 'Средний'
|
||||
'高': 'Высокий'
|
||||
'Sweep': 'Пылесос'
|
||||
'Sweep And Mop': 'Пылесос и влажная уборка'
|
||||
'Mop': 'Влажная уборка'
|
||||
'Global': 'Авто'
|
||||
'Edge': 'Очистка углов'
|
||||
'Point': 'Точечная'
|
||||
'Remote': 'Дистанционная'
|
||||
'Mi Robot Vacuum-Mop 2 Lite Robot Cleaner Режим': 'Режим уборки'
|
||||
'Mi Robot Vacuum-Mop 2 Lite Robot Cleaner Sweep Type': 'Вид уборки'
|
||||
'Mi Robot Vacuum-Mop 2 Lite sweep water_state': 'Уровень воды'
|
||||
'starting': 'Начало уборки'
|
||||
'charger disconnected': 'Зарядное устройство отключено'
|
||||
'idle': 'Ожидание'
|
||||
'remote control active': 'Включено управление через пульт'
|
||||
'cleaning': 'Уборка'
|
||||
'returning home': 'Возвращение на базу'
|
||||
'manual mode': 'Ручной режим'
|
||||
'charging': 'Зарядка'
|
||||
'charging problem': 'Проблема с зарядкой'
|
||||
'paused': 'Пауза'
|
||||
'spot cleaning': 'Уборка точки'
|
||||
'error': 'Ошибка'
|
||||
'shutting down': 'Выключение'
|
||||
'updating': 'Обновление'
|
||||
'docking': 'Остановка у базы'
|
||||
'going to target': 'Направление до точки'
|
||||
'zoned cleaning': 'Уборка зоны'
|
||||
'segment cleaning': 'Уборка'
|
||||
'emptying the bin': 'Очистка бака'
|
||||
'charging complete': 'Зарядка завершена'
|
||||
'device offline': 'Устройство не в сети'
|
||||
'Sweeping and Mopping': 'Пылесосит и моет полы'
|
||||
|
||||
#======================================================================================================================
|
||||
input_boolean:
|
||||
|
||||
room_vacuum:
|
||||
name: "Комната уборка"
|
||||
lobby_vacuum:
|
||||
name: "Прихожая уборка"
|
||||
hallway_vacuum:
|
||||
name: "Коридор уборка"
|
||||
bathroom_vacuum:
|
||||
name: "Ванная уборка"
|
||||
kitchen_vacuum:
|
||||
name: "Кухня уборка"
|
||||
|
||||
#======================================================================================================================
|
||||
group:
|
||||
all_rooms_for_vac_clean:
|
||||
name: All rooms for vacuum clean
|
||||
entities:
|
||||
- input_boolean.room_vacuum
|
||||
- input_boolean.lobby_vacuum
|
||||
- input_boolean.hallway_vacuum
|
||||
- input_boolean.bathroom_vacuum
|
||||
- input_boolean.kitchen_vacuum
|
||||
|
||||
#======================================================================================================================
|
||||
|
||||
template:
|
||||
# Сенсор просматривает нашу группу на предмет включенных input boolean,
|
||||
# затем забирает их названия, записывает их в строку, разделяя запятой,
|
||||
# и, наконец, заменяет каждое имя в списке соотвестовующим набором цифр в квадратных скобках.
|
||||
- sensor:
|
||||
- default_entity_id: sensor.select_rooms_for_clean
|
||||
icon: mdi:vacuum
|
||||
name: Выбранные комнаты для пылесоса
|
||||
state: "{% set room = expand('group.all_rooms_for_vac_clean') | selectattr('state',
|
||||
'eq', 'on') | map(attribute='entity_id') | list | join(',') | replace('input_boolean.room_vacuum','[3,1,3,3,1]')
|
||||
| replace('input_boolean.lobby_vacuum','[2,1,3,3,1]') | replace('input_boolean.hallway_vacuum','[5,1,3,3,1]')
|
||||
| replace('input_boolean.bathroom_vacuum','[1,1,3,3,1]') | replace('input_boolean.kitchen_vacuum','[4,1,3,3,1]')
|
||||
%}\n {\"selects\":[{{room}}]}"
|
||||
|
||||
# Сенсор выаода можности всасывания для обходя ограничения редактора карточки
|
||||
- default_entity_id: sensor.select_vacuum_fan_speed
|
||||
icon: mdi:vacuum
|
||||
name: Выбранная мощность всасывания
|
||||
state: '{{ state_attr(''vacuum.dreame_mc1808_044c_robot_cleaner_2'', ''fan_speed'')}}'
|
||||
|
||||
# Сенсор выаода уровня воды для обходя ограничения редактора карточки
|
||||
- default_entity_id: sensor.select_water_vacum
|
||||
icon: mdi:vacuum
|
||||
name: Выбранный уровень воды
|
||||
state: '{{ state_attr(''vacuum.stytj01zhm'', ''water_level'')}}'
|
||||
|
||||
# Сенсор состояния бака с водой
|
||||
- default_entity_id: sensor.vacuum_water_box
|
||||
icon: mdi:vacuum
|
||||
name: Сенсор состояния бака с водой
|
||||
state: '{{state_attr(''vacuum.dreame_mc1808_044c_robot_cleaner_2'',''clean.water_box'')}}'
|
||||
|
||||
#======================================================================================================================
|
||||
#Скрипт запуска уборки
|
||||
script:
|
||||
clean_select_rooms:
|
||||
alias: VCM|Убрать выбранные комнаты
|
||||
sequence:
|
||||
- service: xiaomi_miot.call_action
|
||||
data_template:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
aiid: 1
|
||||
params:
|
||||
- piid: 1
|
||||
value: 18
|
||||
- "{{ {'piid':21, 'value': states('sensor.select_rooms_for_clean') } }}"
|
||||
force_params: true
|
||||
#Условия по кторым утсанавливается мощность всасывания и полива
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_vacuum_fan_speed
|
||||
state: Турбо
|
||||
sequence:
|
||||
- service: script.set_fanspeed_vacum_turbo
|
||||
metadata: {}
|
||||
data: {}
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_vacuum_fan_speed
|
||||
state: Средний
|
||||
sequence:
|
||||
- service: script.set_fanspeed_vacum_strong
|
||||
data: {}
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_vacuum_fan_speed
|
||||
state: Стандартный
|
||||
sequence:
|
||||
- service: script.set_fanspeed_vacum_standart
|
||||
data: {}
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_vacuum_fan_speed
|
||||
state: Тихий
|
||||
sequence:
|
||||
- service: script.set_fanspeed_vacum_silent
|
||||
data: {}
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_water_vacum
|
||||
state: Low
|
||||
sequence:
|
||||
- service: script.set_water_vacum_low
|
||||
data: {}
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_water_vacum
|
||||
state: Med
|
||||
sequence:
|
||||
- service: script.set_water_vacum_middle
|
||||
data: {}
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: sensor.select_water_vacum
|
||||
state: High
|
||||
sequence:
|
||||
- service: script.set_water_vacum_hight
|
||||
data: {}
|
||||
|
||||
# Смена уровня воды
|
||||
set_water_vacum_hight:
|
||||
alias: VCM|Смена уровня воды пылесос высокий
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 20
|
||||
value: 3
|
||||
|
||||
set_water_vacum_middle:
|
||||
alias: VCM|Смена уровня воды пылесос средний
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 20
|
||||
value: 2
|
||||
|
||||
set_water_vacum_low:
|
||||
alias: VCM|Смена уровня воды пылесос низкий
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 20
|
||||
value: 1
|
||||
|
||||
# Смена мощности всасывания
|
||||
|
||||
set_fanspeed_vacum_silent:
|
||||
alias: VCM|Смена мощности всасывания пылесос бесшумный
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 6
|
||||
value: 0
|
||||
|
||||
set_fanspeed_vacum_standart:
|
||||
alias: VCM|Смена мощности всасывания пылесос стандартный
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 6
|
||||
value: 1
|
||||
|
||||
set_fanspeed_vacum_strong:
|
||||
alias: VCM|Смена мощности всасывания пылесос интенсивный
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 6
|
||||
value: 2
|
||||
|
||||
set_fanspeed_vacum_turbo:
|
||||
alias: VCM|Смена мощности всасывания пылесос турбо
|
||||
sequence:
|
||||
- service: xiaomi_miot.set_miot_property
|
||||
metadata: {}
|
||||
data:
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
siid: 18
|
||||
piid: 6
|
||||
value: 3
|
||||
|
||||
#======================================================================================================================
|
||||
# автоматизацию, которая сбрасывает булеаны после окончания уборки
|
||||
automation:
|
||||
- alias: 'VCM|reset_select_rooms'
|
||||
id: Reset select rooms
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
to: 'docked'
|
||||
condition: []
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id:
|
||||
- input_boolean.room_vacuum
|
||||
- input_boolean.lobby_vacuum
|
||||
- input_boolean.hallway_vacuum
|
||||
- input_boolean.bathroom_vacuum
|
||||
- input_boolean.kitchen_vacuum
|
||||
|
||||
- alias: VCM|button_start_clean
|
||||
description: ""
|
||||
trigger:
|
||||
- platform: device
|
||||
domain: mqtt
|
||||
device_id: 975fb5853727f1fa4279bac09fd7fb6b
|
||||
type: action
|
||||
subtype: hold_right
|
||||
discovery_id: 0x00158d0006c6bca8 action_hold_right
|
||||
condition:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
state: docked
|
||||
- condition: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
state: idle
|
||||
action:
|
||||
- device_id: 885672257bd73c7492a4ba8b72b83699
|
||||
domain: vacuum
|
||||
entity_id: f9d147842b81972de04c1be4dfd368f3
|
||||
type: clean
|
||||
mode: single
|
||||
|
||||
- alias: VCM|button_stop_clean
|
||||
description: ""
|
||||
trigger:
|
||||
- platform: device
|
||||
domain: mqtt
|
||||
device_id: 975fb5853727f1fa4279bac09fd7fb6b
|
||||
type: action
|
||||
subtype: hold_right
|
||||
discovery_id: 0x00158d0006c6bca8 action_hold_right
|
||||
condition:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
state: cleaning
|
||||
- condition: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
state: error
|
||||
- condition: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
state: paused
|
||||
action:
|
||||
- device_id: 885672257bd73c7492a4ba8b72b83699
|
||||
domain: vacuum
|
||||
entity_id: f9d147842b81972de04c1be4dfd368f3
|
||||
type: dock
|
||||
mode: single
|
||||
|
||||
#======================================================================================================================
|
||||
# Уведомления Telegram
|
||||
#======================================================================================================================
|
||||
- alias: "ntf|tg|VCM|clean_water_box_off"
|
||||
id: telegram_ntf_vcm_water_box
|
||||
description: "Напоминание о неснятом баке с водой"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: sensor.vacuum_water_box
|
||||
to: "1"
|
||||
for:
|
||||
hours: 1
|
||||
minutes: 0
|
||||
seconds: 0
|
||||
action:
|
||||
- repeat:
|
||||
sequence:
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
target: -1002006010424
|
||||
message: |
|
||||
💧 ❗ Напоминание: Снимите бак с водой с пылесоса!
|
||||
Он установлен уже более часа.
|
||||
inline_keyboard:
|
||||
- '🌀 Управление пылесосом:/vcm_control'
|
||||
- '🔙 Главное меню:/menu_back, 🗑️ Прочитано:/menu_hide'
|
||||
- delay:
|
||||
hours: 3
|
||||
while:
|
||||
- condition: state
|
||||
entity_id: sensor.vacuum_water_box
|
||||
state: "1"
|
||||
|
||||
- alias: "ntf|tg|VCM|vacuum_clean_finish"
|
||||
id: telegram_ntf_vcm_finish
|
||||
description: "Уведомление об окончании уборки"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
from: 'cleaning'
|
||||
to: 'returning'
|
||||
action:
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
target: -1002006010424
|
||||
message: |
|
||||
✅ Пылесос завершил уборку
|
||||
|
||||
🕒 Завершена в: {{ states('sensor.time') }}
|
||||
⏱️ Затрачено времени: {{ state_attr('vacuum.stytj01zhm', 'cleaning_time') | default(0) }} мин
|
||||
🏠 Убрано: {{ state_attr('vacuum.stytj01zhm', 'cleaning_area') | default(0) }} м²
|
||||
🔋 Заряд: {{ state_attr('vacuum.dreame_mc1808_044c_robot_cleaner_2', 'battery_level') | default(0) }}%
|
||||
|
||||
{% if state_attr('vacuum.dreame_mc1808_044c_robot_cleaner_2', 'clean.water_box') | int(0) == 1 %}
|
||||
💧 ❗ Внимание: Бак с водой всё ещё установлен!
|
||||
{% else %}
|
||||
💧 Бак с водой: Снят
|
||||
{% endif %}
|
||||
inline_keyboard:
|
||||
- '🌀 Управление пылесосом:/vcm_control, 🔙 Главное меню:/menu_back'
|
||||
- '🗑️ Прочитано:/menu_hide'
|
||||
|
||||
- alias: "ntf|tg|VCM|vacuum_error"
|
||||
id: telegram_ntf_vcm_error
|
||||
description: "Уведомление об ошибке пылесоса"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: vacuum.dreame_mc1808_044c_robot_cleaner_2
|
||||
to: 'error'
|
||||
action:
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
target: -1002006010424
|
||||
message: |
|
||||
{%- set raw = state_attr('vacuum.dreame_mc1808_044c_robot_cleaner_2', 'vacuum.fault') -%}
|
||||
{%- set code = raw | int(0) if raw not in ['unknown', 'unavailable', None] else 0 -%}
|
||||
{%- set errors = {
|
||||
0: 'Нет ошибки',
|
||||
1: 'Пылесос подняли (на весу)',
|
||||
2: 'Щётка заблокирована',
|
||||
3: 'Ошибка мотора щётки',
|
||||
4: 'Колесо заблокировано',
|
||||
5: 'Ошибка датчиков высоты',
|
||||
6: 'Ошибка колеса',
|
||||
7: 'Ошибка контейнера для пыли',
|
||||
8: 'Ошибка лидара (вращение сенсора)',
|
||||
9: 'Ошибка бампера (столкновение)',
|
||||
10: 'Ошибка навигации',
|
||||
11: 'Ошибка зарядки',
|
||||
12: 'Что-то намоталось на основную щётку',
|
||||
13: 'Ошибка батареи',
|
||||
14: 'Ошибка Wi-Fi модуля',
|
||||
15: 'Ошибка бака с водой',
|
||||
16: 'Ошибка привода'
|
||||
} -%}
|
||||
|
||||
{%- if code == 0 -%}
|
||||
✅ Ошибка пылесоса устранена
|
||||
{%- else -%}
|
||||
❗ Ошибка пылесоса: {{ errors.get(code, 'Неизвестная ошибка (код ' ~ raw ~ ')') }}
|
||||
{%- endif %}
|
||||
inline_keyboard:
|
||||
- '🌀 Управление пылесосом:/vcm_control, 🔙 Главное меню:/menu_back'
|
||||
- '🗑️ Прочитано:/menu_hide'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user