home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.05k stars 29.72k forks source link

Ecovacs - component not loading #18054

Closed christensonautohome closed 5 years ago

christensonautohome commented 5 years ago

Home Assistant release with the issue: using HASSIO - 0.81.2

Last working Home Assistant release (if known): Can't remember if it was 0.79 or if it might have been working in 0.80 (I think 0.80)

Operating environment (Hass.io/Docker/Windows/etc.): Pi3+

Component/platform: ecovacs

Description of problem: It appears the setup is taking too long and as a result the component is no loading.

2018-10-31 10:08:56 WARNING (MainThread) [homeassistant.setup] Setup of rainmachine is taking over 10 seconds.
2018-10-31 10:09:05 WARNING (MainThread) [homeassistant.setup] Setup of ecovacs is taking over 10 seconds.
2018-10-31 10:09:15 WARNING (MainThread) [homeassistant.components.vacuum] Setup of platform ecovacs is taking over 10 seconds.
2018-10-31 10:10:05 ERROR (MainThread) [homeassistant.components.vacuum] Setup of platform ecovacs is taking longer than 60 seconds. Startup will proceed without waiting any longer.

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

ecovacs:
  username: email@email.com
  password: **
  country: us
  continent: na

Traceback (if applicable):

Additional information:

christensonautohome commented 5 years ago

found this in my log... this is among the last log files for ecovacs. this appears after the message saying it's taking over 60 seconds

2018-10-31 12:35:46 DEBUG (SyncWorker_4) [homeassistant.util.json] JSON file not found: /usr/local/lib/python3.6/site-packages/homeassistant/components/.translations/ecovacs.en.json
christensonautohome commented 5 years ago
2018-10-31 12:34:19 DEBUG (SyncWorker_1) [sucks] got {'code': '0000', 'msg': '操作成功', 'time': 1541003659086, 'data': {'authCode': 'xxx', 'ecovacsUid': 'xxx'}}
2018-10-31 12:34:19 DEBUG (SyncWorker_1) [sucks] calling user api loginByItToken with {'country': 'US', 'resource': 'xxx', 'realm': 'ecouser.net', 'userId': 'xxx', 'token': 'xxx'}
2018-10-31 12:34:20 DEBUG (SyncWorker_1) [sucks] got {'todo': 'result', 'result': 'ok', 'userId': 'cxxx', 'resource': 'x', 'token': 'xxx'}
2018-10-31 12:34:20 DEBUG (SyncWorker_1) [root] Switching to shorter UID xxx
2018-10-31 12:34:20 DEBUG (SyncWorker_1) [root] EcoVacsAPI connection complete
2018-10-31 12:34:20 DEBUG (SyncWorker_1) [sucks] calling user api GetDeviceList with {'userid': 'xxx', 'auth': {'with': 'users', 'userid': 'xxx', 'realm': 'ecouser.net', 'token': 'xxx', 'resource': 'xxx'}}
2018-10-31 12:34:21 DEBUG (SyncWorker_1) [sucks] got {'todo': 'result', 'result': 'ok', 'devices': [{'did': 'xxx', 'name': 'xxx', 'class': '155', 'resource': 'atom', 'nick': 'xxx', 'company': 'eco-legacy'}]}
kmlucy commented 5 years ago

I'm not sure if this is the same error, but mine works fine on 0.80.3, but breaks on 0.81.0 or newer. Here are the relevant logs:

