Home Assistant Guide

Simple tutorials for powerful automations

Using Eufy Robovacs with Home Assistant

Eufy Robovacs can now be controlled locally through Home Assistant using the Robovac integration by maximoei. This integration is designed for models like the L60 and similar devices, and it provides an easy setup process that retrieves the required keys automatically. Once installed, you can manage your vacuum directly from your Home Assistant dashboard and even create automations or custom scripts for advanced control.

1) Installation via HACS

The easiest and recommended way to install this integration is through HACS (Home Assistant Community Store). If you don't have HACS installed yet, visit hacs.xyz for instructions.

Steps to install:

  1. Ensure your Home Assistant Core is up to date.
  2. Remove any previous Eufy or Robovac integrations, including entries in configuration.yaml.
  3. Open HACS → Integrations and click the three dots () in the top-right corner.
  4. Select Custom repositories.
  5. In the dialog box, paste the repository URL:
    https://github.com/maximoei/robovac
    and set the category to Integration, then click Add.
  6. Back in the HACS Integrations tab, search for Eufy Robovac and click Download or Install.
  7. Restart Home Assistant when prompted.

2) Adding and Configuring Your Robovac

Once Home Assistant has restarted, you can add the integration through the UI:

  1. Go to Settings → Devices & Services.
  2. Click + Add Integration and search for Eufy Robovac.
  3. When prompted, enter your Eufy app username and password.
  4. The integration will automatically retrieve the device ID and local key for all compatible Robovacs on your account.
  5. When the dialog shows success, choose an Area for each device and click Finish.
  6. On the Integrations screen, locate your new Eufy Robovac card and click Configure.
  7. Select the vacuum you wish to set up, enter its IP address, and click Submit.
  8. Repeat for each Robovac you own.

That's it! Your Robovac(s) should now appear as vacuum.robovac_xx entities within Home Assistant.

3) Optional: Adding Control Scripts

While the built-in vacuum entity provides basic commands (start, pause, return to base), this integration supports additional commands for specific models. You can add them as scripts to scripts.yaml for easy access or automation.

Example scripts for 15C models:

15c_smallroomclean:
  alias: 15C_smallRoomClean
  sequence:
    - service: vacuum.send_command
      data:
        command: smallRoomClean
      target:
        entity_id: vacuum.15c
  mode: single

15c_edgeclean:
  alias: 15C_edgeClean
  sequence:
    - service: vacuum.send_command
      data:
        command: edgeClean
      target:
        entity_id: vacuum.15c
  mode: single

15c_dock:
  alias: 15C_dock
  sequence:
    - service: vacuum.return_to_base
      target:
        entity_id: vacuum.15c
  mode: single

Example scripts for G30 models:

g30_autoclean:
  alias: G30_autoClean
  sequence:
    - service: vacuum.send_command
      data:
        command: autoClean
      target:
        entity_id: vacuum.g30
  mode: single

g30_autoreturn:
  alias: G30_autoReturn
  sequence:
    - service: vacuum.send_command
      data:
        command: autoReturn
      target:
        entity_id: vacuum.g30
  mode: single

g30_donotdisturb:
  alias: G30_do_Not_Disturb
  sequence:
    - service: vacuum.send_command
      data:
        command: doNotDisturb
      target:
        entity_id: vacuum.g30
  mode: single

g30_dock:
  alias: G30_dock
  sequence:
    - service: vacuum.return_to_base
      target:
        entity_id: vacuum.g30
  mode: single

Example scripts for X8 models:

x8_boostiq:
  alias: x8_boostIQ
  sequence:
    - service: vacuum.send_command
      data:
        command: boostIQ
      target:
        entity_id: vacuum.x8
  mode: single

x8_autoclean:
  alias: x8_autoClean
  sequence:
    - service: vacuum.send_command
      data:
        command: autoClean
      target:
        entity_id: vacuum.x8
  mode: single

x8_autoreturn:
  alias: X8_autoReturn
  sequence:
    - service: vacuum.send_command
      data:
        command: autoReturn
      target:
        entity_id: vacuum.x8
  mode: single

x8_donotdisturb:
  alias: X8_do_Not_Disturb
  sequence:
    - service: vacuum.send_command
      data:
        command: doNotDisturb
      target:
        entity_id: vacuum.x8
  mode: single

x8_dock:
  alias: X8_dock
  sequence:
    - service: vacuum.return_to_base
      target:
        entity_id: vacuum.x8
  mode: single

Each Robovac series supports only certain commands (for example, edge cleaning isn't available on G-series models).

4) Creating a Lovelace Dashboard Card

To make controlling your Robovac easier, install the Vacuum Card by Denys Dovhan from HACS.

Once installed, add a new manual card to your dashboard and configure it based on your model.

Example for a 15C model:

type: custom:vacuum-card
entity: vacuum.15c
image: default
show_name: true
show_status: true
show_toolbar: true
shortcuts:
  - name: Dock
    service: script.15c_dock
    icon: mdi:home-map-marker
  - name: Edge Cleaning
    service: script.15c_edgeclean
    icon: mdi:square-outline
  - name: Small Room
    service: script.15c_smallroomclean
    icon: mdi:timer-cog-outline

Example for a G30 model:

type: custom:vacuum-card
entity: vacuum.g30
image: default
shortcuts:
  - name: Dock
    service: script.g30_dock
    icon: mdi:home-map-marker
  - name: Auto Clean
    service: script.g30_autoclean
    icon: mdi:caps-lock
  - name: Auto Return
    service: script.g30_autoreturn
    icon: mdi:arrow-u-down-left-bold
  - name: Do Not Disturb
    service: script.g30_donotdisturb
    icon: mdi:volume-off
stats:
  default:
    - attribute: cleaning_area
      unit: sq meters
      subtitle: Cleaning Area
    - attribute: cleaning_time
      value_template: '{{ (value | float(0) / 60) | round(1) }}'
      unit: minutes
      subtitle: Cleaning Time

Example for an X8 model:

type: custom:vacuum-card
entity: vacuum.x8
image: default
stats:
  default:
    - attribute: cleaning_area
      unit: sq meters
      subtitle: Cleaning Area
    - attribute: cleaning_time
      value_template: '{{ (value | float(0) / 60) | round(1) }}'
      unit: minutes
      subtitle: Cleaning Time
    - attribute: boost_iq
      subtitle: Boost IQ
      value_template: '{% if value == true %}On{% else %}Off{% endif %}'
shortcuts:
  - name: Dock
    service: script.x8_dock
    icon: mdi:home-map-marker
  - name: Auto Clean
    service: script.x8_autoclean
    icon: mdi:caps-lock
  - name: Boost IQ
    service: script.x8_boostiq
    icon: mdi:bootstrap
  - name: Auto Return
    service: script.x8_autoreturn
    icon: mdi:arrow-u-down-left-bold
  - name: Do Not Disturb
    service: script.x8_donotdisturb
    icon: mdi:volume-off

5) Debugging and Logs

If you encounter issues or want to see what's happening in the background, you can enable debug logging. Add the following to your configuration.yaml:

logger:
  default: warning
  logs:
    custom_components.robovac.vacuum: debug
    custom_components.robovac.tuyalocalapi: debug

You can then view the live logs using the Log Viewer add-on available from the Home Assistant add-on store.

Summary

The Robovac integration makes it easy to add and control your Eufy Robovacs directly in Home Assistant with full local access. Setup only requires your Eufy credentials, and from there you can manage cleaning, docking, and special modes through dashboard cards or automations. It's an excellent upgrade from cloud-dependent setups and works smoothly for most modern Eufy models including the 15C, G30, X8, and L60.