Files
home-assistant/packages/vacuum/vacuum.yaml
2023-11-12 15:01:04 -08:00

175 lines
4.6 KiB
YAML

# Vacuum Package
# -----------------------------------------------------------------------------
# Vacuum Helpers
input_number:
furbot_main_brush_life_hours:
unit_of_measurement: h
initial: 300
min: 10
max: 300
mode: box
furbot_right_brush_life_hours:
unit_of_measurement: h
initial: 200
min: 10
max: 300
mode: box
furbot_filter_life_hours:
unit_of_measurement: h
initial: 150
min: 10
max: 300
mode: box
furbot_sensor_life_hours:
unit_of_measurement: h
initial: 30
min: 10
max: 300
mode: box
input_text:
furbot_last_fan_speed:
name: Furbot Last Fan Speed
initial: ""
# -----------------------------------------------------------------------------
# Room/Segment Helpers
input_boolean:
furbot_segment_dining_room:
name: Dining Room
icon: mdi:table-furniture
furbot_segment_kitchen:
name: Kitchen
icon: mdi:silverware
furbot_segment_laundry:
name: Laundry Room
icon: mdi:washing-machine
furbot_segment_entry:
name: Entry
icon: mdi:coat-rack
furbot_segment_office:
name: Office
icon: mdi:chair-rolling
furbot_segment_hallway:
name: Hallway
icon: mdi:shoe-print
furbot_segment_bathroom:
name: Bathroom
icon: mdi:shower
furbot_segment_bedroom:
name: Bedroom
icon: mdi:bed
furbot_segment_living_room:
name: Living Room
icon: mdi:television
furbot_segment_guest_room:
name: Guest Room
icon: mdi:account
homeassistant:
customize:
furbot_segment_bathroom:
segment_id: '1'
furbot_segment_bedroom:
segment_id: '2'
furbot_segment_guest_room:
segment_id: '3'
furbot_segment_office:
segment_id: '4'
furbot_segment_living_room:
segment_id: '5'
furbot_segment_laundry:
segment_id: '6'
furbot_segment_kitchen:
segment_id: '7'
furbot_segment_entry:
segment_id: '8'
furbot_segment_dining_room:
segment_id: '9'
furbot_segment_hallway:
segment_id: '10'
template:
# Consumable Helpers
sensor:
- name: Furbot Main Brush Life Pct
state_class: measurement
unit_of_measurement: "%"
state: "{{ ((states('sensor.valetudo_furbot_main_brush')|default(120)|float) / (states('input_number.furbot_main_brush_life_hours')|float * 60) * 100) | round | int }}"
- name: Furbot Right Brush Life Pct
state_class: measurement
unit_of_measurement: "%"
state: "{{ ((states('sensor.valetudo_furbot_right_brush')|default(120)|float) / (states('input_number.furbot_right_brush_life_hours')|float * 60) * 100) | round | int }}"
- name: Furbot Filter Life Pct
state_class: measurement
unit_of_measurement: "%"
state: "{{ ((states('sensor.valetudo_furbot_main_filter')|default(120)|float) / (states('input_number.furbot_filter_life_hours')|float * 60) * 100) | round | int }}"
- name: Furbot Sensor Cleaning Pct
state_class: measurement
unit_of_measurement: "%"
state: "{{ ((states('sensor.valetudo_furbot_sensor_cleaning')|default(120)|float) / (states('input_number.furbot_sensor_life_hours')|float * 60) * 100) | round | int }}"
# -----------------------------------------------------------------------------
# Vacuum Scripts
script:
# Vacuum the bedroom (room ) only with high suction and two passes
furbot_deep_clean_bedroom:
alias: "Furbot: Deep Clean Bedroom"
sequence:
# Cache the fan setting and reset it when cleaning finishes
- service: input_text.set_value
target:
entity_id: input_text.furbot_last_fan_speed
data:
value: "{{ states('select.valetudo_furbot_fan') }}"
# Start Cleaning
- service: mqtt.publish
data:
topic: valetudo/furbot/FanSpeedControlCapability/preset/set
payload: max
- service: mqtt.publish
data:
topic: valetudo/furbot/MapSegmentationCapability/clean/set
payload: '{"segment_ids": ["2"], "iterations": 2}'
# -----------------------------------------------------------------------------
# Vacuum Automations
automation:
# Reset the Fan Speed when cleaning is complete (if cached)
- alias: "Furbot: Reset Fan Speed"
trigger:
- platform: state
entity_id: vacuum.valetudo_furbot
to: docked
condition: "{{ states('input_text.furbot_last_fan_speed') != '' }}"
action:
- service: mqtt.publish
data:
topic: valetudo/furbot/FanSpeedControlCapability/preset/set
payload_template: "{{ states('input_text.furbot_last_fan_speed') }}"
- service: input_text.reload
target:
entity_id: input_text.furbot_last_fan_speed