2018-10-31 14:22:15 INFO (SyncWorker_8) [homeassistant.components.ecovacs] Discovered Ecovacs device on account: ******* with nickname Deebot
2018-10-31 14:22:15 WARNING (SyncWorker_8) [sleekxmpp.basexmpp] fulljid property deprecated. Use boundjid.resource
2018-10-31 14:22:15 INFO (MainThread) [homeassistant.setup] Setup of domain ecovacs took 2.0 seconds.
2018-10-31 14:22:15 INFO (MainThread) [homeassistant.loader] Loaded vacuum from homeassistant.components.vacuum
2018-10-31 14:22:15 INFO (MainThread) [homeassistant.setup] Setting up vacuum
2018-10-31 14:22:15 INFO (MainThread) [homeassistant.setup] Setup of domain vacuum took 0.0 seconds.
2018-10-31 14:22:15 INFO (MainThread) [homeassistant.loader] Loaded vacuum.ecovacs from homeassistant.components.vacuum.ecovacs
2018-10-31 14:22:15 INFO (MainThread) [homeassistant.components.vacuum] Setting up vacuum.ecovacs
2018-10-31 14:22:17 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Negotiating TLS
2018-10-31 14:22:17 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Using SSL version: TLSv1
2018-10-31 14:22:17 ERROR (read_thread) [sleekxmpp.basexmpp] day is out of range for month
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1492, in _process
    if not self.__read_xml():
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1564, in __read_xml
    self.__spawn_event(xml)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1632, in __spawn_event
    handler.prerun(stanza_copy)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/handler/callback.py", line 64, in prerun
    self.run(payload, True)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/handler/callback.py", line 76, in run
    self._pointer(payload)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/features/feature_starttls/starttls.py", line 64, in _handle_starttls_proceed
    if self.xmpp.start_tls():
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 889, in start_tls
    cert.verify(self._expected_server_name, self._der_cert)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/cert.py", line 133, in verify
    not_before, not_after = extract_dates(raw_cert)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/cert.py", line 111, in extract_dates
    not_before = datetime.strptime(not_before, '%Y%m%d%H%M%SZ')
  File "/usr/local/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/usr/local/lib/python3.6/_strptime.py", line 528, in _strptime
    datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month
2018-10-31 14:22:17 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Waiting for </stream:stream> from server
2018-10-31 14:22:25 WARNING (MainThread) [homeassistant.components.vacuum] Setup of platform ecovacs is taking over 10 seconds.
dgomes commented 5 years ago

These issues are being handled by the supporting library:

https://github.com/wpietri/sucks/issues

Please direct these issues to over there.

eracknaphobia commented 5 years ago

I'm seeing the same issue as @kmlucy. Works in 80.3, errors in every 81.X version. It appears that the sleekxmpp has changed between versions. I wonder if @OverloadUT can shed any light on what the issue might be.

Nm, I see that there is an open issue in the sucks repo as @dgomes mentioned. https://github.com/wpietri/sucks/issues/45

kmlucy commented 5 years ago

It may be an upstream issue, but something changed between 0.80.3 and 0.81.0. Until the upstream issue gets resolved, can we reverse whatever change caused this problem to pop up?

christensonautohome commented 5 years ago

Should l close my ticket? It seems as though this is being checked into here. Just odd that it was working on every 80.x version but under 81.x it appears broken. It also seems odd that the issue was seen by some as far back as August (post date on sucks issue page).

dgomes commented 5 years ago

The last change on the ecovacs platform was updating the supporting library. It would seam unwise to revert that update.

We can leave this issue open for reference, I've already marked it as "waiting-for-upstream"

kmlucy commented 5 years ago

Just FYI, I was able to get the Ecovacs component working again by reverting to the dependencies from 0.80. I run in Docker, so a simple Dockerfile with:

FROM homeassistant/home-assistant

RUN pip uninstall -y pyasn1 pyasn1-modules sleekxmpp slixmpp && pip install pyasn1==0.3.7 pyasn1-modules==0.1.5 sleekxmpp==1.3.2 dnspython3==1.15.0

fixes the problem. I'm not sure if reverting will cause problems for other components, but I haven't noticed any to date.

DemiMelfice commented 5 years ago

Just FYI, I was able to get the Ecovacs component working again by reverting to the dependencies from 0.80. I run in Docker, so a simple Dockerfile with:

FROM homeassistant/home-assistant

