> For the complete documentation index, see [llms.txt](https://docs.arkannis.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.arkannis.net/iot/home-assistant/valetudo-configs.md).

# Valetudo configs

* [Github Configuration Example](https://github.com/stanvx/Home-Assistant-Configuration/blob/master/packages/xiaomi_robot_vacuum.yaml)

```yaml
homeassistant:
  customize:
    input_boolean.disable_daily_vacuum:
      icon: mdi:stop-circle-outline
    input_boolean.disable_dustbin_notification:
      icon: mdi:delete-empty
    binary_sensor.vacuum_room:
      custom_ui_state_card: state-card-floorplan
      config: !include ../floorplan_vacuum.yaml

binary_sensor:
  - platform: mqtt
    state_topic: dummy/floorplan/sensor
    name: Vacuum Room

frontend:
  extra_html_url:
    - /local/custom_ui/state-card-floorplan.html

group:
  Robot Vacuum:
    control: hidden
    entities:
      - vacuum.xiaomi_vacuum_cleaner
      - input_boolean.disable_daily_vacuum
  Vacuum a Room:
    control: hidden
    entities:
      - input_select.vacuum_room
      - binary_sensor.vacuum_room

vacuum:
  - platform: xiaomi_miio
    host: !secret xiaomi_vacuum_ip
    token: !secret xiaomi_vacuum_token

input_boolean:
  daily_vacuum_first_run:
    name: Daily Vacuum First Run
    initial: off
  disable_daily_vacuum:
    name: Disable Daily Vacuum Automation
    initial: on
  disable_dustbin_notification:
    name: Disable Dustbin Notification
    initial: off

input_select:
  vacuum_room:
    name: Choose a room to clean
    options:
      - Select Input
      - All Except Bedroom and Ensuite
      - Bedroom
      - Dining Room
      - Ensuite Bathroom
      - Entryway
      - Kitchen
      - Living Room
      - Main Bathroom
      - Mopping Surfaces
      - Projector Room
      - Study
    initial: Select Input

script:
  vacuum_all_except_bedroom_and_ensuite:
        alias: "Vacuum All Except Bedroom and Ensuite"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[16034,19737,26234,29237,1],[19487,29248,26237,32198,1]]
  vacuum_bedroom:
        alias: "Vacuum Bedroom"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[12038,27467,16088,32017,1]]
  vacuum_dining_room:
        alias: "Vacuum Dining Room"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[16079,24984,19679,28134,1]]
  vacuum_ensuite_bathroom:
        alias: "Vacuum Ensuite Bathroom"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[12038,27467,16088,32017,1]]
# Entryway not working correctly
  vacuum_entryway:
        alias: "Vacuum Entryway"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[22948,22862,24798,25062,1]]
  vacuum_kitchen:
        alias: "Vacuum Kitchen"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[19444,24947,21444,27997,1]]
  vacuum_living_room:
        alias: "Vacuum Living Room"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[18266,19661,23016,25061,1]]
  vacuum_main_bathroom:
        alias: "Vacuum Main Bathroom"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[19501,29139,22051,31789,1]]
  vacuum_mopping_surfaces:
        alias: "Vacuum Mopping Surfaces"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[16602,29163,22052,32313,1],[16028,24951,21578,28151,1],[22975,22737,24375,25087,1]]
  vacuum_projector_room:
        alias: "Vacuum Projector Room"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[22058,28711,26208,32061,1]]
  vacuum_study:
        alias: "Vacuum Study"
        sequence:
          - service: vacuum.send_command
            data:
              entity_id: vacuum.xiaomi_vacuum_cleaner
              command: app_zoned_clean
              params: [[23004,25042,26404,28442,1]]
sensor:
  - platform: template
    sensors:
      xiaomi_vacuum_cleaner_status:
        entity_id:
          - vacuum.xiaomi_vacuum_cleaner
        friendly_name: "Xiaomi Vacuum Cleaner Status"
        value_template: "{{ states.vacuum.xiaomi_vacuum_cleaner }}"

###############################################################################
#                               Automations
###############################################################################
automation:
  - alias: Start Daily Vacuum
    trigger:
    - platform: state
      entity_id: group.family_presence
      from: 'home'
      to: 'not_home'
      for:
        minutes: 2
    - platform: time
      at: '7:02:00'
    condition:
      condition: and
      conditions:
      - condition: state
        entity_id: input_boolean.daily_vacuum_first_run
        state: 'off'
      - condition: time
        after: '07:00:00'
        before: '22:00:00'
      - condition: state
        entity_id: group.family_presence
        state: 'not_home'
      - condition: state
        entity_id: input_boolean.disable_daily_vacuum
        state: 'off'
    action:
    - delay: '00:00:30'
    - service: vacuum.turn_on
      entity_id: vacuum.xiaomi_vacuum_cleaner
    - service: homeassistant.turn_on
      entity_id: input_boolean.daily_vacuum_first_run

  - alias: Reset Daily Vacuum First Run state at midnight
    trigger:
    - platform: time
      at: '0:00:00'
    action:
    - service: homeassistant.turn_off
      entity_id: input_boolean.daily_vacuum_first_run

  - alias: Send alert after daily vacuum to empty the dustbin
    trigger:
    - platform: state
      entity_id: group.family_presence
      to: 'home'
      for:
        minutes: 2
    condition:
      condition: and
      conditions:
      - condition: state
        entity_id: input_boolean.daily_vacuum_first_run
        state: 'on'
      - condition: time
        after: '08:30:00'
        before: '22:30:00'
      - condition: template
        value_template: >
          <div data-gb-custom-block data-tag="if"></div>

            

<div data-gb-custom-block data-tag="if" data-0='1800' data-1='1800' data-2='1800' data-3='1800' data-4='1800' data-5='1800' data-6='1800' data-7='1800' data-8='1800' data-9='1800' data-10='1800' data-11='1800' data-12='1800' data-13='1800' data-14='1800' data-15='1800' data-16='1800' data-17='1800' data-18='1800' data-19='1800' data-20='1800' data-21='1800' data-22='1800' data-23='1800' data-24='1800' data-25='1800' data-26='1800' data-27='1800' data-28='1800' data-29='1800' data-30='0'></div> true <div data-gb-custom-block data-tag="else"> false
            </div>

          

<div data-gb-custom-block data-tag="else">

          false
          

</div>

      - condition: state
        entity_id: input_boolean.disable_dustbin_notification
        state: 'off'
    action:
      - service: script.speech_processing
        data_template:
          speech_message: >
           

<div data-gb-custom-block data-tag="if" data-0='person.trent' data-1=', ' data-2=', ' data-3=', ' data-4='home' data-5='person.rachel' data-6='person.rachel' data-7=', '>

             Attention!: the vacuum dustbin needs to be cleared.
           

</div>

      - service_template: >
          

<div data-gb-custom-block data-tag="if" data-0='person.trent' data-1=', ' data-2=', ' data-3=', ' data-4='home' data-5='person.rachel' data-6='person.rachel' data-7=', ' data-8='home'></div>

            notify.trent_and_rachel
          

<div data-gb-custom-block data-tag="elif" data-0='person.trent' data-1=', ' data-2=', ' data-3=', '></div>

            notify.telegram_trent
          

<div data-gb-custom-block data-tag="elif" data-0='person.rachel' data-1=', ' data-2=', ' data-3=', '>

            notify.rachel
          

</div>

        data:
          message: 'Hey, the vacuum dustbin needs to be cleared'
          title: 'Vacuum Dustbin'
  - alias: Start Cleaning Room
    hide_entity: True
    trigger:
    - platform: state
      entity_id: input_select.vacuum_room
      from: 'Select Input'
    action:
    - service: script.turn_on
      data_template:
        entity_id: >
          

<div data-gb-custom-block data-tag="if" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_all_except_bedroom_and_ensuite
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_bedroom
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_dining_room
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_ensuite_bathroom
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_entryway
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_kitchen
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_living_room
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_main_bathroom
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_mopping_surfaces
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_projector_room
          

<div data-gb-custom-block data-tag="elif" data-0='input_select.vacuum_room' data-1=', ' data-2=', ' data-3=', '></div>

            script.vacuum_study
          

<div data-gb-custom-block data-tag="else">

          

</div>
    - service: input_select.select_option
      data:
        entity_id: input_select.vacuum_room
        option: "Select Input"
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.arkannis.net/iot/home-assistant/valetudo-configs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
