romedtino / simple-wyze-vac

Home Assistant Custom Component for Wyze Vacuum
48 stars 8 forks source link

[BUG] Vacuum control appears to still work but logs full of errors #47

Closed dnestico closed 1 year ago

dnestico commented 1 year ago

Describe the bug So it seems I can still control my robot vacuum through HA just fine but the log is now constantly full of errors which I'd like to get rid of hopefully.

To Reproduce Steps to reproduce the behavior:

  1. Check logs
  2. See it's full of errors

Expected behavior Logs should not be full of errors constantly.

Screenshots

Screen Shot 2022-12-01 at 12 22 52 AM Screen Shot 2022-12-01 at 12 25 33 AM Screen Shot 2022-12-01 at 12 36 54 AM

Simple Wyze Vac Version

Wyze Vacuum Firmware Version

Home Assistant Version

LOGS ------------------------------------------------------------------------------------------------------

This error originated from a custom integration.

Logger: custom_components.simple_wyze_vac.vacuum Source: custom_components/simple_wyze_vac/vacuum.py:323 Integration: Simple Wyze Vac (documentation) First occurred: November 30, 2022 at 11:16:29 PM (20 occurrences) Last logged: 12:09:42 AM

Please reload this component.


This error originated from a custom integration.

Logger: custom_components.simple_wyze_vac.vacuum Source: custom_components/simple_wyze_vac/vacuum.py:322 Integration: Simple Wyze Vac (documentation) First occurred: November 30, 2022 at 11:16:29 PM (20 occurrences) Last logged: 12:09:42 AM

self._scan_interval is bugged? The last update was 2022-11-30 23:58:42.010227 which 0:01:00 hasn't passed. Not updating. self._scan_interval is bugged? The last update was 2022-12-01 00:02:42.076385 which 0:01:00 hasn't passed. Not updating. self._scan_interval is bugged? The last update was 2022-12-01 00:04:42.066572 which 0:01:00 hasn't passed. Not updating. self._scan_interval is bugged? The last update was 2022-12-01 00:07:30.708881 which 0:01:00 hasn't passed. Not updating. self._scan_interval is bugged? The last update was 2022-12-01 00:08:42.108569 which 0:01:00 hasn't passed. Not updating.


This error originated from a custom integration.

Logger: homeassistant.helpers.entity Source: custom_components/simple_wyze_vac/vacuum.py:328 Integration: Simple Wyze Vac (documentation) First occurred: 12:00:52 AM (1 occurrences) Last logged: 12:00:52 AM

Update for vacuum.nestico_robot_vacuum fails Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 527, in async_update_ha_state await self.async_device_update() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_device_update await task File "/config/custom_components/simple_wyze_vac/vacuum.py", line 328, in async_update vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac)) File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/simple_wyze_vac/vacuum.py", line 328, in vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac)) File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 32, in info vacuums = [_vacuum for _vacuum in self._list_vacuums() File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 22, in _list_vacuums return [device for device in super()._list_devices( File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/base.py", line 73, in _list_devices return self._api_client().get_object_list()["data"]["device_list"] TypeError: 'NoneType' object is not subscriptable


This error originated from a custom integration.

Logger: homeassistant.helpers.entity Source: custom_components/simple_wyze_vac/vacuum.py:387 Integration: Simple Wyze Vac (documentation) First occurred: November 30, 2022 at 11:58:38 PM (1 occurrences) Last logged: November 30, 2022 at 11:58:38 PM

Update for vacuum.nestico_robot_vacuum fails Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 527, in async_update_ha_state await self.async_device_update() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_device_update await task File "/config/custom_components/simple_wyze_vac/vacuum.py", line 361, in async_update await self.get_last_map() File "/config/custom_components/simple_wyze_vac/vacuum.py", line 387, in get_last_map vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac)) File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/simple_wyze_vac/vacuum.py", line 387, in vacuum = await self.hass.async_add_executor_job(lambda: self._client.vacuums.info(device_mac=self._vac_mac)) File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 32, in info vacuums = [_vacuum for _vacuum in self._list_vacuums() File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/devices/vacuums.py", line 22, in _list_vacuums return [device for device in super()._list_devices( File "/usr/local/lib/python3.10/site-packages/wyze_sdk/api/base.py", line 73, in _list_devices return self._api_client().get_object_list()["data"]["device_list"] TypeError: 'NoneType' object is not subscriptable


This error originated from a custom integration.

Logger: custom_components.simple_wyze_vac.vacuum Source: custom_components/simple_wyze_vac/vacuum.py:84 Integration: Simple Wyze Vac (documentation) First occurred: November 30, 2022 at 11:15:29 PM (1 occurrences) Last logged: November 30, 2022 at 11:15:29 PM

Simple Wyze Vac Polling every 0:01:00. Careful of hitting Wyze servers rate limits.

romedtino commented 1 year ago

Have you tried restarting the component image ?

Or restarting Home Assistant all together?

That error is a bit ominous because it's saying async_update is being called a lot sooner than your poll time. That logic is Home Assistant itself at that point and is outside the logic of this custom component.

Also, 1 minute polling will most likely get you rate limited by Wyze as even that seems too frequent. I definitely recommend putting that at something higher like 10 minutes.

dnestico commented 1 year ago

That error is a bit ominous because it's saying async_update is being called a lot sooner than your poll time. That logic is Home Assistant itself at that point and is outside the logic of this custom component.

So I found the automation that syncs the state was set to 1 minute instead of recommended 2 minutes, so changed that just now, hopefully, helps.

Or restarting Home Assistant altogether?

I have multiple times but the errors eventually returned.

I definitely recommend putting that at something higher like 10 minutes.

10 minutes?.. wow. Won't that make it that the state doesn't update on time and then my automations that notify me if it's cleaning/error/charging or returned to dock just not send at the right time?

PS, the polling is currently set to the recommended 1 minute.

"How often should status be refreshed when running and charging?" is 2 minutes

"How often should status be refreshed when docked? (optional)" is 10 minutes.