albertogeniola / meross-homeassistant

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

MSS420f no longer working under HA #421

Closed blueferret closed 1 year ago

blueferret commented 1 year ago

Describe the bug

Merros MSS420f Powerstrip no longer works. As an additional pointer this no longer works in the Alexa skill so I suspect that something has changed in the Meross API. All my other Meross devices are still functioning fine in both HA and Alexa

Your environment

Home Assistant 2023.1.2 Supervisor 2022.12.1 Operating System 9.4 Frontend 20230104.0 - latest

Meross Version = 1.2.8

Logs taken when the issue happened

It finds the device but then seems to be unable to get details of the device... Device Prodigy (20..................6) is online, but timeout occurred when fetching its abilities.

albertogeniola commented 1 year ago

Hi @blueferret , can you please post all the relevant logs rather than just that line?

In any case, failing to collect the device's abilities is a major problem. Without that, there is no way for the integration to "understand" what the specific meross device is capable of. In my experience the failure when fetch of abilities might be related to a too frequent API calls. This might be the case when you have multiple meross devices.

So, here's what I'd suggest to do.

  1. Provide some more info about your setup: how many Meross Devices are you running within the same HA integration? What devices are them (strips, plugs, etc...)
  2. Try to unplug the Meross Device from the current; wait 5 minutes, plug it again, wait 5 minutes, then restart HA.
  3. If still it doesn't work, uninstall the Meross integration. Reboot HA and then install it again. This will trigger a "re-authentication" of the integration, and might possibly solve the issue, especially if this is somehow linked to the API limitation

Please provide the logs for attempt 2 and 3, so we can see if the problem is still the same. Eventually, you might run the meross_sniffer to try catch some info about that specific device. You can find the detailed info here.

kn-f commented 1 year ago

Hello, I'm facing a similar issue with a 425F Powestrip.

I've removed the devices from Home Assistant, stopped the server, removed the plugins (as in rm -rf ....) and then reinstalled v.1.2.9b1 (before I had v1.2.8).

I can confirm that the powerstrip is on and working properly from the app.

This is my log:

2023-01-24 22:15:20.624 WARNING (SyncWorker_3) [homeassistant.loader] We found a custom integration vesync which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-01-24 22:15:20.625 WARNING (SyncWorker_3) [homeassistant.loader] We found a custom integration meross_cloud which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-01-24 22:15:41.697 WARNING (MainThread) [custom_components.meross_cloud] Skip MQTT cert validation option set to: False
2023-01-24 22:15:42.484 WARNING (MainThread) [custom_components.meross_cloud] 
===============================
Meross Cloud Custom component
Developed by Alberto Geniola
Low level library version: 0.4.5.8b1
-------------------------------
This custom component is under development and not yet ready for production use.
In case of errors/misbehave, please report it here: 
https://github.com/albertogeniola/meross-homeassistant/issues

If you like this extension and you want to support it, please consider donating.
-------------------------------
List of devices reported by HTTP API:
- Sopra (mss310) - OnlineStatus.ONLINE
- Sotto (mss425f) - OnlineStatus.OFFLINE
===============================
2023-01-24 22:15:44.393 WARNING (MainThread) [meross_iot.manager] Found a new device Sopra (mss310, HW 2.0.0, FW 2.1.17, class: mss310:2.0.0:2.1.17) that has become online while we were offline.
2023-01-24 22:15:57.177 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry https://iot.meross.com for switch
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 533, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/switch/__init__.py", line 89, in async_unload_entry
    return await component.async_unload_entry(entry)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 183, in async_unload_entry
    await platform.async_reset()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 723, in async_reset
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 826, in async_remove
    await self.async_will_remove_from_hass()
  File "/config/custom_components/meross_cloud/__init__.py", line 318, in async_will_remove_from_hass
    self._coordinator.async_remove_listener(self._http_data_changed)
AttributeError: 'MerossCoordinator' object has no attribute 'async_remove_listener'
2023-01-24 22:15:57.188 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry https://iot.meross.com for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 533, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 579, in async_unload_entry
    return await component.async_unload_entry(entry)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 183, in async_unload_entry
    await platform.async_reset()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 723, in async_reset
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 826, in async_remove
    await self.async_will_remove_from_hass()
  File "/config/custom_components/meross_cloud/__init__.py", line 318, in async_will_remove_from_hass
    self._coordinator.async_remove_listener(self._http_data_changed)