RUN pip uninstall -y pyasn1 pyasn1-modules sleekxmpp slixmpp && pip install pyasn1==0.3.7 pyasn1-modules==0.1.5 sleekxmpp==1.3.2 dnspython3==1.15.0

fixes the problem. I'm not sure if reverting will cause problems for other components, but I haven't noticed any to date.

I also revered mine, I've tried sleekxmpp 1.3.1 & 1.3.2 and in all occasions i'm seeing the ping error still. Don't suppose you know how to resolve this? Basically the times out the ping to the bot and that only time you get a status update is when it first initiates the connection on home assistant.

kmlucy commented 5 years ago

@DemiMelfice What ping error are you referring to? My N79 updates fine.

DemiMelfice commented 5 years ago

@DemiMelfice What ping error are you referring to? My N79 updates fine.

I see the following error: 2018-11-21 03:49:01 WARNING (SyncWorker_5) [sleekxmpp.xmlstream.handler.waiter] Timed out waiting for IqWait_a149c745-5a6e-417a-9226-89dab269696d-3

2018-11-21 03:49:01 WARNING (SyncWorker_5) [sucks] Ping did not reach VacBot. Will retry.

2018-11-21 03:49:01 DEBUG (SyncWorker_5) [sucks] *** Error type: cancel

2018-11-21 03:49:01 DEBUG (SyncWorker_5) [sucks] *** Error condition: remote-server-timeout

it then loads: 2018-11-21 03:49:01 DEBUG (SyncWorker_5) [homeassistant.components.vacuum.ecovacs] Vacuum initialized: E0000983316700380003 2018-11-21 03:49:01 DEBUG (SyncWorker_5) [homeassistant.components.vacuum.ecovacs] Adding Ecovacs Vacuums to Hass: []

after this is loads everthing such as GetCleanState, GetChargeState, GetBatteryInfo, GetLifeSpan and then the following: 2018-11-21 03:49:02 DEBUG (event_thread_0) [sucks] clean_status = stop fan_speed = None 2018-11-21 03:49:02 DEBUG (event_thread_0) [sucks] charge_status = charging 2018-11-21 03:49:02 DEBUG (event_thread_0) [sucks] battery_status = 100% 2018-11-21 03:49:02 DEBUG (event_thread_0) [sucks] error = get_life_span

2018-11-21 03:49:02 DEBUG (event_thread_0) [sucks] *** error = get_life_span

2018-11-21 03:49:02 DEBUG (event_thread_0) [sucks] *** error = get_life_span

2018-11-21 03:49:31 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:50:01 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:50:31 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:51:01 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:51:31 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:52:01 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:52:31 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:53:01 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:53:31 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:54:01 DEBUG (event_thread_0) [sucks] sending ping 2018-11-21 03:54:31 DEBUG (event_thread_0) [sucks] sending ping

when the vacuum cleaner is running it doesn't update within HA.

I have a R98

kmlucy commented 5 years ago

I haven't seen any of those errors with mine.

DemiMelfice commented 5 years ago

Can I ask you to check your init.py and confirm if at line 44 it looks like this:

    login_response = self.__call_login_by_it_token()
    self.user_access_token = login_response['token']
    if login_response['userId'] != self.uid:
         logging.debug("Switching to shorter UID " + login_response['userId'])
         self.uid = login_response['userId']
    logging.debug("EcoVacsAPI connection complete")
kmlucy commented 5 years ago

Which init.py?

DemiMelfice commented 5 years ago

Sorry the one under sucks components folder. I have HA in a docker so mines is located @ ./usr/local/lib/python3.6/site-packages/sucks/__init.py

kmlucy commented 5 years ago

I have the same code you posted in mine, but it starts at line 126. My __init__.py is identical to https://github.com/wpietri/sucks/blob/master/sucks/__init__.py

DemiMelfice commented 5 years ago

Thanks, I connect to the EU/UK and i'm using a R98. I believe everything else I have is the same set up as yours.

whadat1 commented 5 years ago

