1ª Versión de la aspiradora
Importada de internet sin configurar
This commit is contained in:
483
packages/pack/aspiradora.yaml
Normal file
483
packages/pack/aspiradora.yaml
Normal file
@@ -0,0 +1,483 @@
|
||||
########################################################################
|
||||
### Vacuum
|
||||
########################################################################
|
||||
vacuum:
|
||||
- platform: xiaomi_miio
|
||||
host: !secret xiaomi_vacuum_ip
|
||||
token: !secret xiaomi_vacuum_token
|
||||
name: Xiaomi Vacuum
|
||||
########################################################################
|
||||
### Sensor
|
||||
########################################################################
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
vacuum_cleaned_area:
|
||||
friendly_name: "Área Limpia"
|
||||
unit_of_measurement: 'm2'
|
||||
value_template: "{{ state_attr('vacuum.xiaomi_vacuum', 'cleaned_area') }}"
|
||||
vacuum_cleaning_time:
|
||||
friendly_name: "Tiempo Limpiando"
|
||||
unit_of_measurement: 'min'
|
||||
value_template: "{{ state_attr('vacuum.xiaomi_vacuum', 'cleaning_time') }}"
|
||||
xiaomi_vacuum_ip:
|
||||
value_template: !secret xiaomi_vacuum_ip
|
||||
vacuum_start_time_weekdays:
|
||||
friendly_name: 'Start Time (weekdays)'
|
||||
value_template: '{{ "%0.02d:%0.02d" | format(states("input_number.vacuum_start_hour_weekdays") | int, states("input_number.vacuum_start_minutes_weekdays") | int) }}'
|
||||
entity_id: input_number.vacuum_start_hour_weekdays
|
||||
vacuum_start_time_weekend:
|
||||
friendly_name: 'Start Time (weekend)'
|
||||
value_template: '{{ "%0.02d:%0.02d" | format(states("input_number.vacuum_start_hour_weekend") | int, states("input_number.vacuum_start_minutes_weekend") | int) }}'
|
||||
entity_id: input_number.vacuum_start_hour_weekend
|
||||
vacuum_status:
|
||||
friendly_name: "Vacuum - State"
|
||||
value_template: "State: {{ states.vacuum.xiaomi_vacuum.attributes.status }}"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_weekdays:
|
||||
friendly_name: "Vacuum - Weekdays"
|
||||
value_template: ""
|
||||
vacuum_weekend:
|
||||
friendly_name: "Vacuum - Weekend"
|
||||
value_template: ""
|
||||
vacuum_battery:
|
||||
friendly_name: "Vacuum - Battery"
|
||||
value_template: "Battery: {{ states.vacuum.xiaomi_vacuum.attributes.battery_level | float | int }}"
|
||||
icon_template: '{{ states.vacuum.xiaomi_vacuum.attributes.battery_icon }}'
|
||||
device_class: battery
|
||||
unit_of_measurement: '%'
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_accessories:
|
||||
friendly_name: "Vacuum - Consumption"
|
||||
value_template: "Consumption"
|
||||
vacuum_operation:
|
||||
friendly_name: "Vacuum - Operations"
|
||||
value_template: "Operations"
|
||||
vacuum_main_brush:
|
||||
friendly_name: "Vacuum - Main Brush"
|
||||
value_template: "Main Brush: {{ states.vacuum.xiaomi_vacuum.attributes.main_brush_left }} h"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_side_brush:
|
||||
friendly_name: "Vacuum - Side Brush"
|
||||
value_template: "Side Brush: {{ states.vacuum.xiaomi_vacuum.attributes.side_brush_left }} h"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_filter:
|
||||
friendly_name: "Vacuum - Filter"
|
||||
value_template: "Filter: {{ states.vacuum.xiaomi_vacuum.attributes.filter_left }} h"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_sensor:
|
||||
friendly_name: "Vacuum - Drawer"
|
||||
value_template: "Drawer: {{ states.vacuum.xiaomi_vacuum.attributes.sensor_dirty_left }} h"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_fan_speed:
|
||||
friendly_name: "Vacuum - Power"
|
||||
value_template: "Power: {{ states.vacuum.xiaomi_vacuum.attributes.fan_speed }}"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_cleaning_time:
|
||||
friendly_name: "Cleaning - Time"
|
||||
value_template: "Cleaning Time: {{ states.vacuum.xiaomi_vacuum.attributes.cleaning_time }}"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
vacuum_cleaned_area:
|
||||
friendly_name: Cleaned Area
|
||||
unit_of_measurement: 'm ²'
|
||||
value_template: "Cleaned - Area {{ states.vacuum.xiaomi_vacuum.attributes.cleaned_area }}"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
|
||||
vacuum_fan_speed_list:
|
||||
friendly_name: "Vacuum - Fan Speed List"
|
||||
value_template: "{{ states.vacuum.xiaomi_vacuum.attributes.fan_speed_list }}"
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
|
||||
# - platform: rest
|
||||
# resource: !secret xiaomi_vacuum_resource_map
|
||||
# name: Vacuum Map url
|
||||
# value_template: 'http://{{states("sensor.xiaomi_vacuum_ip")}}{{value_json.mapsrc}}'
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# Switch #
|
||||
# #
|
||||
#################################################################
|
||||
switch:
|
||||
- platform: template
|
||||
switches:
|
||||
vacuum:
|
||||
friendly_name: "Vacuum"
|
||||
value_template: "{% if is_state('vacuum.xiaomi_vacuum', 'cleaning') %}on{% else %}off{% endif %}"
|
||||
turn_on:
|
||||
service: input_select.select_option
|
||||
entity_id: input_select.vacuum_zone
|
||||
data_template:
|
||||
option: "Home"
|
||||
turn_off:
|
||||
service: vacuum.return_to_base
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
icon_template: mdi:robot-vacuum
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# input Select #
|
||||
# #
|
||||
#################################################################
|
||||
|
||||
input_select:
|
||||
vacuum_fan_speed_list:
|
||||
name: Type of aspiration
|
||||
options:
|
||||
- Silent
|
||||
- Balanced
|
||||
- Turbo
|
||||
- Maximum power
|
||||
|
||||
vacuum_zone:
|
||||
name: Which area to clean?
|
||||
options:
|
||||
- Choose the area
|
||||
- Kitchen #מטבח
|
||||
- Bedroom #פרוזדור
|
||||
- Dining Room ## פינת אוכל
|
||||
- Home #כל הבית
|
||||
- living Room #סלון
|
||||
- Guestroom # אזור הכלבים
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# input Boolean #
|
||||
# #
|
||||
#################################################################
|
||||
|
||||
input_boolean:
|
||||
vacuum_zone_settings:
|
||||
name: zone settings
|
||||
initial: false
|
||||
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# input Number #
|
||||
# #
|
||||
#################################################################
|
||||
|
||||
input_number:
|
||||
vacuum_passes:
|
||||
name: How many times?
|
||||
initial: 1
|
||||
min: 1
|
||||
max: 3
|
||||
step: 1
|
||||
vacuum_start_minutes_weekend:
|
||||
name: Start minute
|
||||
initial: 0
|
||||
min: 0
|
||||
max: 59
|
||||
step: 1
|
||||
mode: slider
|
||||
vacuum_start_hour_weekend:
|
||||
name: Start hour
|
||||
initial: 13
|
||||
min: 0
|
||||
max: 23
|
||||
step: 1
|
||||
mode: slider
|
||||
vacuum_start_minutes_weekdays:
|
||||
name: Start minute
|
||||
initial: 0
|
||||
min: 0
|
||||
max: 59
|
||||
step: 1
|
||||
mode: slider
|
||||
vacuum_start_hour_weekdays:
|
||||
name: Start hour
|
||||
initial: 15
|
||||
min: 0
|
||||
max: 23
|
||||
step: 1
|
||||
mode: slider
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# Automation #
|
||||
# #
|
||||
#################################################################
|
||||
automation:
|
||||
|
||||
- alias: Vacuum - Suction speed
|
||||
initial_state: 'on'
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_select.vacuum_fan_speed_list
|
||||
action:
|
||||
- service_template: >
|
||||
{% if trigger.to_state.state == 'Silent' %}
|
||||
script.vacuum_set_quiet
|
||||
{% elif trigger.to_state.state == 'Balanced' %}
|
||||
script.vacuum_set_balanced
|
||||
{% elif trigger.to_state.state == 'Turbo' %}
|
||||
script.vacuum_set_turbo
|
||||
{% elif trigger.to_state.state == 'Maximum power' %}
|
||||
script.vacuum_set_max
|
||||
{% endif %}
|
||||
|
||||
- alias: Vacuum - Selection of the area
|
||||
initial_state: 'on'
|
||||
hide_entity: True
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_select.vacuum_zone
|
||||
from: 'Choose the area'
|
||||
action:
|
||||
- service_template: >
|
||||
{% if states.input_select.vacuum_zone.state == "Home" %} #כל הבית
|
||||
script.vacuum_home
|
||||
{% elif states.input_select.vacuum_zone.state == "Kitchen" %} #מטבח
|
||||
script.vacuum_kitchen
|
||||
{% elif states.input_select.vacuum_zone.state == "Bedroom" %} ## פרוזדור
|
||||
script.vacuum_bedroom
|
||||
{% elif states.input_select.vacuum_zone.state == "Dining Room" %} ## פינת אוכל #
|
||||
script.vacuum_dining_room
|
||||
{% elif states.input_select.vacuum_zone.state == "Living Room" %} ## סלון ##
|
||||
script.vacuum_living_room
|
||||
{% elif states.input_select.vacuum_zone.state == "Guestroom" %} #אזור הכלבים
|
||||
script.vacuum_guestroom
|
||||
{% else %}
|
||||
{% endif %}
|
||||
- delay: 00:01:00
|
||||
- wait_template: "{{is_state('vacuum.xiaomi_vacuum', 'docked')}}"
|
||||
- delay: 00:00:15
|
||||
- service: input_select.select_option
|
||||
entity_id: input_select.vacuum_zone
|
||||
data_template:
|
||||
option: "Choose the area"
|
||||
- service: input_select.select_option
|
||||
entity_id: input_select.vacuum_fan_speed_list
|
||||
data_template:
|
||||
option: "Turbo"
|
||||
|
||||
- alias: Vacuum Notices
|
||||
initial_state: 'on'
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
to: 'paused'
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 30
|
||||
- platform: state
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
to: 'docked'
|
||||
- platform: state
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
to: 'error'
|
||||
action:
|
||||
- service_template: >
|
||||
{% if trigger.to_state.state == 'paused' %}
|
||||
script.vacuum_alert_pause
|
||||
{% elif trigger.to_state.state == 'docked' %}
|
||||
script.vacuum_alert_charging
|
||||
{% elif trigger.to_state.state == 'error' %}
|
||||
script.vacuum_alert_error
|
||||
{% endif %}
|
||||
|
||||
- id: vacuum_cleaning_timer_weekdays
|
||||
initial_state: 'off'
|
||||
alias: Vacuum Schedule cleaning on weekdays
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: '{{ states.sensor.vacuum_start_time_weekdays.state == states.sensor.time.state }}'
|
||||
condition:
|
||||
- condition: time
|
||||
weekday:
|
||||
- sun
|
||||
- mon
|
||||
- tue
|
||||
- wed
|
||||
- thu
|
||||
|
||||
action:
|
||||
- data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
service: vacuum.start
|
||||
- id: Vacuum_cleaning_timer_weekend
|
||||
initial_state: 'off'
|
||||
alias: Vacuum Schedule cleaning on weekends
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: '{{ states.sensor.vacuum_start_time_weekend.state == states.sensor.time.state }}'
|
||||
condition:
|
||||
- condition: time
|
||||
weekday:
|
||||
- fri
|
||||
- sat
|
||||
action:
|
||||
- data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
service: vacuum.start
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# Script #
|
||||
# #
|
||||
#################################################################
|
||||
script:
|
||||
vacuum_set_quiet:
|
||||
sequence:
|
||||
service: vacuum.set_fan_speed
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
fan_speed: Quiet
|
||||
|
||||
vacuum_set_balanced:
|
||||
sequence:
|
||||
service: vacuum.set_fan_speed
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
fan_speed: Balanced
|
||||
|
||||
vacuum_set_turbo:
|
||||
sequence:
|
||||
service: vacuum.set_fan_speed
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
fan_speed: Turbo
|
||||
|
||||
vacuum_set_max:
|
||||
sequence:
|
||||
service: vacuum.set_fan_speed
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
fan_speed: Max
|
||||
|
||||
#################################################################
|
||||
# ZONE #
|
||||
#################################################################
|
||||
vacuum_home:
|
||||
sequence:
|
||||
- service: vacuum.xiaomi_clean_zone
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
|
||||
zone: [[23341,19451,32741,30201]] #כל הבית
|
||||
- service: script.vacuum_alert_start
|
||||
|
||||
vacuum_cocina:
|
||||
sequence:
|
||||
- service: vacuum.xiaomi_clean_zone
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
|
||||
zone: !secret vacuum_cocina
|
||||
- service: script.vacuum_alert_start
|
||||
|
||||
vacuum_bedroom:
|
||||
sequence:
|
||||
- service: vacuum.xiaomi_clean_zone
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
|
||||
zone: [[28489,22014,30139,26214,1]] #פרוזדור
|
||||
- service: script.vacuum_alert_start
|
||||
|
||||
vacuum_dining_room:
|
||||
sequence:
|
||||
- service: vacuum.xiaomi_clean_zone
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
|
||||
zone: [[26253,21948,28503,25948]] #פינת אוכל
|
||||
- service: script.vacuum_alert_start
|
||||
|
||||
vacuum_living_room:
|
||||
sequence:
|
||||
- service: vacuum.xiaomi_clean_zone
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
|
||||
zone: [[23327,21890,26077,26040]] #סלון
|
||||
- service: script.vacuum_alert_start
|
||||
|
||||
vacuum_entrada:
|
||||
sequence:
|
||||
- service: vacuum.xiaomi_clean_zone
|
||||
data:
|
||||
entity_id: vacuum.xiaomi_vacuum
|
||||
repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
|
||||
zone: !secret vacuum_entrada
|
||||
- service: script.vacuum_alert_start
|
||||
|
||||
|
||||
#################################################################
|
||||
# Alerts #
|
||||
#################################################################
|
||||
vacuum_alert_start:
|
||||
alias: Vacuum alert start
|
||||
sequence:
|
||||
- service: notify.telegram_diego
|
||||
data_template:
|
||||
title: "House alert"
|
||||
message: "The robot has started cleaning the area: {{ states.input_select.vacuum_zone.state | lower }}."
|
||||
- service: notify.telegram_diego
|
||||
data:
|
||||
title: "House alert ({{now().strftime('%H:%M')}})"
|
||||
message: "The robot has started cleaning the area: {{ states.input_select.vacuum_zone.state | lower }}"
|
||||
|
||||
vacuum_alert_pause:
|
||||
alias: Vacuum alert pausa
|
||||
sequence:
|
||||
- service: notify.telegram_diego
|
||||
data_template:
|
||||
title: "House alert"
|
||||
message: "The vacuum cleaner has stopped cleaning the area: {{ states.input_select.vacuum_zone.state | lower }}. {% if 'error' in states.vacuum.xiaomi_vacuum.state %}Error code: {{ states.vacuum.xiaomi_vacuum.attributes.error }}.{% else %}{% endif %}"
|
||||
- service: notify.telegram_diego
|
||||
data:
|
||||
title: "House alert ({{now().strftime('%H:%M')}})"
|
||||
message: "The vacuum cleaner has stopped cleaning the area: {{ states.input_select.vacuum_zone.state | lower }}. {% if 'error' in states.vacuum.xiaomi_vacuum.state %}Error code: {{ states.vacuum.xiaomi_vacuum.attributes.error }}.{% else %}{% endif %}"
|
||||
|
||||
vacuum_alert_back_to_home:
|
||||
alias: Vacuum alert back to home
|
||||
sequence:
|
||||
- condition: template
|
||||
value_template: "{% if is_state('input_select.vacuum_zone', 'Choose the area') %}False{% else %}True{% endif %}"
|
||||
- service: notify.telegram_diego
|
||||
data_template:
|
||||
title: "House alert"
|
||||
message: "The robot has finished cleaning the area {{ states.input_select.vacuum_zone.state | lower }}. cleaned {{ states.vacuum.xiaomi_vacuum.attributes.cleaned_area }} square meters in {{ states.vacuum.xiaomi_vacuum.attributes.cleaning_time }} minutes and now it is loading"
|
||||
- service: notify.avitelegram
|
||||
data:
|
||||
title: "House alert ({{now().strftime('%H:%M')}})"
|
||||
message: "The robot has finished cleaning the area {{ states.input_select.vacuum_zone.state | lower }}. cleaned {{ states.vacuum.xiaomi_vacuum.attributes.cleaned_area }} square meters in {{ states.vacuum.xiaomi_vacuum.attributes.cleaning_time }} minutes and now it is loading."
|
||||
|
||||
vacuum_alert_error:
|
||||
alias: Vacuum alert error
|
||||
sequence:
|
||||
- service: notify.telegram_diego
|
||||
data_template:
|
||||
title: "House alert"
|
||||
message: "The vacuum cleaner stopped and reported an error while cleaning the area {{ states.input_select.vacuum_zone.state | lower }}."
|
||||
- service: notify.telegram_diego
|
||||
data:
|
||||
title: "House alert ({{now().strftime('%H:%M')}})"
|
||||
message: "The vacuum cleaner stopped and reported an error while cleaning the area {{ states.input_select.vacuum_zone.state | lower }}."
|
||||
|
||||
#################################################################
|
||||
# #
|
||||
# Customize #
|
||||
# #
|
||||
#################################################################
|
||||
|
||||
homeassistant:
|
||||
customize:
|
||||
|
||||
switch.vacuum:
|
||||
icon: mdi:robot-vacuum
|
||||
|
||||
input_select.vacuum_fan_speed_list:
|
||||
icon: mdi:speedometer
|
||||
|
||||
input_select.vacuum_zone:
|
||||
icon: mdi:map-marker
|
||||
|
||||
input_number.vacuum_passes:
|
||||
name: Pass
|
||||
icon: mdi:shuffle-disabled
|
||||
Reference in New Issue
Block a user