AttributeError: 'MerossCoordinator' object has no attribute 'async_remove_listener'
2023-01-24 22:16:23.799 WARNING (MainThread) [custom_components.meross_cloud] Skip MQTT cert validation option set to: False
2023-01-24 22:16:24.047 WARNING (MainThread) [custom_components.meross_cloud] 
===============================
Meross Cloud Custom component
Developed by Alberto Geniola
Low level library version: 0.4.5.8b1
-------------------------------
This custom component is under development and not yet ready for production use.
In case of errors/misbehave, please report it here: 
https://github.com/albertogeniola/meross-homeassistant/issues

If you like this extension and you want to support it, please consider donating.
-------------------------------
List of devices reported by HTTP API:
- Sopra (mss310) - OnlineStatus.ONLINE
- Sotto (mss425f) - OnlineStatus.OFFLINE
===============================
2023-01-24 22:16:25.778 WARNING (MainThread) [meross_iot.manager] Found a new device Sopra (mss310, HW 2.0.0, FW 2.1.17, class: mss310:2.0.0:2.1.17) that has become online while we were offline.
2023-01-24 22:16:51.340 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry https://iot.meross.com for switch
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 533, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/switch/__init__.py", line 89, in async_unload_entry
    return await component.async_unload_entry(entry)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 183, in async_unload_entry
    await platform.async_reset()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 723, in async_reset
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 826, in async_remove
    await self.async_will_remove_from_hass()
  File "/config/custom_components/meross_cloud/__init__.py", line 318, in async_will_remove_from_hass
    self._coordinator.async_remove_listener(self._http_data_changed)
AttributeError: 'MerossCoordinator' object has no attribute 'async_remove_listener'
2023-01-24 22:16:51.344 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry https://iot.meross.com for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 533, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 579, in async_unload_entry
    return await component.async_unload_entry(entry)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 183, in async_unload_entry
    await platform.async_reset()
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 723, in async_reset
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 826, in async_remove
    await self.async_will_remove_from_hass()
  File "/config/custom_components/meross_cloud/__init__.py", line 318, in async_will_remove_from_hass
    self._coordinator.async_remove_listener(self._http_data_changed)
AttributeError: 'MerossCoordinator' object has no attribute 'async_remove_listener'
2023-01-24 22:16:51.348 WARNING (MainThread) [custom_components.meross_cloud] Skip MQTT cert validation option set to: False
2023-01-24 22:16:51.591 WARNING (MainThread) [custom_components.meross_cloud] 
===============================
Meross Cloud Custom component
Developed by Alberto Geniola
Low level library version: 0.4.5.8b1
-------------------------------
This custom component is under development and not yet ready for production use.
In case of errors/misbehave, please report it here: 
https://github.com/albertogeniola/meross-homeassistant/issues

If you like this extension and you want to support it, please consider donating.
-------------------------------
List of devices reported by HTTP API:
- Sopra (mss310) - OnlineStatus.ONLINE
- Sotto (mss425f) - OnlineStatus.OFFLINE
===============================
2023-01-24 22:16:53.413 WARNING (MainThread) [meross_iot.manager] Found a new device Sopra (mss310, HW 2.0.0, FW 2.1.17, class: mss310:2.0.0:2.1.17) that has become online while we were offline.
2023-01-24 22:16:53.556 ERROR (MainThread) [homeassistant.components.sensor] Platform meross_cloud does not generate unique IDs. ID sensor:#BASE:1909123558832025186448e1e9038b95:0:power:W already exists - ignoring sensor.sopra_mss310_power_w_main_channel
2023-01-24 22:16:53.558 ERROR (MainThread) [homeassistant.components.sensor] Platform meross_cloud does not generate unique IDs. ID sensor:#BASE:1909123558832025186448e1e9038b95:0:voltage:V already exists - ignoring sensor.sopra_mss310_voltage_v_main_channel
2023-01-24 22:16:53.560 ERROR (MainThread) [homeassistant.components.sensor] Platform meross_cloud does not generate unique IDs. ID sensor:#BASE:1909123558832025186448e1e9038b95:0:current:A already exists - ignoring sensor.sopra_mss310_current_a_main_channel
2023-01-24 22:16:54.126 ERROR (MainThread) [homeassistant.components.switch] Platform meross_cloud does not generate unique IDs. ID switch:#BASE:1909123558832025186448e1e9038b95:0 already exists - ignoring switch.sopra_mss310_main_channel
danislav commented 1 year ago