Has this issue been solved yet? I am hoping it is because I bought an Ecovacs N79S hoping I could set up and control it with Hass.io. Please say it's fixed.

h4nc commented 5 years ago

It is not fixed yet.

whadat1 commented 5 years ago

You think it's gonna be fixed seeing that it's been so long since the issue was opened. I might have to return my ecovacs and buy a different brand.

On Thursday, December 20, 2018, 4:37:20 PM EST, h4nc <notifications@github.com> wrote:  

It is not fixed yet.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

h4nc commented 5 years ago

I'm waiting for the fix since some months. I think it will be fixed. There is a workarround somewhere in the thread (i think).

My workarrount for now is to use ir commands provided by my broadlink rm mini to turn on the ecovacs. Would be better with the component, but yeah ... I hope it will be fixed

whadat1 commented 5 years ago

Sure wish I could find a workaround but I am not as verse. I am new to home automation and am learning each day.

kmlucy commented 5 years ago

The workaround is to install the previous dependencies:

pip uninstall -y pyasn1 pyasn1-modules sleekxmpp slixmpp && pip install pyasn1==0.3.7 pyasn1-modules==0.1.5 sleekxmpp==1.3.2 dnspython3==1.15.0

If you use Docker, you can just use kmlucy/docker-home-assistant instead of homeassistant/home-assistant for now.

h4nc commented 5 years ago

And hass.io users?

kmlucy commented 5 years ago

I'm not familiar enough with HASS.IO to know how to roll back the dependencies, sorry.

h4nc commented 5 years ago

ok, thanks

whadat1 commented 5 years ago

Oh Bum!! I am a Hass.io user. I hope someone who knows how to set up for Hass.io users will chip in.

ferdicoast commented 5 years ago

A real bum...any developments on this regarding Hass.io?

whadat1 commented 5 years ago

Ditto !! still waiting.

h4nc commented 5 years ago

Same here.

inputd commented 5 years ago

Apologies if this is known already but:

Issue persists with Home Assistant 0.85.0, Supervisor V141.

OverloadUT commented 5 years ago

No apologies needed; it definitely does not work with Hassio due to a bug in a dependency two levels up. The author of that dependency (SleekXMPP) has submitted changes recently that appear to fix the issue, but has not released a new version that contains the fixes. As soon as they do, we should be able to get a fix cascaded down to Hass.

I have been holding off investigating a way to work around the issue because I really just want the actual root cause to be fixed, but the amount of time we've been waiting for that to happen is making be not optimistic that it will happen.

I will look in to SleekXMPP's license to see if I can publish a temporary new build with the fix until an official one goes up.

JesCR commented 5 years ago

Thanks @OverloadUT !!

leofuscaldi commented 5 years ago

So, any news about the new version?

inputd commented 5 years ago

A small update:

Updating Hasssio today to 0.86.1, and a new error is now in the logs:

fulljid property deprecated. Use boundjid.resource
9:35 AM components/ecovacs.py (WARNING)
kmlucy commented 5 years ago

I'm getting a new error. It's not due to 0.86, as I got this just before I upgraded. It repeats every 6 seconds:

2019-01-24 17:28:12 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Negotiating TLS
2019-01-24 17:28:12 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Using SSL version: TLS 1.0
2019-01-24 17:28:12 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Certificate has expired.
2019-01-24 17:28:12 WARNING (read_thread) [sleekxmpp.xmlstream.xmlstream] Failed to send b"<stream:stream to='ecouser.net' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>"
2019-01-24 17:28:12 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Socket Error #9: Bad file descriptor

I had these logs on first start up:

2019-01-24 17:24:56 INFO (MainThread) [homeassistant.loader] Loaded ecovacs from homeassistant.components.ecovacs
2019-01-24 17:24:56 INFO (MainThread) [homeassistant.setup] Setting up ecovacs
2019-01-24 17:25:00 INFO (SyncWorker_8) [homeassistant.components.ecovacs] Discovered Ecovacs device on account: ********** with nickname Deebot
2019-01-24 17:25:02 WARNING (SyncWorker_8) [sleekxmpp.basexmpp] fulljid property deprecated. Use boundjid.resource
2019-01-24 17:25:02 INFO (MainThread) [homeassistant.setup] Setup of domain ecovacs took 5.8 seconds.
2019-01-24 17:25:02 INFO (MainThread) [homeassistant.loader] Loaded vacuum from homeassistant.components.vacuum
2019-01-24 17:25:02 INFO (MainThread) [homeassistant.setup] Setting up vacuum
2019-01-24 17:25:02 INFO (MainThread) [homeassistant.setup] Setup of domain vacuum took 0.1 seconds.
2019-01-24 17:25:02 INFO (MainThread) [homeassistant.loader] Loaded vacuum.ecovacs from homeassistant.components.vacuum.ecovacs
2019-01-24 17:25:02 INFO (MainThread) [homeassistant.components.vacuum] Setting up vacuum.ecovacs

Then eventually I get:

2019-01-24 17:26:02 ERROR (MainThread) [homeassistant.components.vacuum] Setup of platform ecovacs is taking longer than 60 seconds. Startup will proceed without waiting any longer.
kmlucy commented 5 years ago

With debug logging:

2019-02-01 15:06:05 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Waiting 2.3102475163116196 seconds before connecting.
2019-02-01 15:06:08 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] No remaining DNS records to try.
2019-02-01 15:06:08 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Waiting 4.762499272815132 seconds before connecting.
^C2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.xmlstream.resolver] DNS: Querying msg-na.ecouser.net for AAAA records.
2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.xmlstream.resolver] DNS: No AAAA records for msg-na.ecouser.net
2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.xmlstream.resolver] DNS: Querying msg-na.ecouser.net for A records.
2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Connecting to 47.88.66.164:5223
2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: connected
2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.thirdparty.statemachine]  ==== TRANSITION disconnected -> connected
2019-02-01 15:06:13 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] SEND (IMMED): <stream:stream to='ecouser.net' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] RECV: <stream:stream version="1.0" id="***ID***" from="ecouser.net">
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] RECV: <stream:features xmlns="http://etherx.jabber.org/streams"><auth xmlns="http://jabber.org/features/iq-auth" /><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls
><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms></stream:features>
2019-02-01 15:06:14 DEBUG (event_thread_0) [sleekxmpp.xmlstream.xmlstream] SEND (IMMED): <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls>
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] RECV: <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.features.feature_starttls.starttls] Starting TLS
2019-02-01 15:06:14 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Negotiating TLS
2019-02-01 15:06:14 INFO (read_thread) [sleekxmpp.xmlstream.xmlstream] Using SSL version: TLS 1.0
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] CERT: -----BEGIN CERTIFICATE-----
***CERTIFICATE***
-----END CERTIFICATE-----
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: ssl_cert
2019-02-01 15:06:14 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Certificate has expired.
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: session_end
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: disconnected
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.thirdparty.statemachine]  ==== TRANSITION connected -> disconnected
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] SEND (IMMED): <stream:stream to='ecouser.net' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: socket_error
2019-02-01 15:06:14 WARNING (read_thread) [sleekxmpp.xmlstream.xmlstream] Failed to send b"<stream:stream to='ecouser.net' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>"
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: session_end
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: socket_error
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: disconnected
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.thirdparty.statemachine]  ==== TRANSITION connected -> disconnected
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Event triggered: socket_error
2019-02-01 15:06:14 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Socket Error #9: Bad file descriptor
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] reconnecting...
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] connecting...
2019-02-01 15:06:14 DEBUG (read_thread) [sleekxmpp.xmlstream.xmlstream] Waiting 2.195583107649802 seconds before connecting.
insertjokehere commented 5 years ago

@kmlucy I was having this issue as well, dropping the upgrade from https://github.com/home-assistant/home-assistant/issues/18054#issuecomment-438657231 fixed things for me

h4nc commented 5 years ago

Just FYI, I was able to get the Ecovacs component working again by reverting to the dependencies from 0.80. I run in Docker, so a simple Dockerfile with:

FROM homeassistant/home-assistant

RUN pip uninstall -y pyasn1 pyasn1-modules sleekxmpp slixmpp && pip install pyasn1==0.3.7 pyasn1-modules==0.1.5 sleekxmpp==1.3.2 dnspython3==1.15.0

fixes the problem. I'm not sure if reverting will cause problems for other components, but I haven't noticed any to date.

is this also possible for hassio users?

kmlucy commented 5 years ago

@insertjokehere Are you talking about reverting to SleekXMPP as I talked about here? That fixes the day is out of range error, but not the new certificate has expired error I've been getting, at least for me.

insertjokehere commented 5 years ago

@kmlucy yes, that. With that change applied, I would get certificate has expired errors, and Home Assistant couldn't connect at all. Without that change (on 0.86.4) I get day is out of range errors, but Home Assistant can connect, and everything works as expected

kmlucy commented 5 years ago

@insertjokehere Mine doesn't work either way. Depending on whether I downgrade sleekxmpp, I can get one error or the other, but the component doesn't load either way.

TobyRh commented 5 years ago

As stated here: https://github.com/wpietri/sucks/issues/62#issuecomment-457949150 You can work around the expired sleekxmpp certificate by uninstalling pyans1 and pyans1-modules, so the certificate does not verify:

pip uninstall -y pyasn1 pyasn1-modules sleekxmpp slixmpp && pip install sleekxmpp==1.3.2 dnspython3==1.15.0

kmlucy commented 5 years ago

@TobyRh That did the trick. I've updated my custom Dockerfile to match, thanks.

inputd commented 5 years ago

I think this is already known, but just to be sure, the most recent updates for Hass.io:

HA: 0.87.0 Supervisor: 143 System: 2.8

Still have the following errors, and the platform still won't work:

day is out of range for month
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1492, in _process
    if not self.__read_xml():
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1564, in __read_xml
    self.__spawn_event(xml)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1632, in __spawn_event
    handler.prerun(stanza_copy)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/handler/callback.py", line 64, in prerun
    self.run(payload, True)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/handler/callback.py", line 76, in run
    self._pointer(payload)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/features/feature_starttls/starttls.py", line 64, in _handle_starttls_proceed
    if self.xmpp.start_tls():
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 889, in start_tls
    cert.verify(self._expected_server_name, self._der_cert)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/cert.py", line 133, in verify
    not_before, not_after = extract_dates(raw_cert)
  File "/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/cert.py", line 111, in extract_dates
    not_before = datetime.strptime(not_before, '%Y%m%d%H%M%SZ')
  File "/usr/local/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/usr/local/lib/python3.6/_strptime.py", line 528, in _strptime
    datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month

Setup of platform ecovacs is taking longer than 60 seconds. Startup will proceed without waiting any longer.

fulljid property deprecated. Use boundjid.resource
whadat1 commented 5 years ago

I was going to return my Deebot vacuum after I bought it and realize that it doesn't work with Hass.io but I got a Harmony Elite remote which works with Hass.io and got my Deebot hooked up.

h4nc commented 5 years ago

I have a similar setup in the meantime (broadlink). Sending IR commands is a workaround, as the working component is able to do much more than simple turning on and off.

Biggest limitation of sending IR is that it only works in the area of the IR transmitter. Wifi (components) also works in the next room.

Still hoping that someone figures that out (hassio) and this will be possible again. It’s been a few months now, so it doesn’t look that good I think.

skynet01 commented 5 years ago

Any updates on this? The only way I got it to work is through Alexa, and then hassio sends the commands to Alexa, would be good to get it working natively

h4nc commented 5 years ago

@OverloadUT anythin new on that? Do you think it will ever work again? It's been months. :(