Air Purifier 3H becomes unreachable : 'Call devide timed out'
Since you closed the previous issue, I want to add some information and be as detailed as possible. So here we are.


**Homebridge Server :** 
- Connection : Wi-Fi
- Hardware : Raspberry Pi Zero W
- Install : Fresh new install
- Plugins : Only homebridge-miot

**homebridge-miot configuration :**
- Accessories : 2, Air Purifier 3H, Smart Standing Fan 2


After a fresh installation, everything starts fine, but after random period of running time, the air purifier begins to be inaccessible. The purifier does not respond from Homekit, homebridge-miot fails to poll and even from the Xiaomi app the device cannot be accessed. I have to physically unplug the device to bring it back online. I tried for a long time period (2 months) to get the device working without connecting to homebridge-miot, it appears that it never disconnects and was reachable every time, working perfectly fine. Reconnecting the purifier to the plugin causes the device to fail again.

![Capture d’écran du 2022-10-07 09-58-03](https://user-images.githubusercontent.com/8216712/194537597-782e9d7a-b324-4a78-a473-a04cf8391ce9.png)

After enabling the deep debup log and the homebridge debug mode, it seems that the plugin overloads the device with requests, multiplies per second and chains new handshakes in a loop, without respecting the polling interval of 10 seconds. Checking the fan logs shows a quiet sollicitation to the device. 

```
[07/10/2022, 10:23:41] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�"���ɪF{��e-)�=R�n�
[07/10/2022, 10:23:41] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:23:41] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (1) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":2737}
[07/10/2022, 10:23:41] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1��"��땸�P4��b߿�_
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (0) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":2837}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�"��,H]�I��/�[V�8�}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (0) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":2937}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1��"���+/.���q�id�
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":2536,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":2536,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":2537,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4090}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":2537,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4090}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":2637,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4040}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":2637,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4040}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":2737,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4030}
[07/10/2022, 10:23:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":2737,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4030}

[...]

[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}] - {}
[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":9212}
[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�",y�J��5�c�iU��1��
[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9213}
[07/10/2022, 10:42:57] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1��",5=��d�h�!�
                                                 
[...]
                                                                                         ���
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}]
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":9111}
[07/10/2022, 10:42:59] [miot] [Purificateur] Poll failed 1 times!
[07/10/2022, 10:42:59] [miot] [Purificateur] Poll failed! Error: Error: Call to device timed out
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}]
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9211}
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9212,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9212,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (-30012) busy. | Request: {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":9212}
[07/10/2022, 10:42:59] [miot] [Purificateur] Poll failed 2 times!
[07/10/2022, 10:42:59] [miot] [Purificateur] Poll failed! Error: Error: busy.
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9213,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9213,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:42:59] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (-30012) busy. | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9213}
[07/10/2022, 10:43:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":8810,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:43:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":8810,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:43:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":8811,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:43:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":8811,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:43:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":8911,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:43:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":8911,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}

[...]

[07/10/2022, 10:56:45] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:56:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (0) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9145}
[07/10/2022, 10:56:45] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1��"�
                                                                               h����7L���,Po9�
[07/10/2022, 10:56:46] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 10:56:46] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 10:56:47] [miot] [Purificateur] Splitting properties into chunks. Number of chunks: 2. Chunk size: 14
[07/10/2022, 10:56:47] [miot] [Purificateur] Chunks:  [
 [
  "air-purifier:on",
  "air-purifier:mode",
  "air-purifier:fault",
  "air-purifier:fan-level",
  "environment:pm2.5-density",
  "environment:relative-humidity",
  "environment:temperature",
  "filter:filter-life-level",
  "filter:filter-used-time",
  "alarm:alarm",
  "indicator-light:on",
  "indicator-light:brightness",
  "physical-controls-locked:physical-controls-locked",
  "motor-speed:favorite-fan-level"
 ],
 [
  "motor-speed:motor-speed",
  "motor-speed:motor-favorite",
  "use-time:use-time"
 ]
]
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}] - {}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}] - {}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":9146}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�"�
                                                                               j:H�?3E��#��$X�r
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9147}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1��"�
                                                                               j!G��{���n��
                                                                                           �q
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9146,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9146,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (-30012) busy. | Request: {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":9146}
[07/10/2022, 10:56:47] [miot] [Purificateur] Poll failed 3 times!
[07/10/2022, 10:56:47] [miot] [Purificateur] Poll failed! Error: Error: busy.
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9147,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9147,"error":{"code":-30012,"message":"busy."}}
[07/10/2022, 10:56:47] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (-30012) busy. | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9147}
[07/10/2022, 10:56:49] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}]
[07/10/2022, 10:56:49] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":9045}
[07/10/2022, 10:56:49] [miot] [Purificateur] Poll failed 4 times!
[07/10/2022, 10:56:49] [miot] [Purificateur] Poll failed 4 times in a row! Stopping polling and trying to reconnect! Reason: Error: Call to device timed out
[07/10/2022, 10:56:49] [miot] [Purificateur] Device diconnected!
[07/10/2022, 10:56:49] [miot] [Purificateur] Trying to reconnect in 60 seconds...
[07/10/2022, 10:56:49] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}]
[07/10/2022, 10:56:49] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9145}
[07/10/2022, 10:56:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":8744,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:56:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":8744,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:56:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":8745,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:56:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":8745,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:56:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":8845,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 10:56:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":8845,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}

[...]

[07/10/2022, 10:57:49] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:57:49] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: miIO.info - {"timeout":5000,"retries":3} - {}
[07/10/2022, 10:57:49] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:57:49] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"miIO.info","params":{"timeout":5000,"retries":3},"id":9148}
[07/10/2022, 10:57:49] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�"�
                                                                               ��Q�{$.Q�N3�
                                                                                           >3*E
[07/10/2022, 10:57:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9148,"result":{"life":2986,"uid":6447778637,"model":"zhimi.airpurifier.mb3","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":64216,"mac":"X0:X0:X0:X0:X0:X0","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"xxxxxxxxxxxxxxxx","bssid":"X0:X0:X0:X0:X0:X0","rssi":-19,"primary":6},"netif":{"localIp":"XXX.XXX.X.XXX","mask":"255.255.255.0","gw":"XXX.XXX.X.XXX"}},"exe_time":30}
[07/10/2022, 10:57:50] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9148,"result":{"life":2986,"uid":6447778637,"model":"zhimi.airpurifier.mb3","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":64216,"mac":"X0:X0:X0:X0:X0:X0","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"xxxxxxxxxxxxxxxx","bssid":"X0:X0:X0:X0:X0:X0","rssi":-19,"primary":6},"netif":{"localIp":"XXX.XXX.X.XXX","mask":"255.255.255.0","gw":"XXX.XXX.X.XXX"}},"exe_time":30}
[07/10/2022, 10:57:50] [miot] [Purificateur] Device found: zhimi.airpurifier.mb3
[07/10/2022, 10:57:50] [miot] [Purificateur] Setting up miot device!
[07/10/2022, 10:57:50] [miot] [Purificateur] Doing MiCloud setup
[07/10/2022, 10:57:50] [miot] [Purificateur] Device setup finished! Miot device ready!
[07/10/2022, 10:57:50] [miot] [Purificateur] Connected to device: zhimi.airpurifier.mb3
[07/10/2022, 10:57:50] [miot] [Purificateur] Doing initial property fetch.
[07/10/2022, 10:57:50] [miot] [Purificateur] Splitting properties into chunks. Number of chunks: 2. Chunk size: 14
[07/10/2022, 10:57:50] [miot] [Purificateur] Chunks:  [
 [
  "air-purifier:on",
  "air-purifier:mode",
  "air-purifier:fault",
  "air-purifier:fan-level",
  "environment:pm2.5-density",
  "environment:relative-humidity",
  "environment:temperature",
  "filter:filter-life-level",
  "filter:filter-used-time",
  "alarm:alarm",
  "indicator-light:on",
  "indicator-light:brightness",
  "physical-controls-locked:physical-controls-locked",
  "motor-speed:favorite-fan-level"
 ],
 [
  "motor-speed:motor-speed",
  "motor-speed:motor-favorite",
  "use-time:use-time"
 ]
]

[...]

[07/10/2022, 10:58:05] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 10:58:05] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (1) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":9352}
[07/10/2022, 10:58:05] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1��"�
                                                                               �d����e0o���> ��
[07/10/2022, 10:58:06] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 10:58:06] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 10:58:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9151,"result":[{"did":"314254012","siid":2,"piid":2,"code":0,"value":false},{"did":"314254012","siid":2,"piid":5,"code":0,"value":0},{"did":"314254012","siid":2,"piid":1,"code":0,"value":0},{"did":"314254012","siid":2,"piid":4,"code":0,"value":1},{"did":"314254012","siid":3,"piid":6,"code":0,"value":6},{"did":"314254012","siid":3,"piid":7,"code":0,"value":51},{"did":"314254012","siid":3,"piid":8,"code":0,"value":21.000000},{"did":"314254012","siid":4,"piid":3,"code":0,"value":84},{"did":"314254012","siid":4,"piid":5,"code":0,"value":542},{"did":"314254012","siid":5,"piid":1,"code":0,"value":false},{"did":"314254012","siid":6,"piid":6,"code":0,"value":true},{"did":"314254012","siid":6,"piid":1,"code":0,"value":2},{"did":"314254012","siid":7,"piid":1,"code":0,"value":false},{"did":"314254012","siid":10,"piid":10,"code":0,"value":0}],"exe_time":330}
[07/10/2022, 10:58:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9151,"result":[{"did":"314254012","siid":2,"piid":2,"code":0,"value":false},{"did":"314254012","siid":2,"piid":5,"code":0,"value":0},{"did":"314254012","siid":2,"piid":1,"code":0,"value":0},{"did":"314254012","siid":2,"piid":4,"code":0,"value":1},{"did":"314254012","siid":3,"piid":6,"code":0,"value":6},{"did":"314254012","siid":3,"piid":7,"code":0,"value":51},{"did":"314254012","siid":3,"piid":8,"code":0,"value":21.000000},{"did":"314254012","siid":4,"piid":3,"code":0,"value":84},{"did":"314254012","siid":4,"piid":5,"code":0,"value":542},{"did":"314254012","siid":5,"piid":1,"code":0,"value":false},{"did":"314254012","siid":6,"piid":6,"code":0,"value":true},{"did":"314254012","siid":6,"piid":1,"code":0,"value":2},{"did":"314254012","siid":7,"piid":1,"code":0,"value":false},{"did":"314254012","siid":10,"piid":10,"code":0,"value":0}],"exe_time":330}
[07/10/2022, 10:58:07] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9152,"result":[{"did":"314254012","siid":10,"piid":8,"code":0,"value":0},{"did":"314254012","siid":10,"piid":7,"code":0,"value":390},{"did":"314254012","siid":12,"piid":1,"code":0,"value":1937100}],"exe_time":570}
[07/10/2022, 10:58:07] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9152,"result":[{"did":"314254012","siid":10,"piid":8,"code":0,"value":0},{"did":"314254012","siid":10,"piid":7,"code":0,"value":390},{"did":"314254012","siid":12,"piid":1,"code":0,"value":1937100}],"exe_time":570}
[07/10/2022, 10:58:07] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9252,"result":[{"did":"314254012","siid":2,"piid":2,"code":0,"value":false},{"did":"314254012","siid":2,"piid":5,"code":0,"value":0},{"did":"314254012","siid":2,"piid":1,"code":0,"value":0},{"did":"314254012","siid":2,"piid":4,"code":0,"value":1},{"did":"314254012","siid":3,"piid":6,"code":0,"value":6},{"did":"314254012","siid":3,"piid":7,"code":0,"value":51},{"did":"314254012","siid":3,"piid":8,"code":0,"value":21.000000},{"did":"314254012","siid":4,"piid":3,"code":0,"value":84},{"did":"314254012","siid":4,"piid":5,"code":0,"value":542},{"did":"314254012","siid":5,"piid":1,"code":0,"value":false},{"did":"314254012","siid":6,"piid":6,"code":0,"value":true},{"did":"314254012","siid":6,"piid":1,"code":0,"value":2},{"did":"314254012","siid":7,"piid":1,"code":0,"value":false},{"did":"314254012","siid":10,"piid":10,"code":0,"value":0}],"exe_time":790}
[07/10/2022, 10:58:07] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":9252,"result":[{"did":"314254012","siid":2,"piid":2,"code":0,"value":false},{"did":"314254012","siid":2,"piid":5,"code":0,"value":0},{"did":"314254012","siid":2,"piid":1,"code":0,"value":0},{"did":"314254012","siid":2,"piid":4,"code":0,"value":1},{"did":"314254012","siid":3,"piid":6,"code":0,"value":6},{"did":"314254012","siid":3,"piid":7,"code":0,"value":51},{"did":"314254012","siid":3,"piid":8,"code":0,"value":21.000000},{"did":"314254012","siid":4,"piid":3,"code":0,"value":84},{"did":"314254012","siid":4,"piid":5,"code":0,"value":542},{"did":"314254012","siid":5,"piid":1,"code":0,"value":false},{"did":"314254012","siid":6,"piid":6,"code":0,"value":true},{"did":"314254012","siid":6,"piid":1,"code":0,"value":2},{"did":"314254012","siid":7,"piid":1,"code":0,"value":false},{"did":"314254012","siid":10,"piid":10,"code":0,"value":0}],"exe_time":790}
[07/10/2022, 10:58:07] [miot] [Purificateur] Successfully updated property chunk! RAW: [{"did":"314254012","siid":2,"piid":2,"code":0,"value":false},{"did":"314254012","siid":2,"piid":5,"code":0,"value":0},{"did":"314254012","siid":2,"piid":1,"code":0,"value":0},{"did":"314254012","siid":2,"piid":4,"code":0,"value":1},{"did":"314254012","siid":3,"piid":6,"code":0,"value":6},{"did":"314254012","siid":3,"piid":7,"code":0,"value":51},{"did":"314254012","siid":3,"piid":8,"code":0,"value":21},{"did":"314254012","siid":4,"piid":3,"code":0,"value":84},{"did":"314254012","siid":4,"piid":5,"code":0,"value":542},{"did":"314254012","siid":5,"piid":1,"code":0,"value":false},{"did":"314254012","siid":6,"piid":6,"code":0,"value":true},{"did":"314254012","siid":6,"piid":1,"code":0,"value":2},{"did":"314254012","siid":7,"piid":1,"code":0,"value":false},{"did":"314254012","siid":10,"piid":10,"code":0,"value":0}]
[07/10/2022, 10:58:07] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":9352,"result":[{"did":"314254012","siid":10,"piid":8,"code":0,"value":0},{"did":"314254012","siid":10,"piid":7,"code":0,"value":390},{"did":"314254012","siid":12,"piid":1,"code":0,"value":1937100}],"exe_time":1000}
```

The behavior ends up breaking the device and making it inaccessible to anyone.

```
[07/10/2022, 12:49:02] [miot] [Purificateur] Poll failed 4 times!
[07/10/2022, 12:49:02] [miot] [Purificateur] Device diconnected!
[07/10/2022, 12:49:02] [miot] [Purificateur] Poll failed 4 times in a row! Stopping polling and trying to reconnect! Reason: Error: Call to device timed out
[07/10/2022, 12:49:02] [miot] [Purificateur] Trying to reconnect in 60 seconds...
[07/10/2022, 12:49:02] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}]
[07/10/2022, 12:49:02] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":6436}
[07/10/2022, 12:49:03] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6336,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
[07/10/2022, 12:49:03] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6336,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
[07/10/2022, 12:49:03] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6436,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:03] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6436,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:04] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:49:04] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (1) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":6538}
[07/10/2022, 12:49:04] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�����"���%�BFD��ߞk�`�{j>
[07/10/2022, 12:49:04] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:49:04] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (1) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":6638}
[07/10/2022, 12:49:04] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1�������"���%��1�M!�Qs��!����
[07/10/2022, 12:49:06] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:49:06] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:49:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6437,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6437,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6438,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6438,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:08] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:49:08] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (0) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":6738}
[07/10/2022, 12:49:08] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�����"���%���E�yM�!���_�
[07/10/2022, 12:49:08] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:49:08] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (0) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":6838}
[07/10/2022, 12:49:08] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1�������"���%���L���?`�$̛
[07/10/2022, 12:49:11] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6538,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:11] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6538,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:11] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6638,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:11] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6638,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}]
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":6738}
[07/10/2022, 12:49:12] [miot] [Purificateur] Poll failed 1 times!
[07/10/2022, 12:49:12] [miot] [Purificateur] Poll failed! Error: Error: Call to device timed out
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}]
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":6838}
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6738,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6738,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6838,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:12] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6838,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
[07/10/2022, 12:49:16] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:49:16] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:49:26] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:49:26] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:49:36] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:49:36] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:49:46] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:49:46] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:49:56] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:49:56] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:50:02] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:02] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: miIO.info - {"timeout":5000,"retries":3} - {}
[07/10/2022, 12:50:02] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:02] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"miIO.info","params":{"timeout":5000,"retries":3},"id":6839}
[07/10/2022, 12:50:02] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1�p�����"���%�ՙ*FaZ��F5�_��
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (1) {"method":"miIO.info","params":{"timeout":5000,"retries":3},"id":6939}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1�p�����"���%����#-3�W��BGt
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6839,"result":{"life":9720,"uid":6447778637,"model":"zhimi.airpurifier.mb3","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":65804,"mac":"X0:X0:X0:X0:X0:X0","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"xxxxxxxxxxxxxxxx","bssid":"X0:X0:X0:X0:X0:X0","rssi":-19,"primary":6},"netif":{"localIp":"XXX.XXX.X.XXX","mask":"255.255.255.0","gw":"XXX.XXX.X.XXX"}},"exe_time":50}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6839,"result":{"life":9720,"uid":6447778637,"model":"zhimi.airpurifier.mb3","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":65804,"mac":"X0:X0:X0:X0:X0:X0","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"xxxxxxxxxxxxxxxx","bssid":"X0:X0:X0:X0:X0:X0","rssi":-19,"primary":6},"netif":{"localIp":"XXX.XXX.X.XXX","mask":"255.255.255.0","gw":"XXX.XXX.X.XXX"}},"exe_time":50}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Data: {"id":6939,"result":{"life":9721,"uid":6447778637,"model":"zhimi.airpurifier.mb3","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":65804,"mac":"X0:X0:X0:X0:X0:X0","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"xxxxxxxxxxxxxxxx","bssid":"X0:X0:X0:X0:X0:X0","rssi":-19,"primary":6},"netif":{"localIp":"XXX.XXX.X.XXX","mask":"255.255.255.0","gw":"XXX.XXX.X.XXX"}},"exe_time":40}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX -> Message: {"id":6939,"result":{"life":9721,"uid":6447778637,"model":"zhimi.airpurifier.mb3","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":65804,"mac":"X0:X0:X0:X0:X0:X0","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"xxxxxxxxxxxxxxxx","bssid":"X0:X0:X0:X0:X0:X0","rssi":-19,"primary":6},"netif":{"localIp":"XXX.XXX.X.XXX","mask":"255.255.255.0","gw":"XXX.XXX.X.XXX"}},"exe_time":40}
[07/10/2022, 12:50:06] [miot] [Purificateur] Device found: zhimi.airpurifier.mb3
[07/10/2022, 12:50:06] [miot] [Purificateur] Setting up miot device!
[07/10/2022, 12:50:06] [miot] [Purificateur] Doing MiCloud setup
[07/10/2022, 12:50:06] [miot] [Purificateur] Device setup finished! Miot device ready!
[07/10/2022, 12:50:06] [miot] [Purificateur] Connected to device: zhimi.airpurifier.mb3
[07/10/2022, 12:50:06] [miot] [Purificateur] Doing initial property fetch.
[07/10/2022, 12:50:06] [miot] [Purificateur] Splitting properties into chunks. Number of chunks: 2. Chunk size: 14
[07/10/2022, 12:50:06] [miot] [Purificateur] Chunks:  [
 [
  "air-purifier:on",
  "air-purifier:mode",
  "air-purifier:fault",
  "air-purifier:fan-level",
  "environment:pm2.5-density",
  "environment:relative-humidity",
  "environment:temperature",
  "filter:filter-life-level",
  "filter:filter-used-time",
  "alarm:alarm",
  "indicator-light:on",
  "indicator-light:brightness",
  "physical-controls-locked:physical-controls-locked",
  "motor-speed:favorite-fan-level"
 ],
 [
  "motor-speed:motor-speed",
  "motor-speed:motor-favorite",
  "use-time:use-time"
 ]
]
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}] - {}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}] - {}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":6940}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�����"���%����Їf��cO��JQ-
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":6941}
[07/10/2022, 12:50:06] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1�������"���%��
��sP��m�����
[07/10/2022, 12:50:06] [miot] [Purificateur] Successfully saved device info!
[07/10/2022, 12:50:06] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:50:06] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:50:10] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:10] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (1) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":7041}
[07/10/2022, 12:50:10] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�����"���%������9�?�CHX�
[07/10/2022, 12:50:10] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
 
[...] 
 
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}] - {}
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}] - {}
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) Start handshake XXX.XXX.X.XXX
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":8548}
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1p�����"���&-$�N�?�ǀ���`V���
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- (2) {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":8549}
[07/10/2022, 12:50:58] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- !1�������"���&-lx\E5�������
[07/10/2022, 12:51:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}]
[07/10/2022, 12:51:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":2,"piid":2},{"did":"314254012","siid":2,"piid":5},{"did":"314254012","siid":2,"piid":1},{"did":"314254012","siid":2,"piid":4},{"did":"314254012","siid":3,"piid":6},{"did":"314254012","siid":3,"piid":7},{"did":"314254012","siid":3,"piid":8},{"did":"314254012","siid":4,"piid":3},{"did":"314254012","siid":4,"piid":5},{"did":"314254012","siid":5,"piid":1},{"did":"314254012","siid":6,"piid":6},{"did":"314254012","siid":6,"piid":1},{"did":"314254012","siid":7,"piid":1},{"did":"314254012","siid":10,"piid":10}],"id":8447}
[07/10/2022, 12:51:00] [miot] [Purificateur] Poll failed 4 times!
[07/10/2022, 12:51:00] [miot] [Purificateur] Poll failed 4 times in a row! Stopping polling and trying to reconnect! Reason: Error: Call to device timed out
[07/10/2022, 12:51:00] [miot] [Purificateur] Device diconnected!
[07/10/2022, 12:51:00] [miot] [Purificateur] Trying to reconnect in 60 seconds...
[07/10/2022, 12:51:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Reached maximum number of retries, giving up get_properties - [{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}]
[07/10/2022, 12:51:00] [miot] [Purificateur] (Protocol) XXX.XXX.X.XXX <- Error during send! (timeout) Call to device timed out | Request: {"method":"get_properties","params":[{"did":"314254012","siid":10,"piid":8},{"did":"314254012","siid":10,"piid":7},{"did":"314254012","siid":12,"piid":1}],"id":8547}
```

Still, with only the fan connected to the plugin, everything works fine, no queries overloading the device, and a decent polling interval is respected every 10 seconds.

```
[07/10/2022, 12:58:43] [miot] [Ventilateur] Starting property polling.
[07/10/2022, 12:58:53] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:58:53] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:59:03] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:59:03] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:59:13] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:59:13] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:59:23] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:59:23] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:59:33] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:59:33] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:59:43] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:59:43] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 12:59:53] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 12:59:53] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
[07/10/2022, 13:00:03] [miot] [Ventilateur] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[07/10/2022, 13:00:03] [miot] [Ventilateur] (Protocol) Call XXX.XXX.X.XXX: get_properties - [{"did":"244858701","siid":2,"piid":1},{"did":"244858701","siid":2,"piid":2},{"did":"244858701","siid":2,"piid":4},{"did":"244858701","siid":2,"piid":5},{"did":"244858701","siid":2,"piid":3},{"did":"244858701","siid":3,"piid":1}] - {}
```
