-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
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
Ecovacs integration broken on core-2022.7 #74564
Comments
ecovacs documentation |
Hey there @OverloadUT, mind taking a look at this issue as it has been labeled with an integration ( |
This comment was marked as off-topic.
This comment was marked as off-topic.
A dirty solution might be
to:
5.- Restar HA to finish. (Translated thanks to google translate ) |
@Marcoske23 - thank you for the hack! Clear instructions too. However, HA would not load ecovacs, citing a new issue with asyncio.get_event_loop. Logger: homeassistant.setup Error during setup of component ecovacs |
This comment was marked as off-topic.
This comment was marked as off-topic.
🤚 I have the same issue! 👇 Read belowHi there! Sorry to read you are experiencing the same issue as more people here. Nobody likes having issues 😞 Finding an issue on a GitHub issue tracker that matches your problem is kinda nice: At least you know you are not alone. So, let's leave a commit with: "Yeah, I have the same issue", or "+1!!!". 🚫 No! Please do not create "I have the same issue" comments!Not just this issue or this project, but anywhere on GitHub or any issue tracker on the internet even. It doesn't add to triaging the issue. It only generates noise when reading / triaging the case. What to do instead?Instead, go to the top of the issue, and add a 👍 emoji reaction. That way, we can still see that you (and how many others) experience this issue while keeping the issue threads nice and clean. Thanks! ❤️ ../Frenck |
Do you have a complete log of debug? |
Looks like we need someone to either take over the abandoned sucks library or fork it to a new library.
|
Here is a git where the effort is made to create a library for ecovacs. Unfortunately it only works for some devices and they are looking for people to help them test and recognize the commands for other devices. (I personally try to help this git from a deebot 500 ecovacs but more people with more models are needed). |
I have a fix but it's not necessarily an HA issue. The underlying library (sleekxmppfs) is quite outdated compared to the head branch and apparently is no longer working. I was able to pull fritzy/SleekXMPP, update it to work with python 3.10, and get HA to work nicely again. I put in a PR with sleekxmppfs and if this gets approved, can move on to add the updates. The actual commit that made this work was fairly simple: aszymanik/SleekXMPP@8fc0359 If you cannot wait until these PR requests go through, you can make the following changes:
If you are running HA in docker- you will need to enter the container to perform these commands.
|
Not really familiar witht the PR structure. Did you put a PR to ha core or to the sleekxmppfs repo? Because last activity from the main branch is really some time ago as far i can tell. I think none is maintaining it anymore so none is merging the pull requests. This is old PR is kinda teling : Sorry if i am getting somthing wrong. |
The PR is for sleekxmppfs which is owned by the same person with HA's sucks fork and the owner of this integration (@OverloadUT). I don't think the owner in maintaining it anymore, I agree with you. In order to generate a viable PR in HA, I'd have to somehow publish my updated library to PyPI (I think)... stay tuned... |
the
|
maybe the |
#74564 (comment) Might have to clone the project for Docker users |
Hmm any update on this one? Should we contact somone from HA core team? |
I'm still on this, but need more time, since very limited spare time at the moment. |
Thank you a lot for your work and free time you’re putting into it. Much appreciated!!! |
@mib1185 in order to authenticate (by which I mean bypass expired certificates and verification itself), you will need to modify the slixmpp library in xmlstream/certs.py to: def extract_dates(raw_cert: bytes) -> Tuple[Optional[datetime], Optional[datetime]]:
return None, None and def verify(expected: str, raw_cert: bytes) -> Optional[bool]:
return None Note: this completely bypasses any safety checks on the certificates but should allow slixmpp to continue. I am still working to get write access to the slickxmpp library as this would update the in-use library and would not require also modifying the sucks library. Slickxmpp is old but proven with sucks and I don't know what sort of issues down the line would come from switching to slixmpp. Hats off to you if you can get it working. |
Any progress on this? Would love to have it working again! |
Just updating, this issue still persists with update 2022.8.0 |
#74564 (comment) fixed it for me on Home Assistant Operating System (Raspberry Pi). Could this be integrated into core? |
for me it's not working |
Just adding my Name to this. Tried installing the component . failed validation test on reboot. Home Assistant 2022.8.3 Error In log
|
Hey folks- |
Okay!! We did it! Well the author did it... I just helped her along :) Anyway- the updated sleek module was pushed to PyPI and should automatically be updated on next HA release. I'm going to keep the issue open until I feel confident this works for everyone. @frenck- when the next HA release is published, HA will automatically update all of its dependencies right? The updated dependency for this integration is published on PyPI -- it looks like it meets requirements for dependencies. Is there anything else I need to do? Thank you. |
According to #77009 (comment): the sucks library must be version incremented in order for HA core to pick up the new sleek update. Stay tuned- this might be a while again. For those of you comfortable in ssh/terminal/docker container: Since the sleek owner pushed it into pypi, you can enter your HA instance with the following and ecovacs integration should work now (and after restarting). If you are running a docker container, you will need to commit the changes to a new image then specify that new image in your docker-compose file. Someone above said that after restart, the changes disappeared. This will fix that. Here is a brief explanation of how to save a new image: https://stackoverflow.com/a/71127180 Fingers crossed! |
We might need either a new release of sucks lib or an update to ha that sets the new version of sleekxmppfs |
not sure if this is related, but after manually updating sleekxmppfs, this is the error i see when trying to re-enable the ecovacs component:
|
Which installation are you running? It looks like the update reverted back to the old library. If using docker, you'd have to commit the image then restart the container. If installed on bare metal (not sure what HASS is calling it) or supervised, you'd at the minimum have to completely restart HA or even reboot for good measure. I havent used a Yellow yet |
Its a bare metal install (yeah, the names are pretty confusing). But even after a reboot of the machine, the same thing happens. That said, there's something wrong with the upgrade via pip:
So i must have done something wrong when i ran the upgrade. I'll wait til the dependencies are bumped and try again. |
This is the output i get on a NUC install hassio via terminal into hassio |
This issue seems to be fixed in HA 2022.8.7, but can't find any code commit related to it. |
same here... HA 2022.8.7 fixed the Problem for me <3 |
It doesnt seem to be working for me after the update I'm able to add in an ecovacs entity, but when i try to actually control it, it fails:
|
It didn't work for me at first but I then realised I had commented out the config entry. Uncommented, restarted now working great. |
Configuration.yaml config is set to UK for the country code and EU for continent (if that makes a difference?) Vacuum shows up as entity, but get the following error when trying any action via HA: Logger: homeassistant.components.websocket_api.http.connection [547272978688] |
PARTY PARTY @asellitt @aperr69 - I'm going to close this particular issue as the root cause was with SleekXMPPfs and python3.10. It seems like you are facing a different problem so this should be put into a new issue. Just out of curiosity (still closing this issue), you could try changing your country code to US and continent to NA and seeing if it'll work again. The error is that the xmpp recipient is unavailable. I'm in the US and changed to UK/EU and it had some strange behavior (toggle switch didnt work but could control from within the vacuum's lovelace card). Neither of you are in North America so it could be a region specific issue. But again, this is a separate issue so I'd like to close this pending other folks with the python3.10 issue still having problems. Much thanks to @OverloadUT for her help with this matter. |
HA 2022.8.7 did not fix the problem for me. Also using pip install --upgrade sleekxmppfs in my HA install did not fix it (it updated sleekxmppfs though) `Logger: homeassistant.loader Unexpected exception importing component custom_components.deebot |
Hi @JBakers |
Or stop using it since the Ecovacs component works. |
I'm so sorry if this is indeed the case. I understand the ridicule towards me if so. I |
No shame in the game, @JBakers. Anyone using Home Assistant for a while will find previously added custom components have since been more natively supported. That's the great thing about Home Assistant, it is always growing and improving! |
The problem
Ecovacs integration working in previous core (core-2022.6) but will no longer load. It appears to be a library depreciation (collections) related to Python 3.10.
What version of Home Assistant Core has the issue?
core-2022.7
What was the last working version of Home Assistant Core?
core-2022.6
What type of installation are you running?
Home Assistant Container
Integration causing the issue
ecovacs
Link to integration documentation on our website
https://www.home-assistant.io/integrations/ecovacs/
Diagnostics information
Logger: homeassistant.loader
Source: components/ecovacs/init.py:6
First occurred: 11:49:51 PM (1 occurrences)
Last logged: 11:49:51 PM
Unexpected exception importing component homeassistant.components.ecovacs
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 599, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File "/usr/local/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/usr/src/homeassistant/homeassistant/components/ecovacs/init.py", line 6, in
from sucks import EcoVacsAPI, VacBot
File "/usr/local/lib/python3.10/site-packages/sucks/init.py", line 10, in
from sleekxmppfs import ClientXMPP, Callback, MatchXPath
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/init.py", line 20, in
from sleekxmppfs.stanza import Message, Presence, Iq
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/stanza/init.py", line 10, in
from sleekxmppfs.stanza.error import Error
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/stanza/error.py", line 9, in
from sleekxmppfs.xmlstream import ElementBase, ET
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/xmlstream/init.py", line 9, in
from sleekxmppfs.jid import JID
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/jid.py", line 25, in
from sleekxmppfs.thirdparty import OrderedDict
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/thirdparty/init.py", line 13, in
from sleekxmppfs.thirdparty.orderedset import OrderedSet
File "/usr/local/lib/python3.10/site-packages/sleekxmppfs/thirdparty/orderedset.py", line 25, in
class OrderedSet(collections.MutableSet):
AttributeError: module 'collections' has no attribute 'MutableSet'
Example YAML snippet
No response
Anything in the logs that might be useful for us?
Found this snippet which may be the fix for this library: $ python3 Python 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import collections >>> collections.MutableSet <stdin>:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working <class 'collections.abc.MutableSet'>
Additional information
No response
The text was updated successfully, but these errors were encountered: