-
-
Notifications
You must be signed in to change notification settings - Fork 566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for new vacuum model Xiaowa E20 #348
Comments
Looks like it uses a different protocol, so someone needs to find out what commands it supports. What does |
Unfortunately, the device I had only a few days on the test and I can not explore it in more detail.
|
Thanks for getting back with some info! Prefixing the methods can be done easily, however, we need a way to detect the device type and what are the supported features, which may require some refactoring. File contents for future reference:
|
Methods for Xiaowa E20 from device 13653.apk
|
Hello guys, And my question here is , do you have some new progress with decrypting messages from these new devices ? |
This seems to work fine with yeelight and gen1 vacuum, however, more testing is needed with other devices and/or this change should only be done for the vacuum. Related to #348 / Xiaowa E352
This seems to work fine with yeelight and gen1 vacuum, however, more testing is needed with other devices and/or this change should only be done for the vacuum. Related to #348 / Xiaowa E352
* Force parameters to be an empty list if none is given This seems to work fine with yeelight and gen1 vacuum, however, more testing is needed with other devices and/or this change should only be done for the vacuum. Related to #348 / Xiaowa E352 * Remove empty lists to use the new default Fixes #348, #364 and #370.
Trying to connect to new Roborock Xiaowa E20 - getting an error.
Unfortunately I can not exactly confirm - the problem is in my environment or the protocol has changed in the new version. There are no previous generation devices for testing.
mirobo --ip=192.168.0.102 --token=233fa59afbccfda0f9e47ca7fb74a906 --debug status
INFO:miio.vacuum_cli:Debug mode active
DEBUG:miio.vacuum_cli:Connecting to 192.168.0.102 with token 233fa59afbccfda0f9e47ca7fb74a906
DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
DEBUG:miio.device:Got a response: Container:
data = Container:
data = b'' (total 0)
value = b'' (total 0)
offset1 = 32
offset2 = 32
length = 0
header = Container:
data = b'!1\x00 \x00\x00\x00\x00\x03k\x99\x7f\x00\x01\x03\x93' (total 16)
value = Container:
length = 32
unknown = 0
device_id = b'\x03k\x99\x7f' (total 4)
ts = 1970-01-01 18:27:31
offset1 = 0
offset2 = 16
length = 16
checksum = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' (total 16)
DEBUG:miio.device:Discovered 036b997f with ts: 1970-01-01 18:27:31, token: b'00000000000000000000000000000000'
DEBUG:miio.device:192.168.0.102:54321 >>: {'id': 1, 'method': 'get_status'}
DEBUG:miio.device:192.168.0.102:54321 (ts: 1970-01-01 18:27:31, id: 1) << {'id': 1, 'error': {'code': -32600, 'message': 'Req object invalid.'}}
DEBUG:miio.click_common:Exception: {'code': -32600, 'message': 'Req object invalid.'}
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/miio/click_common.py", line 54, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/click/decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args[1:], **kwargs)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/miio/vacuum_cli.py", line 106, in status
res = vac.status()
File "/usr/local/lib/python3.6/dist-packages/miio/vacuum.py", line 164, in status
return VacuumStatus(self.send("get_status")[0])
File "/usr/local/lib/python3.6/dist-packages/miio/device.py", line 270, in send
raise DeviceError(m.data.value["error"])
miio.exceptions.DeviceError: {'code': -32600, 'message': 'Req object invalid.'}
Error: {'code': -32600, 'message': 'Req object invalid.'}
The text was updated successfully, but these errors were encountered: