core: Roborock setup fails due to dependency conflict with Govee HACS causing 'wrong value for rriot'

The problem

After the Core Update today, Roborock Integration stopped working with the following Error Log. I tried deleting and re-login, but i get an “Unexpected Error”.

Logger: homeassistant.config_entries
Source: components/roborock/__init__.py:29
First occurred: 12:28:48 (2 occurrences)
Last logged: 13:03:04

Error setting up entry <mymail> for roborock
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/roborock/__init__.py", line 29, in async_setup_entry
    user_data = UserData.from_dict(entry.data[CONF_USER_DATA])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/roborock/containers.py", line 89, in from_dict
    return from_dict(cls, decamelize_obj(data, ignore_keys), config=Config(cast=[Enum]))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/core.py", line 68, in from_dict
    raise WrongTypeError(field_path=field.name, field_type=field.type, value=value)
dacite.exceptions.WrongTypeError: wrong value type for field "rriot" - should be "roborock.containers.RRiot | None" instead of value "{'u': 'xxx', 's': 'xxx', 'h': 'xxx', 'k': 'xxx', 'r': {'r': 'EU', 'a': 'https://api-eu.roborock.com', 'm': 'ssl://mqtt-eu-5.roborock.com:8883', 'l': 'https://wood-eu.roborock.com'}}" of type "dict"

What version of Home Assistant Core has the issue?

core-2023.9.3

What was the last working version of Home Assistant Core?

(the one before)

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Roborock

Link to integration documentation on our website

https://www.home-assistant.io/integrations/roborock

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Reactions: 1
  • Comments: 61 (24 by maintainers)

Most upvoted comments

IF you have the HACS Govee integration and you are experiencing this issue:

Go into your file editor, and go to custom components then govee, then edit the manifest requirements to be dacite==1.8.0 instead of dacite==1.6.0

I have created a PR on their library to try to fix this, but I don’t have access to their repository so I cannot make changes myself directly

https://github.com/LaggAt/hacs-govee/pull/124

This morning, I again had issues with the roborock integration because of Govee HACS, and I was really annoyed. Found this other govee LAN control HACS integration, and it seems to work really well. Thought of posting here in case it would help others: https://github.com/wez/govee-lan-hass

As is wrote, i didnt know how to pip uninstall, and just removing roborck was’nt working for me. (i’m new to homeassistant in general).

But i now learned how to pip uninstall with this community ssh addon and docker exec -it homeassistant bash

Thank you @ all 😃

@kalpik Not 100% sure - I think something was just going wrong with the installation of the package, by uninstalling roborock and letting HA install roborock and the version of dacite it wants, it hopefully fixed it. You can try re=enabling govee with the manifest having dacite==1.8.0 and see if it works for you

Yep, already enabled Govee HACS, and it all works together properly now 😃 Thanks a lot for your help!

@home-assistant rename Roborock setup fails due to dependency conflict with Govee HACS causing ‘wrong value for rriot’

It’s HACS. It’s also been a while since it was last updated. Here’s the output I see when I update dacite:

homeassistant:/config# pip install dacite==1.8.0 Collecting dacite==1.8.0 Downloading dacite-1.8.0-py3-none-any.whl (14 kB) Installing collected packages: dacite Attempting uninstall: dacite Found existing installation: dacite 1.6.0 Uninstalling dacite-1.6.0: Successfully uninstalled dacite-1.6.0 Successfully installed dacite-1.8.0 WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

Looks like the dacite update fixed it for me. I now have the Roborock integration working with 2023.9.3 and verified I’m seeing entity updates.