albertogeniola / meross-homeassistant

Custom component that leverages the Meross IoT library to integrate with Homeassistant
MIT License
719 stars 82 forks source link

Desk Lamp MDL110HK state not displayed in HA #407

Closed PABHudds closed 1 year ago

PABHudds commented 1 year ago

The state and brightness are controllable from the Entity card in HA, but are not reflected back, so it always reverts to displaying off & 0%. Consequently, it is not possible to turn the lamp off from the UI as it thinks it is already off. Works fine on Meross App. Garage doors work fine. Tried all 3 communication options.

This lamp support color temperature but not RGB

Your environment HomeAssistant version: -- 2022.11.5 (9.3) Hassio Version (if applicable): 9.3 Hardware environment: Raspberry Pi 3B

== LOGS ===

Logger: meross_iot.controller.device Source: custom_components/meross_cloud/light.py:100 Integration: Meross Cloud IoT First occurred: 16:09:42 (13 occurrences) Last logged: 17:12:45

Error occurred while firing push notification event Namespace.CONTROL_LIGHT with data: {'light': {'temperature': 100, 'luminance': 71, 'channel': 0, 'capacity': 6}} Error occurred while firing push notification event Namespace.CONTROL_LIGHT with data: {'light': {'temperature': 100, 'luminance': 64, 'channel': 0, 'capacity': 6}} Error occurred while firing push notification event Namespace.CONTROL_LIGHT with data: {'light': {'temperature': 100, 'luminance': 55, 'channel': 0, 'capacity': 6}} Error occurred while firing push notification event Namespace.CONTROL_LIGHT with data: {'light': {'temperature': 100, 'luminance': 53, 'channel': 0, 'capacity': 6}} Error occurred while firing push notification event Namespace.CONTROL_LIGHT with data: {'light': {'temperature': 100, 'luminance': 52, 'channel': 0, 'capacity': 6}} Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/meross_iot/controller/device.py", line 123, in _fire_push_notification_event await c(namespace=namespace, data=data, device_internal_id=device_internal_id) File "/config/custom_components/meross_cloud/init.py", line 310, in _async_push_notification_received self.async_schedule_update_ha_state(force_refresh=full_update) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 690, in async_schedule_update_ha_state self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state attr.update(self.state_attributes or {}) File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 986, in state_attributes color_mode = self._light_internal_color_mode File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 817, in _light_internal_color_mode if ColorMode.HS in supported and self.hs_color is not None: File "/config/custom_components/meross_cloud/light.py", line 100, in hs_color return color_util.color_RGB_to_hs(rgb) TypeError: homeassistant.util.color.color_RGB_to_hs() argument after must be an iterable, not NoneType

Logger: homeassistant Source: custom_components/meross_cloud/light.py:100 Integration: Meross Cloud IoT First occurred: 16:11:40 (40 occurrences) Last logged: 17:29:41

Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 110, in async_update_listeners update_callback() File "/config/custom_components/meross_cloud/init.py", line 254, in _http_data_changed self.async_schedule_update_ha_state(force_refresh=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 690, in async_schedule_update_ha_state self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 585, in _async_write_ha_state attr.update(self.state_attributes or {}) File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 986, in state_attributes color_mode = self._light_internal_color_mode File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 817, in _light_internal_color_mode if ColorMode.HS in supported and self.hs_color is not None: File "/config/custom_components/meross_cloud/light.py", line 100, in hs_color return color_util.color_RGB_to_hs(rgb) TypeError: homeassistant.util.color.color_RGB_to_hs() argument after must be an iterable, not NoneType

albertogeniola commented 1 year ago

Hi @PABHudds ,

that sounds like a device we never tested before. In order to better understand what is the problem here, we need to investigate a bit more how that device works. At the moment I have no Desk Lamp to test. However, if you know how to deal with Python, you might provide some help via the MerossIot Sniffer and open a device compatibility issue [here].(https://github.com/albertogeniola/MerossIot/issues)

vFondevilla commented 1 year ago

@albertogeniola I'm suffering the same issue, I just created the GH issue for the compatibility, ping me if you need anything else and I'll get back to you ASAP.

albertogeniola commented 1 year ago

Hi @vFondevilla , I am working on a new version of the sniffer which should improve information gathering and allow me to add support for new devices even if I don't own them physically. I'll update the other issue when ready and I'll ask you to repeat the data capture with the updated version of the sniffer.

Thanks!