-
-
Notifications
You must be signed in to change notification settings - Fork 121
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
Request new Vacuum Xiaomi s12 #460
Comments
I'm joining the add request! |
@PiotrMachowski, please tell me if there is any reason why support for this vacuum cleaner is not yet available? (s12/s10) Is it a matter of time, or do mijia servers not provide a card for it? |
@4ronos it is not a simple process "just download a map image from a URL". API has to be found and map has to be parsed from a binary file that has an unknown structure. And I have a lot of other repositories to maintain. If you can find an already existing implementation (even not in python) then it would be much much easier for me. |
I need that too. |
1 similar comment
I need that too. |
Have the same model. Anything i can do to help to speed up the fix? |
Hi, same vacuum for me. |
It's the same model as Xiaomi Robot Vacuum S10 B106GL, i don't think they changed something. |
Yeah, it would be great to have that integration available |
I have the same vacuum and I would like to help! I'm very interested supporting this model |
I`ve done some research and succesfully downloaded map from xiaomi.vacuum.c103 It seems like map file is not in zlib/gz format, maybe it is encrypted. At that point I cannot say it exactly |
I could hep too, I just received a xiaomi.vacuum.b106eu |
@maksp86 wich is the format of the payload? The URL is correct? I get |
Update: I've got map decrypted by reverse engineering the mihome plugin for xiaomi.vacuum.c103 (i guess that would work not only for my vacuum). I will post some code later. Some summary: encryption algorithm is a AES (ECB mode), pkcs7 padding After decryption I got hex string, that represents some zlib inflated file, so I think map is in viomi format |
This is a reverse-engeneered map encryption algorithm
P.S functions naming was taken from original code
|
@PiotrMachowski Think my research would help ;-) |
vacuum_map_parser_dreame raised Unsupported frame type error vacuum_map_parser_roborock raised IndexError: index out of range error somewhere in parsing code I can send you a decrypted map file if you want |
I m also very interested for this integration for the S12 |
Could you please attach or publish somewhere then decrypted map file (before using any parser / parsing obviously) but already decrypted, to save time ? |
Here you go decrypted_encrypted_map_test.tar.gz |
Also there is all files needed to download map from miot-based vacuum (3C Enchanced, S10/S12, ijai.vacuum.*) |
@
Maybe it is a dumb question but ... did you try the xiaomi map parser? what is the result ? |
It fails on parsing.. at least for me |
For information, the vacuum does not allow connection if the PC is on another subnet.... i connected in the same subnet, and now got a different error ... now it fails here :
it is strange as in your code, you seem to be working with a config option ? WIFI_INFO_SN
|
Are you on latest version of python-miio? |
yes i am.
The user_id is NOT present in this sentence, nor there is any semi column in the text. (i saw you are looking for semicolumn) version of my robot is 4.3.3_0016 |
It occurred to me that at least for S10 and Mijia 3C (and I suspect for all ijai models) the decompressed map is one big protobuf message (with nested messages of course). Some info on protobuf message encoding: https://protobuf.dev/programming-guides/encoding/ |
You can easily decode protobuf messages online (e.g. here), even without schema |
Here is protobuf schema for map, extracted from Mi Home plugin code RobotMap.proto.gz it is same in my plugin and plugin provided to me by Tarh-76, so I think they are the same for all ijai.* and 3rd-gen Xiaomi vacuums |
@4ronos : Were you able to do it ? what model do you have ? |
i don't know if It is of any importance, but when I do try the key "Mac address + tempModel[0:4] ", the error I get is If I try anything OTHER THAN the "Mac address + tempModel[0:4] ", I have the following error: |
Did you try the original algorithm?
And this is the key to be used to decrypt the map |
Updated decryption kit, now with ability to save image of your map |
Hi everyone, I've been following this thread and I have a S12 vacuum (xiaomi.vacuum.b106eu). signed_10078_1013967_4_ANDROID_bundle_6497872f3d7279bab1ce003fb7773efa.zip |
Yes i did. This is the files I use btw (I modified to get a little more debug, and added the crop for model number) |
So, while having some trouble at first I was able to get the map_downloader running for me, with the T12 (country=de). The good news is, seemingly all these models are using the same encryption, the key is seemingly always 06xx. In the main_bundle, the verison is checked and hard set to either 06eu, 06bk or 06tr. |
Does your wifi_info_sn have a semicollumn? |
i can confirm that @NilusvanEdel version, works on my side. i do not know what was the change involved yet, as it looks pretty much the same... i'll have a look in much more detail to understand what was causing the issue ... but a BIG thanks to everyone involved ! |
you can ignore the split if you don't have any semicolumn, just take the whole wifi SN. |
@PiotrMachowski : Hi Piotr ! now that this version does work, any chances that it is going to be integrated in your repo ? |
Hi, I saw that many people did a great work to make the map decryption working. If I understood correctly, we might have the S12 working. Is there any trick to use the one from NilusvanEdel? (Of course it would be wonderful to have it integrated in the official repo!!!) |
@xvolte yes, I was waiting for it to be functional and I'll try to incorporate this feature into my integration. It might need to be adjusted, as I am rewriting this repo a little bit, but I should be able to handle it |
I only used the script as "standalone", on my pc, (not in home assistant) |
hi, any news about this vacum ? i have try and still not connecting :) |
We will wait for any updates Thanks every one for the efforts. I have too the S12 model and I could help in anything. Regards! |
thanks its working any tips to get the maps ? on miot ? |
I was discovering vacuum-card while I was waiting for your response xD. Thank you very much! |
But, thinking a bit, I don't have recognized any sensor of my vacuum... just entity: vacuum.xiaomi_b106eu_bcc5_robot_cleaner Any idea? |
Cause the main entity contains all the attributes
I didnt check recently is something else could be added |
Thanks you! Oh, I saw where get the attrs.. Anyway, I'm pessimistic to about a possible update of that Xiaomi-Cloud-Map-Extractor Thanks so much! |
I just got a Xiaomi S12 (b106eu) version last week. It is successfully integrated into HA via MioT. But I cannot successfully get the Map Extractor work. I got no map image. |
Checklist
piotr.machowski.dev [at] gmail.com
(Retrieving map; please provide your GitHub username in the email)What vacuum model do you want to be supported?
xiaomi.vacuum.b106eu
What is its name?
Xiaomi Robot Vacuum S12
Available APIs
Errors shown in the HA logs (if applicable)
Other info
No response
The text was updated successfully, but these errors were encountered: