-
Notifications
You must be signed in to change notification settings - Fork 1
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
Experimenting with an unsupported model, Polaris 9650iq #20
Comments
Hi there! the good news is, it's not the first time we get this error back, mostly it was because multiple devices exist on the account, and for example some of the equipment returns null for owner id, when you then request further data it returns this error. Now let's hope it's something like that, and not that you need yet another API, then we will need to use a proxy to trace what api's are called. attached the postman collection, login, then get devices, and please post that reply here so that I can have a first look at what happens. |
I figured out which values from the 'login' response were required for subsequent calls. It was a little confusing which token was needed by the device /shadow, /features, and /site endpoints as the names varied and didn't exactly match what was in the login response - turns out it was the userPoolOAuth.IdToken value. I modified the postman collection to use collectionVariables to store the values necessary, and then the subsequent calls reference the collectionVariables: iAquaLink Robot API template.postman_collection.json You just need to input the username and password for your specific account, and the rest get populated when you hit 'login' and then 'devices': ![]() I can get the list of devices (I only have the one): ![]() Unfortunately, when I attempt to get the /shadow, /features, or /site, I get the "Device does not belong to user" response (in various formats): ![]() |
I'm afraid this will not be a quick fix. I'm investigating on changing the code towards socket instead of the http calls. I'll keep you posted once I'm getting there. Maybe they don't require the same inputs in order to get your device info. For sure these http calls have very different behaviour depending on the device. You could install MITM proxy and check what calls are done. Don't know what your experience is in that area... And thanks for the adjustments to the postman collection! |
Good news is I found some time to check out the websocket thing, seems to be fairly easy. Can you try and run following Python code: (replace with your credentials and device ID
|
As for mitmproxy I have it installed, but don't really get how to use it just yet. I can see traffic from my laptop, but not other devices on the network from what I can tell. I was also using wireshark, but haven't seen any traffic to/from my vacuum's IP address. If you have any pointers, I'm all ears. |
Yeah, I had already done that. And, unfortunately, now I won't be able to test for a while, as my robot is out of commission. One of the wheel motors went bad, so I'm waiting on a new motor block :( |
too bad, ping me once you have it back, or we can check with what was still of last values... its not that important that it is online. if you are willing send me over your credentials (after you changed your pass first) then I can have a look. You can send them to [email protected] |
Is the robot out of game, or just you cannot start the cleaning mode? I believe plenty of valuable data can be gathered via MITM, in order to get modes, set modes :) Anyway, good luck with replacement, hope you don't for a long time. |
The motor is replaced, but I'm getting Err10 on the control unit now 😒. I have a few other pieces that need replacing, which is probably causing slipping gears at the wheels. We're gearing up for our 4th of July party, so won't be able to do much until the weekend at this point. |
err 10 is communication error. Most likely due to a cable getting pulled out of place where it connects to the control board. If you open up the connector there are screws to tighten the terminals. |
hi @VynDesign the good news is that I found what is wrong for you, its the same is #4 you have an i2d_robot, and that model uses other endpoints/api's. The owner of the other thread has shared me his credentials and will put the robot in the pool next week, so I should be able to debug what needs to be done to get i2d_robot model supported too! Hope it will all be done by the time you have yours back! |
@VynDesign https://github.com/galletn/iaqualink/tree/galletn-patch-4 contains the required code for your robot, can you test it? |
I figured I'd give it a try, what the heck. The attributes shown are accurately returning my account information, so the authentication is working, but I'm getting the "Device does not belong to user" status reported:
I'm willing to do any legwork you would like for me to assist with getting this model supported. If you have a basic postman collection I can use to start investigating my specific model, please share it.
The text was updated successfully, but these errors were encountered: