Open Cityloue15 opened 1 year ago
This is probably related to #1751 - the problem is that miiocli does not save the sequence id when exiting, and some devices will simply ignore new requests as they think they have already answered them. A simple way to test if that's the case is to wait a minute or so between requests. If that works, this will be fixed when the linked issue gets implemented.
Hello and thank you for your reply, I have tried using the miiocli genericmiot and miiocli dreamevacuum commands at larger intervals, without success.
@rytilahti Hello, I can communicate with the robot, but I have to query it once before with "viomivacuum", then "dreamevacuum". without that, no communication
USER@pijeedom:~ $ sudo miiocli dreamevacuum --ip 192.168.10.32 --token MYTOKEN status
ERROR:miio.miioprotocol:Got error when receiving: timed out
Error: No response from the device
USER@pijeedom:~ $ sudo miiocli viomivacuum --ip 192.168.10.32 --token MYTOKEN info
WARNING:miio.device:Found an unsupported model 'dreame.vacuum.p2008' for class 'ViomiVacuum'. If this is working for you, please open an issue at https://github.com/rytilahti/python-miio/
Model: dreame.vacuum.p2008
Hardware version: Linux
Firmware version: 3.5.8_1050
3.Request with dreamevacuum: >OK
USER@pijeedom:~ $ sudo miiocli dreamevacuum --ip 192.168.10.32 --token MYTOKEN status
Battery level: 100
Brush life level: 64
Brush left time: 193
Charging state: Charging
Cleaning mode: Turbo
Device fault: NoFaults
Device status: Idle
Filter left level: 43
Filter life level: 29
Life brush main: None
Life brush side: None
Life sieve: None
Map view: None
Operating mode: Sleeping
Side cleaning brush left time: 93
Side cleaning brush life level: 46
Time zone: Europe/Paris
Timer enabled: True
Timer start time: 22:00
Timer stop time: 08:00
Voice package: FR
Volume: 9
Water flow: Low
Water box attached: False
Cleaning time: 4
Cleaning area: 2
First clean time: 1677503427
Total clean time: 232
Total clean times: 8
Total clean area: 152
Same issue here:
`C:\Users\yavuz\AppData\Roaming\Python\Python310\Scripts>miiocli dreamevacuum --ip 192.168.100.118 --token xxx info Running command info ERROR:miio.miioprotocol:Got error when receiving: timed out ERROR:miio.click_common:Exception: No response from the device Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 54, in call return self.main(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 305, in wrap result = kwargs["result"] = func(*args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\decorators.py", line 92, in new_func return ctx.invoke(f, obj, args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(*args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 270, in command_callback return miio_command.call(miio_device, *args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 218, in call return method(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 184, in _wrap self._fetch_info() File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 138, in _fetch_info devinfo = DeviceInfo(self.send("miIO.info")) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 98, in send return self._protocol.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 247, in send raise DeviceException("No response from the device") from ex miio.exceptions.DeviceException: No response from the device`
It works after cold booting the robot, but stops working after a while. Controlling the robot with the app however still works.
miiocli dreamevacuum --ip 192.168.100.118 --token xxx info
And: sudo miiocli dreamevacuum --ip 192.168.100.118 --token xxx status What is the result?
Same result:
`C:\Users\yavuz\AppData\Roaming\Python\Python310\Scripts>miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
ERROR:miio.miioprotocol:Got error when receiving: timed out ERROR:miio.click_common:Exception: No response from the device Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 54, in call return self.main(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 305, in wrap result = kwargs["result"] = func(*args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\decorators.py", line 92, in new_func return ctx.invoke(f, obj, args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(*args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 270, in command_callback return miio_command.call(miio_device, *args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 218, in call return method(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 184, in _wrap self._fetch_info() File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 138, in _fetch_info devinfo = DeviceInfo(self.send("miIO.info")) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 98, in send return self._protocol.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 247, in send raise DeviceException("No response from the device") from ex miio.exceptions.DeviceException: No response from the device`
This is the result after I turned the robot off and on again:
`C:\Users\yavuz\AppData\Roaming\Python\Python310\Scripts>miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
C:\Users\yavuz\AppData\Roaming\Python\Python310\Scripts>miiocli dreamevacuum --ip 192.168.100.118 --token xxx info Running command info Model: dreame.vacuum.p2036 Hardware version: Linux Firmware version: 3.5.8_1021 Supported using: DreameVacuum Command: miiocli dreamevacuum --ip 192.168.100.118 --token xxx Supported by genericmiot: True`
Ok, it works now try, before the info command, the status command
miiocli dreamevacuum --ip 192.168.100.118 --token xxx info && miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
The status info should appear. It's weird, but I think it works, don't you?
No, doesn't help. For me looks like the robot goes into kind of sleep mode and ignores requests. However the app is cumming trough.
What is the result ? with time out 5 min
sudo miiocli dreamevacuum --ip 192.168.100.118 --token xxx info && sudo miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
`C:\Users\yavuz\AppData\Roaming\Python\Python310\Scripts>miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
ERROR:miio.miioprotocol:Got error when receiving: timed out ERROR:miio.click_common:Exception: No response from the device Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 54, in call return self.main(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 305, in wrap result = kwargs["result"] = func(*args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\decorators.py", line 92, in new_func return ctx.invoke(f, obj, args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(*args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 270, in command_callback return miio_command.call(miio_device, *args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 218, in call return method(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 184, in _wrap self._fetch_info() File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 138, in _fetch_info devinfo = DeviceInfo(self.send("miIO.info")) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 98, in send return self._protocol.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 247, in send raise DeviceException("No response from the device") from ex miio.exceptions.DeviceException: No response from the device
C:\Users\yavuz\AppData\Roaming\Python\Python310\Scripts>miiocli dreamevacuum --ip 192.168.100.118 --token xxx info Running command info ERROR:miio.miioprotocol:Got error when receiving: timed out ERROR:miio.click_common:Exception: No response from the device Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 199, in send data, addr = s.recvfrom(4096) TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 54, in call return self.main(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 305, in wrap result = kwargs["result"] = func(*args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\decorators.py", line 92, in new_func return ctx.invoke(f, obj, args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke return __callback(*args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 270, in command_callback return miio_command.call(miio_device, *args, *kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 218, in call return method(args, kwargs) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\click_common.py", line 184, in _wrap self._fetch_info() File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 138, in _fetch_info devinfo = DeviceInfo(self.send("miIO.info")) File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\device.py", line 98, in send return self._protocol.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 239, in send return self.send( File "C:\Users\yavuz\AppData\Roaming\Python\Python310\site-packages\miio\miioprotocol.py", line 247, in send raise DeviceException("No response from the device") from ex miio.exceptions.DeviceException: No response from the device`
No, wait 5 min and
sudo miiocli dreamevacuum --ip 192.168.100.118 --token xxx info && sudo miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
not miiocli dreamevacuum --ip 192.168.100.118 --token xxx info
and miiocli dreamevacuum --ip 192.168.100.118 --token xxx status
one command only, This way, you can (normally) send orders and receive information, but only every 5 minutes, which for me is not a problem on a daily basis.
That make no difference. Still "No response from the device". Again, it looks like if the robot is at the charging station for a while, it's not answering anymore.
Did you copy the entire code? with the "&&".
Hm, according to a hint in the discussions I changed retry_count in device.py to 20. Now it takes quite long but works.
Describe the bug The device responds intermittently, following a disconnection or reconnection, it responds 1 or 2 times, then nothing
Version information (please complete the following information):
Device information:
To Reproduce I would like the robot to respond
sudo miiocli genericmiot --ip 192.168.10.32 --token MYTOKEN info or sudo miiocli dreamevacuum --ip 192.168.10.32 --token MYTOKEN info
ERROR:miio.miioprotocol:Got error when receiving: timed out ERROR:miio.click_common:Exception: No response from the device ...
Expected behavior
Console output miiocli discover
sudo miiocli --debug genericmiot --ip 192.168.10.32 --token MYTOKEN info