-
Notifications
You must be signed in to change notification settings - Fork 71
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
Unknown code 7 for RoborockDockTypeCode #270
Comments
Will be solved alongside my other device specific changes. Thanks for getting this information. I know I'm missing some functionality for the s8 pro ultra in terms of docking. Right now we have DustCollectionMode | WashTowelMode | SmartWashParams What other dock cleaning functionality does it have? Do you happen to have a mac/iphone? |
The dock has functionality for emptying the dust bin, washing the mop pad, setting the mop wash frequency, setting the washing mode, setting the dust collection emptying mode, setting the drying duration. I don't have mac or iphone, but if you are wanting to pull packet captures of communications to the vacuum while interacting with the app, I can pull those from my network gear. |
Okay so I don't currently have any information for the drying duration and I have some missing information for actually running a few of those things. If you would like to try, be my guest. I tried for a bit capturing from through my unifi wap and my iphone and an android emulator, but the data was further encrypted. The only luck I've had is doing a packet trace directly through my iphone. It's definitely worth giving a try though since you're familiar with packet captures Make sure your phone + vacuum are on the same network, then we are looking for tcp request with data and src or destination of the packet to your robots ip. If you use wireshark, the filter I use is ip.addr = ip and data.data and tcp If you're able to get data, all of the dock information would be helpful, including the maintenance tab. if you can get the data, I can decrypt it or I can send you a script. |
As far as I can tell, I don't see any traffic going directly between my phone and the vacuum... everything appears to be going through the cloud connection at AWS |
Yep that's the issue I faced. For some reason when I did the packet trace directly through my iphone I got data that went directly to the vacuum |
I believe it is because you can capture layer 2 traffic over the air, but to capture layer 3 traffic unencrypted you need to be going directly through the device |
That's just it, I'm not seeing ANY packets at all going directly between my vacuum and my phone. |
I take back everything I've said. I was actually able to get some data using wireshark on my windows laptop. The data doesn't necessarily have to be directly from your phone. Just filter to any that have your robots vacuum, make sure your phone, laptop, and vacuum are all on teh same network and there are no firewall restrictions between them. Then I had to close and reopen my app a few times for data to start coming up. See if doing that gives you anything with data. |
The only packets I am able to see are either phone <> AWS, roborock <> AWS or roborock <> broadcast, I am definitely seeing data between the vacuum and AWS though, can you give me some information on how to process that data and I'll see if I can get anything useful? |
If you download this branch and then run this file after entering in your local_key(you can get this from the debug logs), your roborocks ip, and the path to the wireshark.pcapng file, this should print out everything decoded. https://github.com/Lash-L/python-roborock/blob/wireshark_decoding/roborock/offline_parser.py |
I do not see data like that, the data going between roborock <> AWS is all TLS, the roborock > broadcast traffic is all UDP and I am not seeing any traffic at all between roborock <> phone (which is the data that would likely be unencrpted). It's as if my phone and/or vacuum are refusing to communicate over the local network |
That is basically the problem I was facing in the past, not sure why it started working for me. Potentially because I have connected locally to the vacuum before? So maybe it starts broadcasting differently? I'm not sure. But that is exactly what was happening with me originally. UDP data that wasn't helpful and TLS data that was encrypted. Restarting the app a few times does sometimes work for me - but also I wonder if the android app is just different from the iphone app? |
Ah I'm silly and tired. Looking at it now - and the data I was actually getting - I was getting data from my HA instance communicating with the vacuum, not my phone. So going back to the state of never having been able to capture packets from anything other than ios/mac |
I block the dns for mqtt-us-2.roborock.com before sniffing the traffic between phone and vacuum. If the app can't communicate to mqtt, it starts using local connection |
Ah that makes sense - I had tried blocking internet entirely from the device but it ended up not working when I did that. Just the dns makes sense |
@Lash-L I was able to pull decrypted pcaps directly from my phone using an app named PCAPdroid. I have successfully parsed them using the offline parser that you provided. Here are the messages from opening the "Dock settings" menu:
Here are the messages for setting the drying time:
Here are the messages when opening the Maintenance menu:
Let me know if you need me to grab anything else, it's getting late so I likely won't be able to send anything else until after work tomorrow, but I'll keep an eye on this issue and get you whatever data you need. |
I expected another consumable call - that response doesn't describe all of the items in maintenance does it? |
I'll check it again tomorrow and see if I missed any of the messages |
Okay can you send me a screenshot of the screen for both of the dock consumables? Do they have timing info on them? |
Oddly enough, no they don't... The progress bar slowly depletes so it's tracking it somewhere and somehow, but the detail page for them does not show any time information. I'm stuck in meetings at work basically all day, once I'm off in about 6 hours I can pull whatever messages you need, feel free to leave me a list of the data you're interested in and I'll get it all pulled after work for you! Side note, I love how big GitHub makes these screenshots. I hope you wanted them obnoxiously huge because I have no idea how to adjust them, lol. |
It is saying once every two months for dock maintenance brush and once a month for dock water filter. So that is probably what @Lash-L was looking for |
Thanks. I'll try to tackle this at some point - I'll be honest, it wont be at the top of my priorities, but I will try to complete it |
Version of the custom_component
fresh install from main branch via HACS
What vacuum are you using?
Roborock S8 Pro Ultra
Describe the bug
The integration seems to not (yet) support the new dock with the S8 Pro Ultra
Debug log
Note: The lines about "Unknown code 304 for RoborockMopModeCode" are being handled over in #261
The text was updated successfully, but these errors were encountered: