Eufy Robovac 35c Working with Home_Assistant - Updated 11/2020 - How To Guide - Now with Edge Cleaning!

Yes, yes and it won’t reboot because invalid config.

No luck, do you have any other ideas? :frowning:

If you can’t reboot because of an invalid config, then you need to be absolutely sure that the eufy_vacuum section within configuration.yaml is structured correctly (see code below) and that all the information is provided i.e. the IP Address of your Robovac, plus the ID and access token etc.

The structure of this segment is very important or it will not pass the configuration checker.

eufy_vacuum:
  devices:
  - name: Robovac
    address: IP_ADDRESS
    access_token: YOUR_16_CHARACTER_TOKEN
    id: YOUR_21_CHARACTER_ID
    type: T2118

Please double-check this. Of course there might be an error in a different part of your configuration.yaml - what does the error say?

Component error: eufy_vacuum - No module named ‘custom_components.eufy_vacuum.robovac’

And yes, I triple-checked the config

Do you have a version number present in the manifest.json file in the eufy_vacuum directory?

Yes, I checked and there is a version number in the manifest.json file.

Maybe I’m being a bit dense here but your directory structure (from the config directory) should look like this:

and your configuration.yaml should reference the component eufy_vacuum

Is that what yours shows?

I was missing robovac.py, but I uploaded it and the config is now valid. Thanks!

1 Like

Great to hear… Sometimes a little detective work pays off!

I followed this advice:

curl -H "Content-Type: application/json" \
   -d '{"client_id":"eufyhome-app", "client_Secret":"GQCpr9dSp3uQpsOMgJ4xQ", "email":"", "password":""}' \
   https://home-api.eufylife.com/v1/user/email/login

Got access_token,

curl -H "Content-Type: application/json" \
   -d '{"client_id":"eufyhome-app", "client_Secret":"GQCpr9dSp3uQpsOMgJ4xQ", "email":"", "password":""}' \
   https://home-api.eufylife.com/v1/user/email/login
"user_id":"4589771","owner_info":null,"home_id":"de6adbd8-3a5a-47b3-8ac4-b99e4aab290c","home_name":"","room_id":"da11999f-fcc9-4775-9c45-9217e48ee562","room_name":"Default Room","connect_type":1,"grant_by":0,"software_version":"1.1.5","index":0,"device_key":"","create_time":1628687673,"update_time":1628687680,"hardware_version":"","local_code":"","setting":{"id":"","device_id":"","is_default":true}},"group":null}],"global_config":{"enabled_multi_color_modes":}}

Their API didn’t give me any “local_code”, it’s blank…

The Eufy integration within Home Assistant says it is for ‘Lights’ and ‘Switches’… it doesn’t mention the Robovac vacuum cleaner. I haven’t used this myself but I assume this is why the code is blank for you.

Hmm yeah, API used to give the info needed. :confused:

I think you’d be better off using the ADB method outlined elsewhere in this thread. It tends to be a reliable way to get the ‘LocalKey’ and ‘devID’

Sounds a bit complex when I need to passthrough BT devices to VM’s. install a bunch of stuff.
Found this: https://www.reddit.com/r/homebridge/comments/hda5td/easy_way_to_obtain_localkeydevid_for_eufy_vacuums/
The app still works after 1 year (luckily) and managed to grab the info needed.

Finally got Eufy RoboVac in Eufy. Hoping someone finds better ways to get the needed info, or Eufy make better integrations in future when these older apps inevitably break after their changes.

Been meaning to ask, does anyone know how I can do automation with the Robovac Entity?
Say I have a trigger for battery between 10-30, I can’t seem to find any ways to action “go home” - as an example.

I’ve been using the integration for Eufy vacuums for a while now, but I keep getting the following error message in my HomeAssistant logs:

2021-08-20 08:26:57 ERROR (MainThread) [custom_components.eufy_vacuum.tuya] ‘utf-8’ codec can’t decode byte 0x9d in position 3: invalid start byte>
2021-08-20 08:26:57 ERROR (MainThread) [custom_components.eufy_vacuum.tuya] Failed to decrypt message from 02404680e****** (10...58:6668)

Does anyone have an idea where this came from and how to fix it?

I’ve had this exact same error before…

I would reinstall the custom component again and double-check the configuration.yaml file… and go through a hard reset of the Robovac followed by the process to get the ID and Access Token again. It really does work… I think I did it 20 times trying to sort out various issues… the hard reset really solved the last of them.

Don’t forget to reboot the whole Home Assistant instance and not just the service.

If you search for eufyhome_2.4.0_vevs via Google etc you can get a patched version of the Eufy Home app (at Dropbox - EufyHome_2.4.0_vevs.apk.zip - Simplify your life ) that displays the device id and local key of your eufy robovac. Much less work than using adb and emulators to get the same info.

3 Likes

Hi,
I’ve been trying for a couple of days but I did not succeed to bring my 11C to Home Assistant.
Have anyone successfully done it with a 11C?
I got the local key and id from logcat, but since it wasn’t working, I downloaded the modified Eufy app and confirmed the id and local key, however, I get an id with 32 digits, is that right?
I get a “Device id” with 32 digits, a “Device Key” with 16 digits and a “Local code” with 16 digits.
I assumed that the “devId” would be the “Device id” and that the access token would be the “local code”.
However, I’ve tried all sort of combinations between these but I could not make it respond.
When I try to run the python demo script is says that the connection was refused.
Does anyone know how to go from here?

1 Like

The Localkey is 16 characters and the devID is 21 - that is what the Eufy Robovac 35c uses. I don’t know about the 11c but I would be surprised if it was that different considering it is accessed by the same Eufy app.

I’m assuming you have the following in your configuration.yaml:

eufy_vacuum:
  devices:
  - name: Robovac
    address: IP_ADDRESS
    access_token: YOUR_16_CHARACTER_TOKEN
    id: YOUR_21_CHARACTER_ID
    type: T2118

And have installed the eufy_vacuum component under the custom_components folder with the following files: