Xiaomi Robot Vacuum Binding

How to send it? Because I’ve tried and it’s not working:

actionCommand.sendCommand(MiIoCommand.STOP_VACUUM);
actionCommand.sendCommand(MiIoCommand.CHARGE);
actionCommand.sendCommand(‘MiIoCommand.STOP_VACUUM’);
actionCommand.sendCommand(‘MiIoCommand.CHARGE’);
actionCommand.sendCommand(‘STOP_VACUUM’);
actionCommand.sendCommand(‘CHARGE’);

Another thing:
Is it working for you get_room_mapping command with firmware version 3.5.7 on S50?
Is there a way to gather room numbers?

The commands are: app_stop followed by a app_charge

Something is not proper. I’ve tried commands:

actionCommand.sendCommand(‘app_stop’);
actionCommand.sendCommand(‘app_charge’);

with Thread::sleep(500) and more.
Third time trigger sends it to dock.
Some logs:

2020-07-23 11:42:02.667 [DEBUG] [o.internal.handler.MiIoVacuumHandler] - Periodic update for ‘miio:vacuum:070A579C’ (miio:vacuum)
2020-07-23 11:42:02.668 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1764,“method”:“get_dnd_timer”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:02.669 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1765,“method”:“get_clean_summary”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 2)
2020-07-23 11:42:02.670 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1766,“method”:“get_status”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 3)
2020-07-23 11:42:02.670 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1764,“method”:“get_dnd_timer”,“params”:}’ → 192.XXX.XXX.XXX (Device: 070A579C) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.671 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1767,“method”:“get_consumable”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 3)
2020-07-23 11:42:02.671 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: DND_GET, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.672 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.673 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1765,“method”:“get_clean_summary”,“params”:}’ → 192.XXX.XXX.XXX (Device: 070A579C) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.673 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CLEAN_SUMMARY_GET, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.674 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.675 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1766,“method”:“get_status”,“params”:}’ → 192.XXX.XXX.XXX (Device: 070A579C) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.675 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: GET_STATUS, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.676 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.676 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1767,“method”:“get_consumable”,“params”:}’ → 192.XXX.XXX.XXX (Device: 070A579C) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.677 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CONSUMABLES_GET, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.677 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.685 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for ‘miio:generic:03B4E9F7’ (miio:basic)
2020-07-23 11:42:02.685 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1769,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 1)
2020-07-23 11:42:02.685 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1770,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 2)
2020-07-23 11:42:02.686 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1771,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 3)
2020-07-23 11:42:02.686 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1772,“method”:“get_prop”,“params”:[“child_lock”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 4)
2020-07-23 11:42:02.738 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for ‘miio:generic:033DE0FB’ (miio:basic)
2020-07-23 11:42:02.738 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1743,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 1)
2020-07-23 11:42:02.739 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1744,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 2)
2020-07-23 11:42:02.739 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1745,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 3)
2020-07-23 11:42:02.740 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1746,“method”:“get_prop”,“params”:[“child_lock”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 4)
2020-07-23 11:42:02.768 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1769,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]}’ → 192.XXX.XXX.XXX (Device: 03B4E9F7) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.769 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.770 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.771 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1770,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]}’ → 192.XXX.XXX.XXX (Device: 03B4E9F7) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.772 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.772 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.773 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1771,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]}’ → 192.XXX.XXX.XXX (Device: 03B4E9F7) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.774 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.775 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.775 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1772,“method”:“get_prop”,“params”:[“child_lock”]}’ → 192.XXX.XXX.XXX (Device: 03B4E9F7) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.776 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.777 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.794 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1743,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.794 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.795 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.796 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1744,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.796 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.797 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.797 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1745,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.798 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.798 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:02.799 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1746,“method”:“get_prop”,“params”:[“child_lock”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:02.799 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:02.800 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:04.260 [DEBUG] [ernal.handler.MiIoUnsupportedHandler] - Periodic update for ‘miio:unsupported:036CE19F’ (miio:unsupported)
2020-07-23 11:42:04.261 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:384,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 036CE19F token: 6E693533XXXXXXXXXXXXXXXX6C65696A Queue: 1)
2020-07-23 11:42:04.262 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 036CE19F (192.XXX.XXX.XXX)
2020-07-23 11:42:04.263 [DEBUG] [ernal.handler.MiIoUnsupportedHandler] - Periodic update for ‘miio:generic:036CE19F’ (miio:unsupported)
2020-07-23 11:42:04.264 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:384,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 036CE19F token: ABC952BDXXXXXXXXXXXXXXXXFD35884B Queue: 1)
2020-07-23 11:42:04.264 [DEBUG] [internal.handler.MiIoAbstractHandler] - Command MIIO_INFO for miio:unsupported:036CE19F failed (type: miio:unsupported): maximum number of DatagramSockets reached
2020-07-23 11:42:04.265 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 036CE19F (192.XXX.XXX.XXX)
2020-07-23 11:42:04.265 [DEBUG] [internal.handler.MiIoAbstractHandler] - Command MIIO_INFO for miio:generic:036CE19F failed (type: miio:unsupported): maximum number of DatagramSockets reached
2020-07-23 11:42:04.331 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:384,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 036CE19F) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:04.331 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 036CE19F type: MIIO_INFO, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:04.331 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:384,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 036CE19F) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:04.332 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:04.332 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 036CE19F type: MIIO_INFO, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:04.333 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:10.356 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1768,“method”:“app_stop”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:10.389 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1768,“method”:“app_stop”,“params”:}’ → 192.XXX.XXX.XXX (Device: 070A579C) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:10.389 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: STOP_VACUUM, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:10.390 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:11.356 [INFO ] [e.smarthome.model.script.DAILY-CHECK] - Sprawdzanie czy jakies urzadzenia sa wylaczone bądź nieaktywne
2020-07-23 11:42:11.359 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1769,“method”:“app_charge”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:11.391 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:1769,“method”:“app_charge”,“params”:}’ → 192.XXX.XXX.XXX (Device: 070A579C) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:11.393 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CHARGE, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:11.394 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:13.763 [INFO ] [e.smarthome.model.script.DAILY-CHECK] - Brak urzadzen offline
2020-07-23 11:42:24.558 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for ‘miio:basic:033DE0FB’ (miio:basic)
2020-07-23 11:42:24.559 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2072,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 1)
2020-07-23 11:42:24.560 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2073,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 2)
2020-07-23 11:42:24.561 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2074,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 3)
2020-07-23 11:42:24.561 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2075,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 4)
2020-07-23 11:42:24.562 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2076,“method”:“get_prop”,“params”:[“child_lock”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 5)
2020-07-23 11:42:24.562 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2077,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 6)
2020-07-23 11:42:24.655 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2072,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:24.656 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: MIIO_INFO, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:24.657 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:24.661 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2073,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:24.661 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:24.662 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:24.667 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2074,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:24.667 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:24.668 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:24.671 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2075,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:24.672 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:24.672 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:24.675 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2076,“method”:“get_prop”,“params”:[“child_lock”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:24.676 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:24.676 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:24.680 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2077,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:24.680 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: MIIO_INFO, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:24.681 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:31.521 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1770,“method”:“app_stop”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:31.621 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: STOP_VACUUM, result: [“ok”], fullresponse: {“result”:[“ok”],“id”:1770}
2020-07-23 11:42:32.522 [INFO ] [e.smarthome.model.script.DAILY-CHECK] - Sprawdzanie czy jakies urzadzenia sa wylaczone bądź nieaktywne
2020-07-23 11:42:32.525 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1771,“method”:“app_charge”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:32.531 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CHARGE, result: {}, fullresponse: {“error”:{“code”:-10003,“message”:“action locked”},“id”:1771}
2020-07-23 11:42:32.532 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: {“code”:-10003,“message”:“action locked”}
2020-07-23 11:42:32.672 [DEBUG] [o.internal.handler.MiIoVacuumHandler] - Periodic update for ‘miio:vacuum:070A579C’ (miio:vacuum)
2020-07-23 11:42:32.672 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1772,“method”:“get_dnd_timer”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:32.673 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1773,“method”:“get_clean_summary”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 2)
2020-07-23 11:42:32.673 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1774,“method”:“get_status”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 3)
2020-07-23 11:42:32.674 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1775,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 4)
2020-07-23 11:42:32.674 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1776,“method”:“get_consumable”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 5)
2020-07-23 11:42:32.687 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for ‘miio:generic:03B4E9F7’ (miio:basic)
2020-07-23 11:42:32.687 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1773,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 1)
2020-07-23 11:42:32.688 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1774,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 2)
2020-07-23 11:42:32.688 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1775,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 3)
2020-07-23 11:42:32.689 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1776,“method”:“get_prop”,“params”:[“child_lock”]} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 4)
2020-07-23 11:42:32.689 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1777,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 03B4E9F7 token: D1EACC72XXXXXXXXXXXXXXXX27844769 Queue: 5)
2020-07-23 11:42:32.722 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: [“on”,“auto”,41,9,8], fullresponse: {“result”:[“on”,“auto”,41,9,8],“id”:1773}
2020-07-23 11:42:32.739 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: DND_GET, result: [{“start_hour”:20,“start_minute”:0,“end_hour”:8,“end_minute”:0,“enabled”:1}], fullresponse: {“result”:[{“start_hour”:20,“start_minute”:0,“end_hour”:8,“end_minute”:0,“enabled”:1}],“id”:1772}
2020-07-23 11:42:32.741 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for ‘miio:generic:033DE0FB’ (miio:basic)
2020-07-23 11:42:32.742 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1747,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 1)
2020-07-23 11:42:32.743 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1748,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 2)
2020-07-23 11:42:32.743 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1749,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 3)
2020-07-23 11:42:32.744 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1750,“method”:“get_prop”,“params”:[“child_lock”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 4)
2020-07-23 11:42:32.744 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1751,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 9EB8274EXXXXXXXXXXXXXXXX4D548F74 Queue: 5)
2020-07-23 11:42:32.746 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CLEAN_SUMMARY_GET, result: [306196,5035920000,313,[1595497284,1595497167,1595496994,1595496906,1595496841,1595496753,1595483834,1595416154,1595416133,1595416098,1595416075,1595416018,1595415987,1595415917,1595415316,1595415239,1595415138,1595415011,1595410996,1595410824]], fullresponse: {“result”:[306196,5035920000,313,[1595497284,1595497167,1595496994,1595496906,1595496841,1595496753,1595483834,1595416154,1595416133,1595416098,1595416075,1595416018,1595415987,1595415917,1595415316,1595415239,1595415138,1595415011,1595410996,1595410824]],“id”:1773}
2020-07-23 11:42:32.747 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1777,“method”:“get_clean_record”,“params”:[1595497284]} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 4)
2020-07-23 11:42:32.751 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: GET_STATUS, result: [{“msg_ver”:3,“msg_seq”:1048,“state”:3,“battery”:96,“clean_time”:68,“clean_area”:1292500,“error_code”:0,“map_present”:1,“in_cleaning”:0,“in_returning”:0,“in_fresh_state”:1,“lab_status”:1,“water_box_status”:0,“fan_power”:103,“dnd_enabled”:0,“map_status”:3,“lock_status”:0}], fullresponse: {“result”:[{“msg_ver”:3,“msg_seq”:1048,“state”:3,“battery”:96,“clean_time”:68,“clean_area”:1292500,“error_code”:0,“map_present”:1,“in_cleaning”:0,“in_returning”:0,“in_fresh_state”:1,“lab_status”:1,“water_box_status”:0,“fan_power”:103,“dnd_enabled”:0,“map_status”:3,“lock_status”:0}],“id”:1774}
2020-07-23 11:42:32.761 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: [“off”,“off”,3500,1647,18374625], fullresponse: {“result”:[“off”,“off”,3500,1647,18374625],“id”:1774}
2020-07-23 11:42:32.762 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Transformed with ‘SecondsToHours’: Filter Hours used 1647 → 0
2020-07-23 11:42:32.762 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Transformed with ‘SecondsToHours’: Run Time 18374625 → 5104
2020-07-23 11:42:32.763 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: MIIO_INFO, result: {“hw_ver”:“Linux”,“fw_ver”:“3.5.7_002008”,“ap”:{“ssid”:“orzechszek2G”,“bssid”:“74:83:C2:91:3A:33”,“rssi”:-41},“netif”:{“localIp”:“192.XXX.XXX.XXX”,“mask”:“255.255.255.0”,“gw”:“192.XXX.XXX.XXX,“model”:“roborock.vacuum.s5”,“mac”:“40:31:3C:AD:00:21”,“token”:“49714b79474c75693362323066725130”,“life”:28902}, fullresponse: {“partner_id”:”",“id”:1775,“code”:0,“message”:“ok”,“result”:{“hw_ver”:“Linux”,“fw_ver”:“3.5.7_002008”,“ap”:{“ssid”:“orzechszek2G”,“bssid”:“74:83:C2:91:3A:33”,“rssi”:-41},“netif”:{“localIp”:“192.XXX.XXX.XXX”,“mask”:“255.255.255.0”,“gw”:"192.XXX.XXX.XXX,“model”:“roborock.vacuum.s5”,“mac”:“40:31:3C:AD:00:21”,“token”:“49714b79474c75693362323066725130”,“life”:28902}}
2020-07-23 11:42:32.773 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: [352,52,8,255,204030], fullresponse: {“result”:[352,52,8,255,204030],“id”:1775}
2020-07-23 11:42:32.774 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Transformed with ‘/10’: Temperature 255 → 25.5
2020-07-23 11:42:32.801 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CONSUMABLES_GET, result: [{“main_brush_work_time”:306513,“side_brush_work_time”:306513,“filter_work_time”:306513,“filter_element_work_time”:0,“sensor_dirty_time”:2113}], fullresponse: {“result”:[{“main_brush_work_time”:306513,“side_brush_work_time”:306513,“filter_work_time”:306513,“filter_element_work_time”:0,“sensor_dirty_time”:2113}],“id”:1776}
2020-07-23 11:42:32.809 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CLEAN_RECORD_GET, result: [[1595497284,1595497352,68,1292500,0,0,2,1]], fullresponse: {“result”:[[1595497284,1595497352,68,1292500,0,0,2,1]],“id”:1777}
2020-07-23 11:42:32.845 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: [“off”,“idle”,44,10,8], fullresponse: {“result”:[“off”,“idle”,44,10,8],“id”:1747}
2020-07-23 11:42:32.849 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: [“off”,“off”,3500,3375,12103853], fullresponse: {“result”:[“off”,“off”,3500,3375,12103853],“id”:1748}
2020-07-23 11:42:32.850 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Transformed with ‘SecondsToHours’: Filter Hours used 3375 → 0
2020-07-23 11:42:32.850 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Transformed with ‘SecondsToHours’: Run Time 12103853 → 3362
2020-07-23 11:42:32.854 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: [0,3,10,254,130032], fullresponse: {“result”:[0,3,10,254,130032],“id”:1749}
2020-07-23 11:42:32.855 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Transformed with ‘/10’: Temperature 254 → 25.4
2020-07-23 11:42:32.861 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: [“off”], fullresponse: {“result”:[“off”],“id”:1750}
2020-07-23 11:42:32.866 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: MIIO_INFO, result: {“life”:135456,“cfg_time”:0,“token”:“9eb8274e5747e911c877c4de4d548f74”,“mac”:“28:6C:07:B9:62:70”,“fw_ver”:“1.4.3_100”,“hw_ver”:“MC200”,“model”:“zhimi.airpurifier.m1”,“wifi_fw_ver”:“SD878x-14.76.36.p79-702.1.0-WM”,“ap”:{“rssi”:-43,“ssid”:“orzechszek2G”,“bssid”:“74:83:C2:91:3A:33”},“netif”:{“localIp”:“192.XXX.XXX.XXX”,“mask”:“255.255.255.0”,“gw”:“192.XXX.XXX.XXX"gw_mac”:“00:01:2E:83:CA:9C”},“mmfree”:55768,“ot”:“otu”,“otu_stat”:[261,261,7607,14,6850,683],“ott_stat”:[19,0,2974,190]}, fullresponse: {“result”:{“life”:135456,“cfg_time”:0,“token”:“9eb8274e5747e911c877c4de4d548f74”,“mac”:“28:6C:07:B9:62:70”,“fw_ver”:“1.4.3_100”,“hw_ver”:“MC200”,“model”:“zhimi.airpurifier.m1”,“wifi_fw_ver”:“SD878x-14.76.36.p79-702.1.0-WM”,“ap”:{“rssi”:-43,“ssid”:“orzechszek2G”,“bssid”:“74:83:C2:91:3A:33”},“netif”:{“localIp”:“192.XXX.XXX.XXX”,“mask”:“255.255.255.0”,“gw”:“192.XXX.XXX.XXX"gw_mac”:“00:01:2E:83:CA:9C”},“mmfree”:55768,“ot”:“otu”,“otu_stat”:[261,261,7607,14,6850,683],“ott_stat”:[19,0,2974,190]},“id”:1751}
2020-07-23 11:42:34.265 [DEBUG] [ernal.handler.MiIoUnsupportedHandler] - Periodic update for ‘miio:unsupported:036CE19F’ (miio:unsupported)
2020-07-23 11:42:34.266 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:385,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 036CE19F token: 6E693533XXXXXXXXXXXXXXXX6C65696A Queue: 1)
2020-07-23 11:42:34.267 [DEBUG] [ernal.handler.MiIoUnsupportedHandler] - Periodic update for ‘miio:generic:036CE19F’ (miio:unsupported)
2020-07-23 11:42:34.267 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 036CE19F (192.XXX.XXX.XXX)
2020-07-23 11:42:34.268 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:385,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 036CE19F token: ABC952BDXXXXXXXXXXXXXXXXFD35884B Queue: 1)
2020-07-23 11:42:34.268 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Sending Ping 036CE19F (192.XXX.XXX.XXX)
2020-07-23 11:42:34.271 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Ping 036CE19F (192.XXX.XXX.XXX) success
2020-07-23 11:42:34.271 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Ping 036CE19F (192.XXX.XXX.XXX) success
2020-07-23 11:42:34.293 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:385,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 036CE19F) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:34.294 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:385,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 036CE19F) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:34.294 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 036CE19F type: MIIO_INFO, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:34.294 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 036CE19F type: MIIO_INFO, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:34.295 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:34.295 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:34.981 [INFO ] [e.smarthome.model.script.DAILY-CHECK] - Brak urzadzen offline
2020-07-23 11:42:40.802 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1778,“method”:“app_stop”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:40.822 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: STOP_VACUUM, result: [“ok”], fullresponse: {“result”:[“ok”],“id”:1778}
2020-07-23 11:42:41.801 [INFO ] [e.smarthome.model.script.DAILY-CHECK] - Sprawdzanie czy jakies urzadzenia sa wylaczone bądź nieaktywne
2020-07-23 11:42:41.804 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:1779,“method”:“app_charge”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-23 11:42:42.453 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: CHARGE, result: [“ok”], fullresponse: {“result”:[“ok”],“id”:1779}
2020-07-23 11:42:42.785 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi device at 192.XXX.XXX.XXX: Receive timed out
2020-07-23 11:42:42.785 [DEBUG] [nal.transport.MiIoAsyncCommunication] - No response from device 03B4E9F7 at 192.XXX.XXX.XXX for command {“id”:1776,“method”:“get_prop”,“params”:[“child_lock”]}.
2020-07-23 11:42:42.786 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: GET_PROPERTY, result: {}, fullresponse: {“error”:“No Response”}
2020-07-23 11:42:42.787 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “No Response”
2020-07-23 11:42:43.193 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 03B4E9F7 type: MIIO_INFO, result: {“life”:135822,“cfg_time”:0,“token”:“d1eacc72f17e934327cbea4027844769”,“mac”:“34:CE:00:B8:90:3F”,“fw_ver”:“1.4.3_105”,“hw_ver”:“MW300”,“model”:“zhimi.airpurifier.m2”,“wifi_fw_ver”:“SD878x-14.76.36.p84-702.1.0-WM”,“ap”:{“rssi”:-63,“ssid”:“orzechszek2G”,“bssid”:“74:83:C2:91:3A:33”},“netif”:{“localIp”:“192.XXX.XXX.XXX”,“mask”:“255.255.255.0”,“gw”:“192.XXX.XXX.XXX"gw_mac”:“00:01:2E:83:CA:9C”},“mmfree”:238964,“ot”:“otu”,“otu_stat”:[309,275,2003,7,1867,153],“ott_stat”:[3,0,175,198]}, fullresponse: {“result”:{“life”:135822,“cfg_time”:0,“token”:“d1eacc72f17e934327cbea4027844769”,“mac”:“34:CE:00:B8:90:3F”,“fw_ver”:“1.4.3_105”,“hw_ver”:“MW300”,“model”:“zhimi.airpurifier.m2”,“wifi_fw_ver”:“SD878x-14.76.36.p84-702.1.0-WM”,“ap”:{“rssi”:-63,“ssid”:“orzechszek2G”,“bssid”:“74:83:C2:91:3A:33”},“netif”:{“localIp”:“192.XXX.XXX.XXX”,“mask”:“255.255.255.0”,“gw”:“192.XXX.XXX.XXX"gw_mac”:“00:01:2E:83:CA:9C”},“mmfree”:238964,“ot”:“otu”,“otu_stat”:[309,275,2003,7,1867,153],“ott_stat”:[3,0,175,198]},“id”:1777}
2020-07-23 11:42:44.217 [INFO ] [e.smarthome.model.script.DAILY-CHECK] - Brak urzadzen offline
2020-07-23 11:42:54.563 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for ‘miio:basic:033DE0FB’ (miio:basic)
2020-07-23 11:42:54.564 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2078,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 1)
2020-07-23 11:42:54.565 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2079,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 2)
2020-07-23 11:42:54.566 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2080,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 3)
2020-07-23 11:42:54.566 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2081,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 4)
2020-07-23 11:42:54.567 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2082,“method”:“get_prop”,“params”:[“child_lock”]} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 5)
2020-07-23 11:42:54.567 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:2083,“method”:“miIO.info”,“params”:} → 192.XXX.XXX.XXX (Device: 033DE0FB token: 164FE9FEXXXXXXXXXXXXXXXXDC5EA1A7 Queue: 6)
2020-07-23 11:42:54.619 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2078,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:54.620 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: MIIO_INFO, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:54.621 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:54.624 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2079,“method”:“get_prop”,“params”:[“power”,“mode”,“humidity”,“aqi”,“average_aqi”]}’ → 192.XXX.XXX.XXXXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:54.625 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:54.625 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:54.629 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2080,“method”:“get_prop”,“params”:[“led”,“buzzer”,“f1_hour”,“f1_hour_used”,“use_time”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
2020-07-23 11:42:54.629 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”}
2020-07-23 11:42:54.630 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “Given final block not properly padded. Such issues can arise if a bad key is used during decryption.”
2020-07-23 11:42:54.630 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2081,“method”:“get_prop”,“params”:[“motor1_speed”,“filter1_life”,“favorite_level”,“temp_dec”,“purify_volume”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:54.631 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:54.631 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:54.631 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2082,“method”:“get_prop”,“params”:[“child_lock”]}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:54.631 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: GET_PROPERTY, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:54.632 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”
2020-07-23 11:42:54.632 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Send command ‘{“id”:2083,“method”:“miIO.info”,“params”:}’ → 192.XXX.XXX.XXX (Device: 033DE0FB) gave error maximum number of DatagramSockets reached
2020-07-23 11:42:54.633 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 033DE0FB type: MIIO_INFO, result: {}, fullresponse: {“error”:“maximum number of DatagramSockets reached”}
2020-07-23 11:42:54.633 [DEBUG] [internal.handler.MiIoAbstractHandler] - Error received: “maximum number of DatagramSockets reached”

