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:
- Ensure your Home Assistant Core is up to date.
- Remove any previous
EufyorRobovacintegrations, including entries inconfiguration.yaml. - Open HACS → Integrations and click the three dots (⋮) in the top-right corner.
- Select Custom repositories.
- In the dialog box, paste the repository URL:
and set the category to Integration, then click Add.https://github.com/maximoei/robovac - Back in the HACS Integrations tab, search for Eufy Robovac and click Download or Install.
- Restart Home Assistant when prompted.
2) Adding and Configuring Your Robovac
Once Home Assistant has restarted, you can add the integration through the UI:
- Go to Settings → Devices & Services.
- Click + Add Integration and search for Eufy Robovac.
- When prompted, enter your Eufy app username and password.
- The integration will automatically retrieve the device ID and local key for all compatible Robovacs on your account.
- When the dialog shows success, choose an Area for each device and click Finish.
- On the Integrations screen, locate your new Eufy Robovac card and click Configure.
- Select the vacuum you wish to set up, enter its IP address, and click Submit.
- 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.