Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roborock authentication fails after moving HA docker. #101289

Closed
chadbaum opened this issue Oct 2, 2023 · 26 comments
Closed

Roborock authentication fails after moving HA docker. #101289

chadbaum opened this issue Oct 2, 2023 · 26 comments

Comments

@chadbaum
Copy link

chadbaum commented Oct 2, 2023

The problem

I recently built a new server and moved my docker with HA and copied all the config files. Everything is working fine except my Roborock S7 using the Roborock official integration. I've tried re-authenticating and enter the code I receive but I receive an 'unknown error'. I've also tried repairing my Roborock to WiFi.

In the log, this is what I see:

  1. "Cannot connect to host usiot.roborock.com:443 ssl:default [Try again]"
  2. "wrong value type for field "rriot" - should be "roborock.containers.RRiot | None" instead of value "{'u': 'yBRMVHKdiWGBk6Ird3AdL', 's': 'PCFi7p', 'h': 'pOzkqqHaZA', 'k': 'tZe5cULA', 'r': {'r': 'US', 'a': 'https://api-us.roborock.com', 'm': 'ssl://mqtt-us.roborock.com:8883', 'l': 'https://wood-us.roborock.com'}}" of type "dict"
    wrong value type for field "rriot" - should be "roborock.containers.RRiot | None" instead of value "{'u': 'yBRMVHKdiWGBk6Ird3AdL', 's': 'cUfbzL', 'h': 'hQ4dakgDyM', 'k': 'jKwAJTQo', 'r': {'r': 'US', 'a': 'https://api-us.roborock.com', 'm': 'ssl://mqtt-us.roborock.com:8883', 'l': 'https://wood-us.roborock.com'}}" of type "dict"

Looking for advice on what to try next. I think the only thing I can do is wipe my Roborock account but I'd prefer not to lose my maps, so wondering if there is something else to try.

Thanks!

What version of Home Assistant Core has the issue?

core-2023.9.3

What was the last working version of Home Assistant Core?

core-2023.9.3

What type of installation are you running?

Home Assistant Container

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

@home-assistant
Copy link

home-assistant bot commented Oct 2, 2023

Hey there @humbertogontijo, @Lash-L, mind taking a look at this issue as it has been labeled with an integration (roborock) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of roborock can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign roborock Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


roborock documentation
roborock source
(message by IssueLinks)

@Lash-L
Copy link
Contributor

Lash-L commented Oct 2, 2023

Do you have the govee hacs integration by chance?

@chadbaum
Copy link
Author

chadbaum commented Oct 2, 2023

Do you have the govee hacs integration by chance?

Yes I do!

@Lash-L
Copy link
Contributor

Lash-L commented Oct 2, 2023

They have an issue with one of their requirements that conflicts with roborock and causes problems

Go into a file editor or ssh into your machine and edit custom components/govee/ manifest

Change dacite==1.6.0 to dacite==1.8.0.

Restart home assistant

Reinstall Roborock

See this thread: #100846

@chadbaum
Copy link
Author

chadbaum commented Oct 2, 2023

Thanks. I updated the manifest, rebooted, but still seeing this error when I try to connect:

wrong value type for field "rriot" - should be "roborock.containers.RRiot | None" instead of value "{'u': 'yBRMVHKdiWGBk6Ird3AdL', 's': 'Qu7uRm', 'h': 'of10V7G6i6', 'k': 'ezpwMac1', 'r': {'r': 'US', 'a': 'https://api-us.roborock.com', 'm': 'ssl://mqtt-us.roborock.com:8883', 'l': 'https://wood-us.roborock.com'}}" of type "dict"

@chadbaum
Copy link
Author

chadbaum commented Oct 2, 2023

image

@Lash-L
Copy link
Contributor

Lash-L commented Oct 2, 2023

You can try this
Completely remove Roborock

Disable Govee

Restart

Readd Roborock

Altenatively, you can do a pip install dacite==1.8.0 . Read through the thread and you should see a lot of different ways to do it

@chadbaum
Copy link
Author

chadbaum commented Oct 2, 2023

Reviewing other thread, will try some of those things, like disabling Govee.

@chadbaum
Copy link
Author

chadbaum commented Oct 2, 2023

OK so disabling Govee before adding Roborock after updating the manifest worked. I then re-enabled and Govee is working now too. Thanks @Lash-L .

@jorblad
Copy link

jorblad commented Oct 5, 2023

I have the same problem but I don't have Govee installed, I do have Homewhiz that is also using dacite but in that manifest it does'nt lock to a specific version.

{
  "domain": "homewhiz",
  "name": "HomeWhiz",
  "documentation": "https://github.com/rowysock/home-assistant-HomeWhiz",
  "issue_tracker": "https://github.com/rowysock/home-assistant-HomeWhiz/issues",
  "config_flow": true,
  "codeowners": [
    "@rowysock",
    "@TechHummel"
  ],
  "requirements": [
    "bleak",
    "bleak_retry_connector",
    "dacite",
    "aiohttp",
    "bidict"
  ],
  "dependencies": [
    "bluetooth"
  ],
  "version": "0.0.6",
  "bluetooth": [
    {
      "connectable": false,
      "local_name": "HwZ*"
    }
  ],
  "iot_class": "local_push"
}

@Lash-L
Copy link
Contributor

Lash-L commented Oct 5, 2023

You more than likely have something else using it then @jorblad You can always test by following the steps above for disabling it and reinstalling roborock

