Files
homeassistant/packages/pack/aspiradora.yaml_disable
2019-06-23 12:15:33 +02:00

484 lines
17 KiB
Plaintext

########################################################################
### 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