rytilahti / python-miio

Python library & console tool for controlling Xiaomi smart appliances
https://python-miio.readthedocs.io
GNU General Public License v3.0
3.69k stars 553 forks source link

target_humidity missing after Home assistant upgrade #1974

Open mwitkow opened 8 hours ago

mwitkow commented 8 hours ago

Describe the bug A clear and concise description of what the bug is.

Version information (please complete the following information):

Filed a related bug: https://github.com/home-assistant/core/issues/128172

Device information: If the issue is specific to a device [Use miiocli device --ip <ip address> --token <token> info]:

To Reproduce Steps to reproduce the behavior:

  1. Upgrade from 2024.06 to 2024.09.01 Home assistant.target_humidity is part of properties of hte humidifier

Expected behavior A clear and concise description of what you expected to happen.

Console output

Sep 30 15:13:50 cerberus docker[3883124]: 2024-09-30 16:13:49.995 ERROR (MainThread) [homeassistant.components.xiaomi_miio] Unexpected error fetching Smartmi Evaporative Humidifier Bedroom  data
Sep 30 15:13:50 cerberus docker[3883124]: Traceback (most recent call last):
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 354, in _async_refresh
Sep 30 15:13:50 cerberus docker[3883124]:     self.data = await self._async_update_data()
Sep 30 15:13:50 cerberus docker[3883124]:                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 271, in _async_update_data
Sep 30 15:13:50 cerberus docker[3883124]:     return await self.update_method()
Sep 30 15:13:50 cerberus docker[3883124]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 185, in update
Sep 30 15:13:50 cerberus docker[3883124]:     return await _async_fetch_data()
Sep 30 15:13:50 cerberus docker[3883124]:            ^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 180, in _async_fetch_data
Sep 30 15:13:50 cerberus docker[3883124]:     state = await hass.async_add_executor_job(device.status)
Sep 30 15:13:50 cerberus docker[3883124]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
Sep 30 15:13:50 cerberus docker[3883124]:     result = self.fn(*self.args, **self.kwargs)
Sep 30 15:13:50 cerberus docker[3883124]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/local/lib/python3.12/site-packages/miio/click_common.py", line 184, in _wrap
Sep 30 15:13:50 cerberus docker[3883124]:     return func(self, *args, **kwargs)
Sep 30 15:13:50 cerberus docker[3883124]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/local/lib/python3.12/site-packages/miio/integrations/humidifier/zhimi/airhumidifier.py", line 302, in status
Sep 30 15:13:50 cerberus docker[3883124]:     values = self.get_properties(properties, max_properties=_props_per_request)
Sep 30 15:13:50 cerberus docker[3883124]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/local/lib/python3.12/site-packages/miio/device.py", line 240, in get_properties
Sep 30 15:13:50 cerberus docker[3883124]:     values.extend(self.send(property_getter, _props[:max_properties]))
Sep 30 15:13:50 cerberus docker[3883124]:                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/local/lib/python3.12/site-packages/miio/device.py", line 107, in send
Sep 30 15:13:50 cerberus docker[3883124]:     return self._protocol.send(
Sep 30 15:13:50 cerberus docker[3883124]:            ^^^^^^^^^^^^^^^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]:   File "/usr/local/lib/python3.12/site-packages/miio/miioprotocol.py", line 202, in send
Sep 30 15:13:50 cerberus docker[3883124]:     self.__id = payload["id"]
Sep 30 15:13:50 cerberus docker[3883124]:                 ~~~~~~~^^^^^^
Sep 30 15:13:50 cerberus docker[3883124]: TypeError: byte indices must be integers or slices, not str
mwitkow commented 4 hours ago

This was a red herring. Seems to be a change in home assistant. https://github.com/home-assistant/core/issues/128172