albertogeniola / meross-homeassistant

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

Service Termination of Your meross Smart Device due to Security Concerns #172

Closed welcomejn closed 2 years ago

welcomejn commented 3 years ago

I'm struggleling with this addon in my environment and it seems I found an adjustment which can help others:

Meross is blocking my HUB over night when using homeassistnat plugin (newest version 1.0.5) because of "your devices are communicating with the could server at an extremely high frequency". I was checking the code and I found following:

In parrent MERROSIOT -> manager.py is following: def __init__(self, http_client: MerossHttpClient, auto_reconnect: Optional[bool] = True, domain: Optional[str] = "iot.meross.com", port: Optional[int] = 2001, ca_cert: Optional[str] = None, loop: Optional[AbstractEventLoop] = None, over_limit_threshold_percentage: float = 300, burst_requests_per_second_limit: int = 2, requests_per_second_limit: int = 1, *args, **kwords) -> None:

In MEROSS-HOMEASSISTANT -> __init__.py is following: manager = MerossManager(http_client=client, auto_reconnect=True, over_limit_threshold_percentage=1000)

It seems in the Homeassistant integration is different settings for call limits applied. Yesterday I changed manually the line to: manager = MerossManager(http_client=client, auto_reconnect=True, over_limit_threshold_percentage=300, burst_requests_per_second_limit = 1, requests_per_second_limit= 1) and the HUB survived over night and was not kicked/blocked by Meross server.

Can you take a look? Thanks

albertogeniola commented 3 years ago

Hi @welcomejn , your settings might be working well for you specific configutation, which may not be perfect for others. How many Meross devices are you running under HA?

GazTheGeek commented 3 years ago

I just received the same message from Meross about a day after upgrading to 1.0.5. I have 2 Meross plugs - Everything has been working fine until last night.

albertogeniola commented 3 years ago

Hi guys and thanks for reporting the issue. Can you please test the Pre-Release v1.0.6-beta1 and see if that works better? Thanks!

welcomejn commented 3 years ago

Hi @welcomejn , your settings might be working well for you specific configutation, which may not be perfect for others. How many Meross devices are you running under HA?

I have 6 radiator valves and one smart HUB. Unfortunately the adjustment I did was again cut off from server service this night - red solid led, after restart just green blinking led forever. I need to do factory reset and re-pair everything.

Will try new version and report tomorrow morning.

GazTheGeek commented 3 years ago

Meross have not re-enabled me yet. Still waiting.

GazTheGeek commented 3 years ago

What is the best way to install the beta without mess having to reinstall the integration?

welcomejn commented 3 years ago

Meross have not re-enabled me yet. Still waiting.

Factory reset did the trick for me, pobably a new registration on their server happens.

shra1976 commented 3 years ago

Hi guys and thanks for reporting the issue. Can you please test the Pre-Release v1.0.6-beta1 and see if that works better? Thanks!

Hi @albertogeniola in these days I'm trying to support your work testing all your releases with my 6 valves and 1 hub. Pre-Release v1.0.6-beta1 installed this morning but all entities are not available all the time and they become unavailable on the meross app too. Downgrade to v1.0.5 and all seems work. Sometimes it doesn't update the temperature but the entities are available most the time. Thanks, Marco. api

albertogeniola commented 3 years ago

Hi @shra1976 ,

first, thanks so much for your help. May I ask you if there is any issue in the logs when using the 1.0.6-beta1? Actually, I believe there is still plenty of optimization possible when using multiple valves with the same hub. Unfortunately I only could reverse-engineer the Meross Protocol when using a single Valve, as I only have one. I will try to find some more used valves just to check how the protocol works under the hood when multiple valves are attached to the same hub. That should help...

shra1976 commented 3 years ago

@albertogeniola happy to help, waiting for LAN integration...

I've upgrated to 1.0.6-beta1 again and I have these logs:

Logger: custom_components.meross_cloud.climate Source: custom_components/meross_cloud/climate.py:53 Integration: Meross Cloud IoT (documentation) First occurred: 16:15:33 (1 occurrences) Last logged: 16:15:33