There is another issue going on with the maximum sockets reached. There is an github issue for that, but the cause is still unknown. Do you have text config or config via the UI? (in case of text config, can you pls paste it ). For tackling this specific issue of the stop command, it may be better to restart OH first to get rid of the error. You may also wanna check the token of 036CE19F or remove/disable it as it does not seem to function (and may cause this socket issue…)

the interesting response from your device:

action_locked is a response I have never seen before, so indeed might indicate that your device needs some more time or something else??

I’ve removed mentioned 036CE19F and did some additional cleanup. I have robot configured in UI.
I’ve restarted openhab and did some checkouts. It works better with at least 1000ms delay between commands:

actionCommand.sendCommand(‘app_stop’);
actionCommand.sendCommand(‘app_charge’);

but it has to be done more calm and gently…
When I try to run robot and quite fast turn it back to base it “hangs” - stops reacting.
Some logs:
logs_20200724_1.txt (58.6 KB)

I’ve added a delay of 2 seconds now, hope it is enough to prevent the delayed action

Also I could reproduce the max sockets issue (I think it is dependent on the JRE used) and fixed it

Will I find build with changes here? http://verpaalen.com/openhab2/org.openhab.binding.miio-2.5.4-SNAPSHOT.jar

Do you know something about get_room_mapping ? It’s not working.
I’ve sent command:
actionCommand.sendCommand(‘get_room_mapping’)

2020-07-24 10:01:08.051 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {“id”:7137,“method”:“get_room_mapping”,“params”:} → 192.XXX.XXX.XXX (Device: 070A579C token: 49714B79XXXXXXXXXXXXXXXX66725130 Queue: 1)
2020-07-24 10:01:08.137 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for 070A579C type: UNKNOWN, result: , fullresponse: {“result”:,“id”:7137}

Nope, I did not upload it. If it is not in the next 1-2 days accepted in the regular build, i.ll upload it.

Dunno wrt to room mapping, but I think it was asked and answered before… Search is your friend

Sure, I was checking it and send it to proper action channel but it seems it’s not working.
Item:

String actionCommand {channel=“miio:generic:070A579C:actions#commands” }

Command in rule:

actionCommand.sendCommand(‘get_room_mapping’)

With mentioned robot 1S it’s fine.
With my S50 and firmware 3.5.7 I have a problem. Anyone has similar issues?

Hi all, could someone let me know where I can find this app? It would be very helpful getting the zone coordinates.
Does this app run on Windows or Mac?
Thanks
Thomas

It can be as simple as the s50 not supporting the commands. Mine does not know it either.

Btw, the fixes with delay and max sockets have been reached have been merged, hence you can download the ‘official’ 2.5.8-snapshot from jfog

1 Like

For now vacuum/dock commands works fine.Thanks!!
Too bad room check command doesn’t work :confused: I’ll focus on zone cleaning.
Can I find somewhere RR Map viewer to check coordinates?

The offline map viewer is actually included in openhab.
It reads the rrmap files that are saved when pulling the map.

Hope that someone is clever to find the right command line.
Maybe someone with some more java knowledge can help figuring it out. The class to run is RoboMapViewer . In the eclipse IDE it is as simple as ’ run as java program’

Trial and error :face_with_raised_eyebrow:
try 3, 5, 10, 15, …

Here is an updated version with some fixes:

// ----------------------------------------------------------------------------
rule "zone control - zone selection"
// ----------------------------------------------------------------------------
when 
    Member of gZoneSwitch received command
then
    logDebug("zone.rules", "update received from item: " + triggeringItem.name)

    // if (triggeringItem.name == "gZoneSwitch")
    // {
    //     logInfo("zone.rules", "ignoring gZoneSwitch group item")
    //     return;
    // }

    val zoneSwitch = triggeringItem as SwitchItem
    val lastUpdate = now

    zoneSwitch.getGroupNames().forEach[groupName | 
        
        if (groupName != "gZoneSwitch" && groupName != "gAllZones")
        {
            logDebug("zone.rules", "find related members of " + groupName + " in other group gZoneLastUpdate from triggering item " + triggeringItem.name)

            gZoneLastUpdate.members.filter[updateItem | 
                    updateItem.getGroupNames.contains(groupName)
                &&  updateItem.getGroupNames.contains("gZoneLastUpdate")].forEach[ updateItem | 
                logDebug("zone.rules", "posting update to " + updateItem.name)
                updateItem.postUpdate(lastUpdate.toString())
            ]
        }
        else
        {
            logDebug("zone.rules", "ignoring group " + groupName) 
        }
    ]
end

// ----------------------------------------------------------------------------
rule "zone control - action"
// ----------------------------------------------------------------------------
when 
    Item zoneAction received command
then
    logInfo("zone.rules", "zoneAction command received: " + receivedCommand)

    var StringBuilder zoneCmd = new StringBuilder
    var StringBuilder roomCmd = new StringBuilder

    // use this to get the room numbers
    // actionCommand.sendCommand("get_room_mapping[]")

    if (gAllZones.state == ON)
    {
        logInfo("zone.rules", "sending cmd to device: app_start")
        actionCommand.sendCommand("app_start")
        return;
     }

    // sort by timestamp and loop throug items
    gZoneLastUpdate.members.sortBy[(state as DateTimeType).getZonedDateTime.toInstant.toEpochMilli].forEach[zoneLastUpdateItem | 
        logDebug("zone.rules", "--> "+ zoneLastUpdateItem)

        // loop until we find the right group...
        zoneLastUpdateItem.getGroupNames().forEach[groupName | 
            logDebug("zone.rules", "----> "+ groupName)
            if (groupName != "gZoneLastUpdate")
            {
                logDebug("zone.rules", "find related members of " + groupName + " in other group gZoneSwitch")

                // find the switch item from the same room group
                gZoneSwitch.members.filter[zoneSwitchItem | 
                            zoneSwitchItem.getGroupNames.contains(groupName)
                        &&  zoneSwitchItem.getGroupNames.contains("gZoneSwitch")].forEach[ zoneSwitchItem | 
                    
                    logDebug("zone.rules", "found related switch item " + zoneSwitchItem.name + " with state " + zoneSwitchItem.state)
                    
                    if (zoneSwitchItem.state == ON)
                    {
                        var zoneType = transform("MAP", "robo_room_coordinates.map", zoneSwitchItem.name + "#type")
                        var zoneCoordinates = transform("MAP", "robo_room_coordinates.map", zoneSwitchItem.name + "#coordinates")

                        logInfo("zone.rules", zoneCoordinates + "-" + zoneSwitchItem.name + " is ON. {zoneType:" + zoneType + "; zoneCoordinates: " + zoneCoordinates + "}")

                        // not sure if we can assign a new var by reference, so to be safe, just use if..else and duplicate code
                        if (zoneType == "zone")
                        {
                            if (zoneCmd.length == 0)
                            {
                                zoneCmd.append("app_zoned_clean[")
                            }

                            zoneCmd.append(zoneCoordinates)
                        }
                        else if (zoneType == "room")
                        {
                            if (roomCmd.length == 0)
                            {
                                roomCmd.append("app_segment_clean[" + zoneCoordinates)
                            }
                            else
                            {
                                roomCmd.append(", " + zoneCoordinates)
                            }
                        }

                        logDebug("zone.rules", roomCmd.toString)
                    }
                ]
            }
        ]
    ]

    // if we have rooms and zones, zone wins - duplicate code here as well
    if (roomCmd.length != 0)
    {
        val cmd = roomCmd.toString + "]"
        logInfo("zone.rules", "sending cmd to device: " + cmd )
        actionCommand.sendCommand(cmd)
    }
    else if (zoneCmd.length != 0)
    {
        val cmd = zoneCmd.toString + "]"
        logInfo("zone.rules", "sending cmd to device: " + cmd )
        actionCommand.sendCommand(cmd)
    }
    else
    {
        logInfo("zone.rules", "no zone or room selected. nothing to do.")
    }

    zoneAction.postUpdate("start")

end

// ----------------------------------------------------------------------------
rule "zone control - init"
// ----------------------------------------------------------------------------
when
    System started
then
    val lastUpdate = now

    gZoneLastUpdate.members.forEach(item | 
        item.postUpdate(lastUpdate.toString())
    )
end

This one is also nice if you have a KNX environment. You can start cleaning by double clicking a wall switch

import org.joda.time.*

var DateTime lastClick = new DateTime().minusMinutes(1)

// ----------------------------------------------------------------------------
rule "KNX - Roborock"
// ----------------------------------------------------------------------------
when 
    Item KnxLichtGarderobe changed from OFF to ON
then
    if (lastClick.plusMillis(2000).afterNow)
    {
        var zoneCoordinates = transform("MAP", "robo_room_coordinates.map", "zEsstisch" + "#coordinates")
        var cmd = "app_zoned_clean[" + zoneCoordinates + "]"
        actionCommand.sendCommand(cmd)
    }

    lastClick = now
end

Is it possible to start cleaning a room, like in the app, without getting the coordinates?

It is a regular java program, expect it to run in all environments (win, linux, Max)
I made it now so it can be easily run. Find it in this new topic:

Hi
Thanks for the java program.
But I have problem that the miio folder is empty except the token.json file.
The basicUI/APP show the map just fine and it get updated when the roborock is moving.
So I’m unsure where the maps is stored.
I have also tried to search for *.rrmap files but nothing is found.
I’m running openHab 2.5.6 on Rasbian.

sorry, checking the code I see the map file is only saved when you have debugging switched on.
Hence I think you need to run in the terminal
log:set debug org.openhab.binding.miio and then have the robot send another map

2 Likes