Not sure this is the same issue but here's the log:

socket.gaierror: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/meross_cloud/__init__.py", line 451, in async_setup_entry
    await meross_coordinator.initial_setup()
  File "/config/custom_components/meross_cloud/__init__.py", line 149, in initial_setup
    self._client, http_devices, creds_renewed = await get_or_renew_creds(
                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/meross_cloud/__init__.py", line 332, in get_or_renew_creds
    http_client = await MerossHttpClient.async_from_user_password(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/meross_iot/http_api.py", line 115, in async_from_user_password
    await cls._async_log(creds=creds,
  File "/usr/local/lib/python3.11/site-packages/meross_iot/http_api.py", line 390, in _async_log
    return await cls._async_authenticated_post(url=url,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/meross_iot/http_api.py", line 277, in _async_authenticated_post
    async with session.post(url, json=payload, headers=headers, proxy=http_proxy) as response:
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1141, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 536, in _request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 540, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 901, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1166, in _create_direct_connection
    raise ClientConnectorError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host iot.meross.com:443 ssl:default [Try again]
2023-07-06 00:25:22.492 WARNING (MainThread) [homeassistant.config_entries] Config entry 'https://iot.meross.com' for meross_cloud integration not ready yet: None; Retrying in background
2023-07-06 00:25:27.617 WARNING (MainThread) [custom_components.meross_cloud] Skip MQTT cert validation option set to: True
2023-07-06 00:25:34.212 WARNING (MainThread) [custom_components.meross_cloud]
===============================
Meross Cloud Custom component
Developed by Alberto Geniola
Low level library version: 0.4.5.7
-------------------------------
This custom component is under development and not yet ready for production use.
In case of errors/misbehave, please report it here:
https://github.com/albertogeniola/meross-homeassistant/issues

If you like this extension and you want to support it, please consider donating.
-------------------------------
List of devices reported by HTTP API:
- Kids Switch (mss425e) - OnlineStatus.ONLINE
===============================
2023-07-06 00:25:39.909 ERROR (MainThread) [homeassistant.components.switch] Platform meross_cloud does not generate unique IDs. ID switch:#BASE:2006288512802890814248e1e91d8631:0 already exists - ignoring switch.kids_switch_mss425e_main_channel
2023-07-06 00:25:39.962 ERROR (MainThread) [homeassistant.components.switch] Platform meross_cloud does not generate unique IDs. ID switch:#BASE:2006288512802890814248e1e91d8631:1 already exists - ignoring switch.kids_switch_mss425e_switch_1
2023-07-06 00:25:40.015 ERROR (MainThread) [homeassistant.components.switch] Platform meross_cloud does not generate unique IDs. ID switch:#BASE:2006288512802890814248e1e91d8631:3 already exists - ignoring switch.kids_switch_mss425e_switch_3
2023-07-06 00:25:40.052 ERROR (MainThread) [homeassistant.components.switch] Platform meross_cloud does not generate unique IDs. ID switch:#BASE:2006288512802890814248e1e91d8631:2 already exists - ignoring switch.kids_switch_mss425e_switch_2
2023-07-06 00:25:40.108 ERROR (MainThread) [homeassistant.components.switch] Platform meross_cloud does not generate unique IDs. ID switch:#BASE:2006288512802890814248e1e91d8631:4 already exists - ignoring switch.kids_switch_mss425e_usb
2023-07-06 00:28:17.961 WARNING (MainThread) [homeassistant.helpers.service] Unable to find referenced entities switch.kids_switch_mss425e_switch_1 or it is/they are currently not available