Support for Eufy RoboVac or Smart Bulbs?

I tried with my 30C and I get this error in HA

Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 126, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
  File "/config/custom_components/eufyrobovac/vacuum.py", line 49, in async_setup_platform
local_code = get_local_code(eufy_username, eufy_password, ip_address)
  File "/config/deps/lib/python3.7/site-packages/robovac/robovac.py", line 35, in get_local_code
token = login_request.json()['access_token']
KeyError: 'access_token'

What does your configuration look like? As @mitchellrj said above, I think the 30 series of RoboVacs uses a different API from the 11 series, but I’m not sure.

1 Like

Yep, that looks like you’ve got the wrong configuration or an old version of the code.

As an aside, please note that unfortunately this component is broken by the latest firmware update (1.1.2). See https://github.com/mitchellrj/eufy_robovac/issues/3

1 Like

Didnt see that. darn

What needs to be done to make this work again on the new RoboVac firmware? Per https://github.com/codetheweb/tuyapi/issues/175 they appear to have gotten things figured out. Thanks again for your work on this!

I’ve got a tentative fix now. See https://github.com/mitchellrj/eufy_robovac/issues/3

Does anyone have this working with the Robovac 15C / 15C MAX model? I’m seriously considering a purchase, but if I can’t integrate it with HA, it’s not happening.

I’d also like to know if the 15C is compatible!

I have a feeling I will be getting it soon.

1 Like

@jonnyrider I purchased the 15C MAX and have it integrated with HA. I had to use a custom components and jump through a few messy hoops to get it authenticated, but it’s been rock solid.

Here’s the custom component - https://github.com/mitchellrj/eufy_robovac

The steps for getting the device ID and key are here - https://github.com/google/python-lakeside/issues/16#issuecomment-484792907

I had to plug my Android phone into my desktop, run the adb logcat command and press a few buttons in the app to get it to talk. The output contained the two values needed.

Note: the attached thread says the command to run is adb logcat -e 'tuya.m.my.group.device.list'. I found this didn’t return anything, so I had to run it without the filter and scroll through lots of chat before I could see anything Eufy-related.

It was fiddly, but only took about ten mins. And like I said, it’s been rock solid since doing it.

1 Like

Excellent, thanks for this.

I’ll get it set up as soon as it arrives (near the end of December!)

Integration with HA aside, we’re really pleased with the 15C MAX. We have dog that sheds A LOT and this keeps on top of it and has made a huge difference. It fills up quickly, though.

Hi, i have the robovac 35C did someone got this robot to work with Home Assistant? I manage to get the key and device ID and try this custom component and did not work.

I spent about 2 hours forum diving, searching for clues, running adb, but I can 100% confirm the EUFY Robovac 35 is working as expected.

I followed 2 different guides, but in the end it was This RoboVac - Homeassistant Guide (git-hub) that got it working.

I’ll make a new post in the forums, as it seems like there really isn’t a concensus (yet) on how to accomplish this. but, if you got the time, it is possible, it might not even take you 2 hours like it did me.

I’ll link my review of the process in an edit

<3

tl;dr

EUFY Robovac 35c confirmed working with home assistant with some setup.

Maybe i’m doing something wrong. I have the device id and key, confirmed several times with the comand adb logcat -e ‘tuya.m.my.group.device.list’ and get always the same key but still I’m getting these messages in the log in hass: Expecting value: line 1 column 1 (char 0), Failed to decrypt message from 62840462807dxxxxxxxx (192.168.31.89:6668). The robovac is detect but do not work.

First of all, thanks for the awesome integration, I got my 15c max to work with HA which is just great :slight_smile:
One question, I get status: error but everything works ok, any idea why?
image

Also is there a card/custom card that you guys recommend to use on the HA frontend to display the robovac menu?

I did a complete wrap up of how I got my robovac fully functional with HA (posting again, bc people might not grab that edit.)

Which component did you use?
I didn’t use the one in the guide I found at first, that one seemed wonky. I used one that is less informative in github, but has everything I needed. Just an idea. you did adb and all that? Seems weird, it says line 1 column 1. Maybe you have something wonky at the beginning of your file?

I am actually also getting some decode errors:

2019-12-06 18:19:58 ERROR (MainThread) [custom_components.eufy_vacuum.tuya] 'utf-8' codec can't decode byte 0xcf in position 4: invalid continuation byte
2019-12-06 18:19:58 ERROR (MainThread) [custom_components.eufy_vacuum.tuya] Failed to decrypt message from 0753038684f3exxxxxxx (192.168.0.43:6668)
2019-12-06 18:20:18 ERROR (MainThread) [custom_components.eufy_vacuum.tuya] 'utf-8' codec can't decode byte 0xcf in position 4: invalid continuation byte
2019-12-06 18:20:18 ERROR (MainThread) [custom_components.eufy_vacuum.tuya] Failed to decrypt message from 0753038684f3exxxxxxx (192.168.0.43:6668)

I can actually control it from HA, but the only thing not working is the status and maybe that’s what’s causing it?
image

Any ideas on how to fix that?

Here’s my config.yaml

eufy_vacuum:
  devices:
  - name: Robovac
    address: !secret robovac_ip
    access_token: !secret robovac_localkey
    id: !secret robovac_id
    type: T2118

Is this wrong type: T2118 for my 15C max? I just used the value on the example since I have no idea what type the 15C max is

Ok so the 15c Max model is type T2128 but it doesn’t look like it is supported in the code:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/eufy_vacuum/vacuum.py", line 50, in setup_platform
    add_entities([EufyVacuum(device_config)], True)
  File "/config/custom_components/eufy_vacuum/vacuum.py", line 63, in __init__
    device_config['model']))
RuntimeError: Unsupported model T2128

And the vacuum.py file only contains T2118 reference:

SUPPORT_ROBOVAC_T2118 = (
    SUPPORT_BATTERY | SUPPORT_CLEAN_SPOT | SUPPORT_FAN_SPEED | SUPPORT_LOCATE |
    SUPPORT_PAUSE | SUPPORT_RETURN_HOME | SUPPORT_START | SUPPORT_STATUS |
    SUPPORT_TURN_OFF | SUPPORT_TURN_ON
)


MODEL_CONFIG = {
    'T2118': {
        'fan_speeds': FAN_SPEEDS,
        'support': SUPPORT_ROBOVAC_T2118
    }
}

Did anyone with the 15c Max actually get the status to show up correctly?

Which custom component did you use? did you see my post? I’m fairly positive if you use the right custom component you won’t get errors, even using the provided model code in the example.