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

Thanks for the code update to support the X8 Hybrid. FYI, the only thing I did is go into my existing vacuum.py and add my models to this line:

elif self.model_code[0:5] in ["T2262", "T2262A", "T2261", "T2261A"]:  # X

So I got myself a Eufy 15C for stupid cheap to see if the Mrs liked the idea and surprisingly she does! She even asked how much a new one that could mop as well costs!?

So I’ve added the 15C to HA with @bmccluskey’s HACS addon and it all works. After reading this whole thread I’m still not sure if it is possible to operate without cloud connection, can somebody put me straight?

I’m making the assumption that I’ll need the DEVICE_ID and LOCAL_KEY for local operation, not sure if that’s right though?

I know the older method with various old apks no longer work, but I tried them anyway. I’ve also tried the python key grabber from @markbajaj but I just get python errors and as I’m only using python to get the keys I don’t want to put too much effort in to get the grabber/python working unless it’s worth my while and be able to operate locally.

Just checked and the python grabber still works on my mac on 3.7.1

I did a few months ago spend half a day trying to dockerise it so I could share it, but gave up as was getting so many errors!

EDIT: To answer the local only question, I am not sure as not tried it. However, when I changed the WLAN it was on it totally screwed it in HA (and Alexa) until i removed and re-added due to the IP address change.

I can’t seem to make HACS see this repo. I can go to the github page all day. Am I missing something?

Thank you @markbajaj, I’m going to leave things alone for the time being as I’ve got a few more higher priority (so I’ve been told) tasks and will return at some point. I’ll see if I can get python working to get the local data and see what happens if I disable internet access. Job for another day!

1 Like

I have got around to dockerizing the python app for anyone that is interested

https://hub.docker.com/r/markbajaj/eufyidfinder/

Use:

docker pull markbajaj/eufy_id_grabber

docker run markbajaj/eufy_id_grabber python -m eufy_local_id_grabber "[email protected]" "your_password"

EG

docker run markbajaj/eufy_id_grabber python -m eufy_local_id_grabber "[email protected]" "password123"

I hope this helps anyone trying to grab their EUFY ID.

mb

EDIT: both arm64 and AMD64 versions

1 Like

This is perfect! I’m surprised it’s that simple and works that well. Thank you!

As a follow up to this- I’m having an interesting issue where the room ID’s are non-sequential and behave strangely. See below:

Room IDs:

  1. Guest Room
  2. Produces verbal “rooms unavailable” error from vacuum
  3. Comes off and returns to charger
  4. Kitchen
  5. Bedroom
  6. Living Room
  7. Comes off and returns to charger
  8. Comes off and returns to charger
    9-?. Comes off and returns to charger

yes, i had a similar issue. I found that performing a factory reset of the robovac and creating a brand new map of the whole apartment, then sectioning/labeling the rooms again fixed this.

My room IDs used to start at 14 and were non sequential.
Now they start at 1 (actually 0 but it is the same as 1), are sequential and are all very neat. I have since been able to set these scripts to Mushroom Card Buttons for my Tablet (see pic) and also exposed these o Google and Alexa so I can start cleaning a single room with my voice… this makes me so happy!

Hi - sorry for the stupid question. I’ve tried looking through the thread here to see how exactly to set up the card to show rooms, cleaning time, etc. I currently only have the very basic info: image

Could you point me to where to get all the bells and whistles like you have? Thank you!

Hi,
I tried with a L70 (T2190), the code runs until this line:

async_setup_entry
    async_add_entities([RoboVacEntity(item)])
  File "/homeassistant/custom_components/robovac/vacuum.py", line 247, in __init__
    self._attr_access_token = item[CONF_ACCESS_TOKEN]
KeyError: 'access_token'

On the config entries, I can see the device ID and the local key correctly stored, so I believe this device use another api configuration.

Any hints on where I must start to add support to this device is welcomed :slight_smile:

Thanks!

@markbajaj Thank for the docker app, it works a treat except for the slight typo, eufy_id_grabber should be eufyidfinder. Got my device id and local key once I’d worked that out!

Now I just need to get this to work locally, hints gratefully recieved :innocent:

1 Like

Hmmm, re-reading this entire thread for clues but am a bit stuck. In summary when I get my device id and local key from @markbajaj’s wonderful dockered(?) app, my device id is 20 characters numbers and lower case characters up to f (hex?) and my local key is 16 characters with numbers, mixed case and punctuation.

I’ve seen post that say device id is 20 characters and some saying 21 characters, is it safe to assume that both are correct? My vacuum is a 15c.

I’m using the cloud integration from @bmccluskey and it’s been working for a while, but I’d like to have a local connection if I could. So I tried @jonnyrider’s github repository. Firstly I removed the device and then restarted HA. Following @jonnyrider guide, I copied the eufy_vacuum_15c folder to custom_components, restarted HA. Added the included code, with my details, to my configuration.yaml and restarted HA. I get this is my logs

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/eufy_vacuum_15c/tuya.py:551
Integration: Eufy Vacuum (documentation)
First occurred: 10:42:29 (3 occurrences)
Last logged: 10:43:09

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/eufy_vacuum_15c/tuya.py", line 551, in _async_handle_message
    response_data = await self.reader.readuntil(MAGIC_SUFFIX_BYTES)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/streams.py", line 634, in readuntil
    raise exceptions.IncompleteReadError(chunk, None)
asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of undefined expected bytes

I have seen the error mentioned in this thread but not what the cause/solution is, anyone able to shed light? I do have an entity for the created vacuum but no device, when I go to the entity it shows a Status: error, but otherwise it does look like I’d expect.

I’ve been through this thread SOOO many times I don’t think I’m reading it anymore I’m just starring, any help would be gratefully received, if only to protect the nearby walls!

The walls are saved! Just as a trial I changed tuya.py line 438 from (3,1) to (3,3). Restarted HA and everything has just burst into life!

Well spotted thanks! Updated it. I think it was because in testing (that had my creds in) I used a private repo that had the underscores :slight_smile:
mb

1 Like

Very nice integration.
I’m using Hybrid L35+, but I’m stuck because I don’t know how to check the IP address.
The MAC address displayed by EufyClean does not exist on NetWork.
Please advise how to check.

Eufy 30 here. Anyone else’s stopped working on update to latest HA? Nothing obvious in logs except

The robovac custom integration is using deprecated vacuum feature


 
This stops working in version 2024.2.0. Please address before upgrading.
The custom integration robovac is extending the deprecated base class VacuumEntity instead of StateVacuumEntity.

Please report it to the author of the robovac custom integration.

Once an updated version of robovac is available, install it and restart Home Assistant to fix this issue.

cheers

mb

1 Like

My programing skill in regards to home assistant are pretty low, but I believe a part of the answer on how to solve this problem can be found here.

If nobody solve it, at my very slow pace, I may look on how to update the file vacuum.py in the integration.

2 Likes

Same for me

1 Like

Just changed my HACS repo to GitHub - CodeFoodPixels/robovac: Add a Eufy RoboVac easily to Home Assistant and works perfectly!

This is a fork of the orig repo.

In HA remove the integration, then remove from HACS, then add this repo:

As a custom repo.

It worked straight away and i didn’t need to re-input put my Local ID or network key or change any entity names :slight_smile:

4 Likes