Error occurred. ------------------------------------- Component version: 0.4.1.0rc7 Device info: Name: CAMERETTA UUID: 1911087920368626280348e1e911473b Type: mts100v3 HW Version: unknown FW Version: unknown Error Message: "An exception occurred" Traceback (most recent call last): File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py", line 630, in _async_send_and_wait_ack return await asyncio.wait_for(future, timeout, loop=self._loop) File "/usr/local/lib/python3.8/asyncio/tasks.py", line 498, in wait_for raise exceptions.TimeoutError() asyncio.exceptions.TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/homeassistant/.homeassistant/custom_components/meross_cloud/climate.py", line 53, in async_update await self._device.async_update() File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/controller/device.py", line 332, in async_update result = await self._hub._execute_command(method="GET", File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/controller/device.py", line 227, in _execute_command return await self._manager.async_execute_cmd(destination_device_uuid=self.uuid, File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py", line 621, in async_execute_cmd response = await self._async_send_and_wait_ack(future=fut, File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py", line 634, in _async_send_and_wait_ack raise CommandTimeoutError() meross_iot.model.exception.CommandTimeoutError

and then...

Logger: homeassistant.components.sensor Source: helpers/entity_platform.py:603 Integration: Sensore (documentation, issues) First occurred: 16:13:24 (24 occurrences) Last logged: 16:27:09

Updating meross_cloud sensor took longer than the scheduled update interval 0:00:15

and then...

Logger: meross_iot.manager Source: /srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py:632 First occurred: 16:11:25 (90 occurrences) Last logged: 16:27:09

Timeout occurred while waiting a response for message b'{"header": {"from": "/app/838479-51f220899e5cc5b2e89d7da7428f283d/subscribe", "messageId": "c0ccd17dde0a622cfd0e02f3d56c0b76", "method": "GET", "namespace": "Appliance.Hub.Mts100.Temperature", "payloadVersion": 1, "sign": "545867072c4989104a258832f143242e", "timestamp": 1607009205, "triggerSrc": "Android"}, "payload": {"temperature": [{"id": "010081EA"}]}}' sent to device uuid 1911087920368626280348e1e911473b. Timeout was: 5 seconds. Timeout occurred while waiting a response for message b'{"header": {"from": "/app/838479-51f220899e5cc5b2e89d7da7428f283d/subscribe", "messageId": "51400d20a30de373aedf8bc67971b7a5", "method": "GET", "namespace": "Appliance.Hub.Mts100.Temperature", "payloadVersion": 1, "sign": "e834f8faff9dc439983c6b0dbb70fe28", "timestamp": 1607009210, "triggerSrc": "Android"}, "payload": {"temperature": [{"id": "01008B06"}]}}' sent to device uuid 1911087920368626280348e1e911473b. Timeout was: 5 seconds. Timeout occurred while waiting a response for message b'{"header": {"from": "/app/838479-51f220899e5cc5b2e89d7da7428f283d/subscribe", "messageId": "2d59f2aae2922a000467e0ad304f68d5", "method": "GET", "namespace": "Appliance.Hub.Mts100.Temperature", "payloadVersion": 1, "sign": "9420e84a3de63e43b671ad2149e54ecb", "timestamp": 1607009215, "triggerSrc": "Android"}, "payload": {"temperature": [{"id": "0100A7FF"}]}}' sent to device uuid 1911087920368626280348e1e911473b. Timeout was: 5 seconds. Timeout occurred while waiting a response for message b'{"header": {"from": "/app/838479-51f220899e5cc5b2e89d7da7428f283d/subscribe", "messageId": "a12f1cd815d1c78badccc332bbc71822", "method": "GET", "namespace": "Appliance.Hub.Mts100.Temperature", "payloadVersion": 1, "sign": "d0c00a45032e235a290caf64ccdfe896", "timestamp": 1607009220, "triggerSrc": "Android"}, "payload": {"temperature": [{"id": "0100ADD1"}]}}' sent to device uuid 1911087920368626280348e1e911473b. Timeout was: 5 seconds. Timeout occurred while waiting a response for message b'{"header": {"from": "/app/838479-51f220899e5cc5b2e89d7da7428f283d/subscribe", "messageId": "b10aef2dec78af8556a346fe1fcfe5cd", "method": "GET", "namespace": "Appliance.Hub.Mts100.Temperature", "payloadVersion": 1, "sign": "be51136974618b2bc670878414ecb9b6", "timestamp": 1607009225, "triggerSrc": "Android"}, "payload": {"temperature": [{"id": "0100B3C9"}]}}' sent to device uuid 1911087920368626280348e1e911473b. Timeout was: 5 seconds.

and then...

Logger: custom_components.meross_cloud.sensor Source: custom_components/meross_cloud/sensor.py:253 Integration: Meross Cloud IoT (documentation) First occurred: 16:12:22 (88 occurrences) Last logged: 16:27:09

Error occurred. ------------------------------------- Component version: 0.4.1.0rc7 Device info: Name: INGRESSO UUID: 1911087920368626280348e1e911473b Type: mts100v3 HW Version: unknown FW Version: unknown Error Message: "An exception occurred" Error occurred. ------------------------------------- Component version: 0.4.1.0rc7 Device info: Name: CUCINA UUID: 1911087920368626280348e1e911473b Type: mts100v3 HW Version: unknown FW Version: unknown Error Message: "An exception occurred" Error occurred. ------------------------------------- Component version: 0.4.1.0rc7 Device info: Name: STUDIO UUID: 1911087920368626280348e1e911473b Type: mts100v3 HW Version: unknown FW Version: unknown Error Message: "An exception occurred" Error occurred. ------------------------------------- Component version: 0.4.1.0rc7 Device info: Name: CAMERA UUID: 1911087920368626280348e1e911473b Type: mts100v3 HW Version: unknown FW Version: unknown Error Message: "An exception occurred" Error occurred. ------------------------------------- Component version: 0.4.1.0rc7 Device info: Name: SALOTTO UUID: 1911087920368626280348e1e911473b Type: mts100v3 HW Version: unknown FW Version: unknown Error Message: "An exception occurred" Traceback (most recent call last): File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py", line 630, in _async_send_and_wait_ack return await asyncio.wait_for(future, timeout, loop=self._loop) File "/usr/local/lib/python3.8/asyncio/tasks.py", line 498, in wait_for raise exceptions.TimeoutError() asyncio.exceptions.TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/homeassistant/.homeassistant/custom_components/meross_cloud/sensor.py", line 253, in async_update await self._device.async_get_temperature() File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/controller/known/subdevice.py", line 241, in async_get_temperature res = await self._hub._execute_command(method="GET", File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/controller/device.py", line 227, in _execute_command return await self._manager.async_execute_cmd(destination_device_uuid=self.uuid, File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py", line 621, in async_execute_cmd response = await self._async_send_and_wait_ack(future=fut, File "/srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py", line 634, in _async_send_and_wait_ack raise CommandTimeoutError() meross_iot.model.exception.CommandTimeoutError

and then...

Logger: custom_components.meross_cloud.sensor Source: custom_components/meross_cloud/sensor.py:125 Integration: Meross Cloud IoT (documentation) First occurred: 16:15:26 (42 occurrences) Last logged: 16:27:11

Device INGRESSO (mts100v3) - temperature sensor (°C, 0) reported online event. Device CUCINA (mts100v3) - temperature sensor (°C, 0) reported online event. Device STUDIO (mts100v3) - temperature sensor (°C, 0) reported online event. Device CAMERA (mts100v3) - temperature sensor (°C, 0) reported online event. Device SALOTTO (mts100v3) - temperature sensor (°C, 0) reported online event.

and...

Logger: custom_components.meross_cloud.sensor Source: custom_components/meross_cloud/sensor.py:378 Integration: Meross Cloud IoT (documentation) First occurred: 16:15:27 (42 occurrences) Last logged: 16:27:13

Skipping device <Entity INGRESSO (mts100v3) - temperature sensor (°C, 0): 23.5> as it was already added to registry once. Skipping device <Entity CUCINA (mts100v3) - temperature sensor (°C, 0): 24.0> as it was already added to registry once. Skipping device <Entity STUDIO (mts100v3) - temperature sensor (°C, 0): 23.0> as it was already added to registry once. Skipping device <Entity CAMERA (mts100v3) - temperature sensor (°C, 0): 23.0> as it was already added to registry once. Skipping device <Entity SALOTTO (mts100v3) - temperature sensor (°C, 0): 23.5> as it was already added to registry once.

and...

Logger: meross_iot.manager Source: /srv/homeassistant/lib/python3.8/site-packages/meross_iot/manager.py:707 First occurred: 16:15:26 (210 occurrences) Last logged: 16:27:13

Device INGRESSO (#BASE:1911087920368626280348e1e911473b#SUB:010081EA) has been already added to the registry. Device CUCINA (#BASE:1911087920368626280348e1e911473b#SUB:01008B06) has been already added to the registry. Device STUDIO (#BASE:1911087920368626280348e1e911473b#SUB:0100A7FF) has been already added to the registry. Device CAMERA (#BASE:1911087920368626280348e1e911473b#SUB:0100ADD1) has been already added to the registry. Device SALOTTO (#BASE:1911087920368626280348e1e911473b#SUB:0100B3C9) has been already added to the registry. Home Assistant si è avviato!

Now I can see entities online with 1.0.6-beta1 too. I hope to be helpful. Tell me if I can do more.

Thanks, Marco.

welcomejn commented 3 years ago

Hi guys and thanks for reporting the issue. Can you please test the Pre-Release v1.0.6-beta1 and see if that works better? Thanks!

Hi @albertogeniola in these days I'm trying to support your work testing all your releases with my 6 valves and 1 hub. Pre-Release v1.0.6-beta1 installed this morning but all entities are not available all the time and they become unavailable on the meross app too. Downgrade to v1.0.5 and all seems work. Sometimes it doesn't update the temperature but the entities are available most the time. Thanks, Marco. api

For me 1.0.6-beta1 is working well (6 valves + 1 HUB), will see what will happen overnight if I get block again or not.

dragon2611 commented 3 years ago

Mines showing between 1 and 2 API/s with 2 MS310 smartplugs (I actually have 3 but one's not connected at the moment).

Strangely I've not been kicked off thus far...

Ideally this could be reduced to 1-2 API calls every 5-15 minutes or so as I really don't need the power consumption readings to be polled very frequently, they're useful as a guide/indicative reading but other than that I don't pay much attention to them.

I'd argue the same is true for any thermostats.etc

welcomejn commented 3 years ago

Meross says following: Please first lower your periodic request rate to no more than one message every ten seconds But who knows...

dragon2611 commented 3 years ago

You would think they would revise that depending on how many devices you have, unless there's a way to bulk request metrics.

vomdth commented 3 years ago

Installed v1.0.6 beta1 this morning but device (1 MSG100 Garage door opener) ist still getting unavailable :-( Right now I have to restart Home Assistant two times a day, so this is getting a bit frustrating 😉

Logger: custom_components.meross_cloud.cover Source: custom_components/meross_cloud/cover.py:65 Integration: Meross Cloud IoT (documentation) First occurred: 11:48:51 (4 occurrences) Last logged: 18:49:48

Device Garage (msg100) - Main channel reported online event.

albertogeniola commented 3 years ago

You would think they would revise that depending on how many devices you have, unless there's a way to bulk request metrics.

Pretty sure about that, but also sure that there is a way of "bulking requests" as the low level API seems to have a data-model for packing multiple requests at once... the only way to reverse engineer that is to get hands on multiple smart valves

dragon2611 commented 3 years ago

I guess they're not willing to provide API docs to allow integration, not that would surprise me but it would be nice if for a change one of these companies were to see the value of co-operating with projects like this one.

shra1976 commented 3 years ago

Pretty sure about that, but also sure that there is a way of "bulking requests" as the low level API seems to have a data-model for packing multiple requests at once... the only way to reverse engineer that is to get hands on multiple smart valves

Is there any tests I can do to help you?

welcomejn commented 3 years ago

Just an update for v1.0.6 beta1... In my case all six valves survived over night (the HUB was not blocked by Meross).Hope it will last. Also I don't see any troubles with unavailability of entities and everything works well in my case.

shra1976 commented 3 years ago

Just an update for v1.0.6 beta1... In my case all six valves survived over night (the HUB was not blocked by Meross).Hope it will last. Also I don't see any troubles with unavailability of entities and everything works well in my case.

Hi @welcomejn have you tried to command the valves or only read? Also with multiple commands? What is your HA release?

welcomejn commented 3 years ago

Just an update for v1.0.6 beta1... In my case all six valves survived over night (the HUB was not blocked by Meross).Hope it will last. Also I don't see any troubles with unavailability of entities and everything works well in my case.

Hi @welcomejn have you tried to command the valves or only read? Also with multiple commands? What is your HA release?

Hi @shra1976, I have an automation in NodeRED... Generally I have at least 2-3 times per day a call to each valve to change the temperature settings. I have a delay for sending the request there - currenty set to 32s gap in between calls. Temperature reading is done automatically by HomeAssistent - it seems reasonebly often: image

welcomejn commented 3 years ago

Another night past and no BAN from Meross. So I would say whatever was done in 1.0.6 beta1 is at least for me working.

welcomejn commented 3 years ago

Over the weekend I got BAN again. It seems with 1.0.6. beta1 we are just on the edge for me. There happened chnages of temperature settings 5 times within a day for all valves and I got cut out. API calls looks steady without any hiccups. Capture

vomdth commented 3 years ago

My device also get's unavailable every x hours. Sometimes it's working a day, sometimes I have to reboot 1-2 a day. Is there a way to help with troubleshooting? Any debug logging for example? My log only displays the following:

Logger: custom_components.meross_cloud.cover Source: custom_components/meross_cloud/cover.py:65 Integration: Meross Cloud IoT (documentation) First occurred: 0:45:17 (5 occurrences) Last logged: 1:16:19

Device Garage (msg100) - Main channel reported online event

GazTheGeek commented 3 years ago

I just received the same message from Meross about a day after upgrading to 1.0.5. I have 2 Meross plugs - Everything has been working fine until last night.

Update: Meross re-enabled me and everything has been working fine for the past few days. I'm wondering whether it was caused by something at the Meross end? I did not install the beta of 1.0.6 still running 1.0.5.

escaflown23 commented 3 years ago

Everytime I upgrade to any version above v1.0.3 none of my merros switches and lights work: they all become inactive and can't be controlled from home assistant (HA). Even on v1.0.3, the switches and lights will become inaccessible after like anything from few hours to a day after a HA start. They are still controllable via the meross app during that time. A reboot of HA will make them work again. please see error log below.

2020-12-11 09:50:33 INFO (MainThread) [meross_iot.manager] Updating 0 known devices form HTTPINFO and fetching data from 39 newly discovered devices...
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.device_factory] Could not find any known device class for device type (msl120b).
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] Could not build statically device TV 1 (1905303221071439084034298f1aefe4) as it's not a known type.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.device_factory] Could not find any known device class for device type (msl120b).
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] Could not build statically device TV 2 (1905309062975939084034298f1af537) as it's not a known type.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [meross_iot.manager] The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.
2020-12-11 09:50:33 ERROR (MainThread) [custom_components.meross_cloud] Error occurred.
-------------------------------------
Component version: 0.4.1.0rc7
Device info: 
<Unavailable>
Error Message: "An exception occurred while setting up the meross manager. Setup will be retried..."
Traceback (most recent call last):
  File "/config/custom_components/meross_cloud/__init__.py", line 143, in async_setup_entry
    await manager.async_device_discovery()
  File "/usr/local/lib/python3.8/site-packages/meross_iot/manager.py", line 262, in async_device_discovery
    enrolled_devices = await asyncio.gather(*tasks, loop=self._loop)
  File "/usr/local/lib/python3.8/site-packages/meross_iot/manager.py", line 316, in _async_enroll_new_http_dev
    res_abilities = await self.async_execute_cmd(destination_device_uuid=device_info.uuid,
  File "/usr/local/lib/python3.8/site-packages/meross_iot/manager.py", line 609, in async_execute_cmd
    raise RateLimitExceeded()
meross_iot.model.exception.RateLimitExceeded
lbossi commented 3 years ago

@albertogeniola

This is my updated feedback on Meross BAN (I have 12 valves):

Previously I had been banned five times as reported in #151 (last time was on Nov. 12 running v1.0.4-dev1)

Apparently the BAN is caused by the sequence of 12 refreshes separeted by only 1 sec. However this doesn't happen immediately, since for one week I had no BAN with v1.0.4-post1, and v1.0.6-beta1 has been banned only after one week of use.

As additional info, with the last versions the issue of device becoming often unavailable is definetely solved (I only have valves)

Regards

GazTheGeek commented 3 years ago

I just received the same message from Meross about a day after upgrading to 1.0.5. I have 2 Meross plugs - Everything has been working fine until last night.

Update: Meross re-enabled me and everything has been working fine for the past few days. I'm wondering whether it was caused by something at the Meross end? I did not install the beta of 1.0.6 still running 1.0.5.

Further Update: Meross sent me a termination notice again overnight. This was after updating to HA 2020.12.0 - I have not updated the Meross integration to v 1.06 I am still on 1.05 I have made no other changes to my system.

brockz commented 3 years ago

Is there a Solution yet ?

GazTheGeek commented 3 years ago

I just received the same message from Meross about a day after upgrading to 1.0.5. I have 2 Meross plugs - Everything has been working fine until last night.

Update: Meross re-enabled me and everything has been working fine for the past few days. I'm wondering whether it was caused by something at the Meross end? I did not install the beta of 1.0.6 still running 1.0.5.

Further Update: Meross sent me a termination notice again overnight. This was after updating to HA 2020.12.0 - I have not updated the Meross integration to v 1.06 I am still on 1.05 I have made no other changes to my system.

Update No 4. Meross disabled me 9 days ago and despite me requesting reinstatement twice. Nothing. So my plugs are currently bricked. I guess I'll open another account and try to reset them.

dragon2611 commented 3 years ago

If they work the same as the ones I have then holding the button on the plug should reset them.

Had to do that with the one I'd reconfigured to connect to my local mqtt broker to check I could get it back on their cloud.

Edit: I might reconnect it the local and see if I can at least get the on/off working via the local broker.

GazTheGeek commented 3 years ago

I just received the same message from Meross about a day after upgrading to 1.0.5. I have 2 Meross plugs - Everything has been working fine until last night.

Update: Meross re-enabled me and everything has been working fine for the past few days. I'm wondering whether it was caused by something at the Meross end? I did not install the beta of 1.0.6 still running 1.0.5.

Further Update: Meross sent me a termination notice again overnight. This was after updating to HA 2020.12.0 - I have not updated the Meross integration to v 1.06 I am still on 1.05 I have made no other changes to my system.

Update No 4. Meross disabled me 9 days ago and despite me requesting reinstatement twice. Nothing. So my plugs are currently bricked. I guess I'll open another account and try to reset them.

Update 5: Just had my service cancelled again. This time I was running a Meross plug with my 3D Printer I use a node-red server-state-changed node to check the watts being used. When they fall below a certain value I know the printer is finished. I don't know if its related but I'm thinking this is what might be causing the calls to Meross to be too frequent. I've changed to a 30sec injection interval. When they turn me back on I'll see if this helps. Still on v1.05

dkroiss38 commented 3 years ago

I am using 8 valves with a hub and after having been banned by Merros I reverted back to version 1.0. Shortly after Home assistant did not show any update on the thermostats but given the issue I did not upgrade until yesterday when I tried v1.06 hoping for a change. The thermostats display came back, but guess what, I got banned once again tonight! I think I will stop using this add-in until a solid solution is found.

dragon2611 commented 3 years ago

Don't suppose you've gotten anything more useful out of merros than limit your request rate?

dkroiss38 commented 3 years ago

Not sure to know how to limit the request rate. I used the 1.06 package right out the repository into HA. Any hint?

stumpk commented 3 years ago

I love this plug in, but I am now seeing this issue as well. Started with a HASSIO update. I've even tried setting up a new server. I have lots of meross devises. Here are the log entries I am seeing:

Warning: Logger: custom_components.meross_cloud Source: custom_components/meross_cloud/init.py:54 Integration: Meross Cloud IoT (documentation) First occurred: 11:22:12 AM (5 occurrences) Last logged: 11:23:35 AM

=============================== Meross Cloud Custom component Developed by Alberto Geniola Low level library version: 0.4.1.0rc7 ------------------------------- 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: - Dining Porch Light (mss510x) - OnlineStatus.ONLINE - Kitchen Light (mss560m) - OnlineStatus.ONLINE - Fountain Water (mss110) - OnlineStatus.ONLINE - Front Porch (mss550x) - OnlineStatus.ONLINE - Entryway Light (mss560m) - OnlineStatus.ONLINE - Play Yard Lights (mss510x) - OnlineStatus.ONLINE - Spa Lights (mss510x) - OnlineStatus.ONLINE - Outside wall Sconces (mss510x) - OnlineStatus.ONLINE - Outdoor Dining Sconces (mss510x) - OnlineStatus.ONLINE - Outdoor Dining (mss510x) - OnlineStatus.ONLINE - Bar Lights (mss510x) - OnlineStatus.ONLINE - Bar Sconces (mss510x) - OnlineStatus.ONLINE - TV Rear Light (mss560m) - OnlineStatus.ONLINE - TV Front Light (mss560m) - OnlineStatus.ONLINE - TV Backlight (mss110) - OnlineStatus.ONLINE - Master Porch Light (mss510x) - OnlineStatus.ONLINE - Reading Lamp (mss110) - OnlineStatus.ONLINE - Gwynne’s Lamp (mss110) - OnlineStatus.ONLINE - Front Bathroom Light (mss510x) - OnlineStatus.ONLINE - Landscape Lights (mss110) - OnlineStatus.ONLINE - Fountain (mss510x) - OnlineStatus.ONLINE - Dining Room Light (mss560m) - OnlineStatus.ONLINE - Kitchen Display Light (mss560m) - OnlineStatus.ONLINE - Kitchen Sink Light (mss560m) - OnlineStatus.ONLINE - Entry Board (mss110) - OnlineStatus.ONLINE - Kitchen Cabinet Light (mss560m) - OnlineStatus.ONLINE - Living Room Light (mss510x) - OnlineStatus.ONLINE - Hallway Light (mss570m) - OnlineStatus.ONLINE - laundry room light (mss560m) - OnlineStatus.ONLINE - office porch light (mss510x) - OnlineStatus.ONLINE - office light (mss560m) - OnlineStatus.ONLINE ===============================

Then this one: Error

Logger: meross_iot.manager Source: /usr/local/lib/python3.8/site-packages/meross_iot/manager.py:607 First occurred: 11:22:15 AM (100 occurrences) Last logged: 11:23:36 AM

The current API rate exceeds the overquota limit (1000.000000 %). The call will be dropped.

Any thoughts on how to clear this? I did update to the beta version of the integration and am still seeing this.

stumpk commented 3 years ago

I reinstalled at version 1.03 and everything worked, anything above that is getting the limits error

dragon2611 commented 3 years ago

I reinstalled at version 1.03 and everything worked, anything above that is getting the limits error

Is that the version before the rate limiting was introduced to try and avoid a ban from meross?

stumpk commented 3 years ago

According to the release notes, it looks like it

escaflown23 commented 3 years ago

I reinstalled at version 1.03 and everything worked, anything above that is getting the limits error

I followed the same route like 3 weeks ago and since then no ban and no issue. version 1.03 seems to be the most robust one so far.

vpomax commented 3 years ago

@albertogeniola la scorsa settimana ho ricevuto la famosa mail da parte di Meross dopo aver effettuato l'integrazione in Home Assistant. il problema era dovuto alla mancata sincronizzazione di una delle teste termostatiche. Ho risolto il problema e inviato la richiesta di riattivazione del servizio sabato 27 febbraio. Oggi è l'8 marzo e ancora il servizio non è stato riattivato. Ho inviato una seconda richiesta oggi... se entro tre giorni non riattivano il servizio restituisco le teste termostatiche ad Amazon e acquisto quelle zigbee.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.