To see if something else is using it, do a pip show dacite in your ssh/ docker env

@jorblad
Copy link

jorblad commented Oct 5, 2023

You more than likely have something else using it then @jorblad You can always test by following the steps above for disabling it and reinstalling roborock

To see if something else is using it, do a pip show dacite in your ssh/ docker env

Requires:
Required-by: brother, gios, home-assistant-chip-clusters, nettigo-air-monitor, python-matter-server, python-roborock is the result from that.

@Lash-L
Copy link
Contributor

Lash-L commented Oct 5, 2023

You more than likely have something else using it then @jorblad You can always test by following the steps above for disabling it and reinstalling roborock

To see if something else is using it, do a pip show dacite in your ssh/ docker env

Requires:

Required-by: brother, gios, home-assistant-chip-clusters, nettigo-air-monitor, python-matter-server, python-roborock is the result from that.

You can manually install the right version by doingg pip install dacite==1.8.0

What version does it say it currently has? And what about your custom components?

@jorblad
Copy link

jorblad commented Oct 5, 2023

1.8.0...

Name: dacite
Version: 1.8.0
Summary: Simple creation of data classes from dictionaries.
Home-page: https://github.com/konradhalas/dacite
Author: Konrad Hałas
Author-email: [email protected]
License: MIT
Location: /usr/local/lib/python3.11/site-packages
Requires: 
Required-by: brother, gios, home-assistant-chip-clusters, nettigo-air-monitor, python-matter-server, python-roboroc

@Lash-L
Copy link
Contributor

Lash-L commented Oct 5, 2023

You are not having the same problem then, please share your error.

@jorblad
Copy link

jorblad commented Oct 5, 2023

I described in humbertogontijo/homeassistant-roborock#500 because that is the integration I have and have problem with but since it seemed very like this problem I wrote here as well.

@chadbaum
Copy link
Author

chadbaum commented Oct 5, 2023

FYI, in case anyone has same issue. The resolution of my issue above, where I disable Govee, restart, and then it unblocks Roborock from connecting, and then I can re-enable Govee -- that needs to, for now, be done every time you restart HA or you'll have the same issue. Maybe there will be an update to the Govee or Roborock integration in the future that makes that unnecessary, but for now, keep that in mind if you see an error with Roborock on reboot that has anything to do with dacite.

@Shaved-Ape
Copy link

Shaved-Ape commented Oct 5, 2023

So I tried what was done in this thread but I get no device found in Roborock account
I have disabled the govee integration im happy to not use it at all as its only one led strip but I need my vacuum to work :)

edit
Rolled back deleted the roborock, got it to work again upgraded and had to delete again but it worked again. Kept the govee disabled for the time being now attempting the latest update so may have to go through it all again

edit2

Updated to HA 2023.10.1 and roborock still working, I still have the govee disabled but Ill give it a try tomorrow when I have a little more time on my hands to test

@bgou
Copy link

bgou commented Oct 17, 2023

For those of you using hassos, here's what I did to fix the problem:

  1. ssh to host via add-on Advanced SSH & Web Terminal with Protection mode disabled.
  2. Go into the home-assistant docker container:
docker exec -it homeassistant bash
  1. Reinstall (remove and install) dacite
pip uninstall dacite
pip install dacite==1.8.1
  1. Restart hass and retry roborock setup.

Hope this helps! ✌️

@jhegewald
Copy link

For those of you using hassos, here's what I did to fix the problem:

  1. ssh to host via add-on Advanced SSH & Web Terminal with Protection mode disabled.
  2. Go into the home-assistant docker container:
docker exec -it homeassistant bash
  1. Reinstall (remove and install) dacite
pip uninstall dacite
pip install dacite==1.8.1
  1. Restart hass and retry roborock setup.

Hope this helps! ✌️

Didn't help for me. :-(

@David68220
Copy link

Work for me !!!! tanks

@cbflip2003
Copy link

Most painful issue I have had so far! finally a fix for this. For those who are not skilled in this area like me....

  1. Go to add-ons store
  2. Search for Advanced SSH & Web Terminal
  3. install and setup pwd
  4. turn off protection mode (just for this install, dont leave this off)
  5. terminal in to run commands provided by @bgou
    pip uninstall dacite
    pip install dacite==1.8.1
  6. reboot HA
  7. install the roborock add-on and you should now be working.

Please like this post to help others find it!

@p1ranha
Copy link

p1ranha commented Oct 23, 2023

Disabled govee, updated via pip3 to 1.8.1 and still the issue persists.

@inertia666
Copy link

inertia666 commented Nov 15, 2023

This worked briefly for me when Dacite was 1.8.0 but now it is up to 1.8.1 it isnt working again. Neither email code or using the password will list the devices.

The Govee Hacs plugin is working fine and it is more important to me to control my lights then see what the vacuum is doing in HA but i would like to get both working together.

@norimicry
Copy link

+1 this fix is not working at all for me

@Preferred69
Copy link

Well I have the supervised version of HA and it also did not work for me out of the box. Also had the other cloud based Govee integration. I have switched to the LAN version of govee. After that went into Advanced terminal/ssh and renamed the site-package name of dacite to daciteold. Then installed the dacite 1.8.0 and reboot. After that I could install the integration at least and it sees the robot. Now just have to test if it will work :)

@github-actions github-actions bot locked and limited conversation to collaborators Dec 21, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests