MTrab/landroid_cloud

KeyError: 'charging'

Opened this issue · 0 comments

Bouni commented

Describe the issue

I see my logs getting filled with various KeyErrors

I already deleted the integration and re-added it but still get these errors.

Side note: I know for sure that at the moment my mower is out of battery because of a problem with the docking station, but still these errors shouldn't fill the logs.

What version of Home Assistant Core has the issue?

core-2024.5.3

What was the last working version of Home Assistant Core?

No response

What version of the Landroid Cloud integration do you have installed

5.0.4

What type of installation are you running?

Home Assistant Container

Which make and model is the mower used for this integration?

Worx Landroid S450 (WR101SI)

Diagnostics information (NOT log entries!)

config_entry-landroid_cloud-0f67933d5f0cd0d61ccf4dafeeb7a7cc.json

Relevant log entries

home-assistant  | 2024-05-21 12:47:47.136 ERROR (MainThread) [homeassistant.components.lawn_mower] Error adding entity lawn_mower.mahroboter for domain lawn_mower with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 400, in async_added_to_hass
home-assistant  |     await super().async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 210, in async_added_to_hass
home-assistant  |     self.update_callback()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 470, in update_callback
home-assistant  |     self.data_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 370, in data_update
home-assistant  |     LoggerType.DATA_UPDATE, "Last update: %s", device.last_status["timestamp"]
home-assistant  |                                                ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
home-assistant  | TypeError: 'NoneType' object is not subscriptable
home-assistant  | 2024-05-21 12:47:47.143 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.mahroboter_battery for domain sensor with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
home-assistant  |     await coro
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1025, in async_added_to_hass
home-assistant  |     await self.handle_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1048, in handle_update
home-assistant  |     new_attrib.update({key: self.device.battery[key]})
home-assistant  |                             ~~~~~~~~~~~~~~~~~~~^^^^^
home-assistant  | KeyError: 'charging'
home-assistant  | 2024-05-21 12:47:47.150 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.mahroboter_blades_total_on_time for domain sensor with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
home-assistant  |     await coro
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1025, in async_added_to_hass
home-assistant  |     await self.handle_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1035, in handle_update
home-assistant  |     new_val = self.entity_description.value_fn(self.device)
home-assistant  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
home-assistant  |   File "/config/custom_components/landroid_cloud/sensor.py", line 83, in <lambda>
home-assistant  |     round(landroid.blades["total_on"] / 60, 2)
home-assistant  |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
home-assistant  | TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'
home-assistant  | 2024-05-21 12:47:47.153 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.mahroboter_blades_current_on_time for domain sensor with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
home-assistant  |     await coro
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1025, in async_added_to_hass
home-assistant  |     await self.handle_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1035, in handle_update
home-assistant  |     new_val = self.entity_description.value_fn(self.device)
home-assistant  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
home-assistant  |   File "/config/custom_components/landroid_cloud/sensor.py", line 100, in <lambda>
home-assistant  |     round(landroid.blades["current_on"] / 60, 2)
home-assistant  |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
home-assistant  | TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'
home-assistant  | 2024-05-21 12:47:47.169 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.mahroboter_distance_driven for domain sensor with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
home-assistant  |     await coro
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1025, in async_added_to_hass
home-assistant  |     await self.handle_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1057, in handle_update
home-assistant  |     new_attrib.update({"meters": self.device.statistics["distance"]})
home-assistant  |                                  ^^^^^^^^^^^^^^^^^^^^^^
home-assistant  | AttributeError: 'DeviceHandler' object has no attribute 'statistics'
home-assistant  | 2024-05-21 12:47:47.181 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.mahroboter_total_worktime for domain sensor with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
home-assistant  |     await coro
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1025, in async_added_to_hass
home-assistant  |     await self.handle_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1063, in handle_update
home-assistant  |     if "worktime_total" in self.device.statistics
home-assistant  |                            ^^^^^^^^^^^^^^^^^^^^^^
home-assistant  | AttributeError: 'DeviceHandler' object has no attribute 'statistics'
home-assistant  | 2024-05-21 12:47:47.201 ERROR (MainThread) [homeassistant.components.binary_sensor] Error adding entity binary_sensor.mahroboter_battery_charging for domain binary_sensor with platform landroid_cloud
home-assistant  | Traceback (most recent call last):
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
home-assistant  |     await coro
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
home-assistant  |     await entity.add_to_platform_finish()
home-assistant  |   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
home-assistant  |     await self.async_added_to_hass()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1401, in async_added_to_hass
home-assistant  |     await self.handle_update()
home-assistant  |   File "/config/custom_components/landroid_cloud/device_base.py", line 1407, in handle_update
home-assistant  |     self._attr_is_on = self.entity_description.value_fn(self.device)
home-assistant  |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
home-assistant  |   File "/config/custom_components/landroid_cloud/binary_sensor.py", line 21, in <lambda>
home-assistant  |     value_fn=lambda landroid: landroid.battery["charging"],
home-assistant  |                               ~~~~~~~~~~~~~~~~^^^^^^^^^^^^
home-assistant  | KeyError: 'charging'

Additional information

No response