sharkiq icon indicating copy to clipboard operation
sharkiq copied to clipboard

Map and multiple floors

Open BurtHarris opened this issue 4 years ago • 4 comments

I like my new Shark IQ, but the Shark app seems to lack one feature that's important for my home: multi-floor mapping.

I started looking for a Shark API to see if I might be able to correct that by writing some code. Perhaps something that could load and store different maps, and let me use Alexa to switch which floor I've put the robot and doc on.

Thoughts? How dev-friendly has Shark (and ayla?) been to your effort?

BurtHarris avatar Dec 03 '20 17:12 BurtHarris

So, it's funny you should mention that.  The API clearly has support for multiple floors.  I haven't played with it much, but the properties are definitely there. Like, if you instantiate the Python API, there are elements in the properties_full dict for multi-floor support.

Along these lines, one thing I've really wanted to do but haven't had a chance is to figure out the floor image format.

As far as Shark goes, I haven't heard anything, but the app is super easy to MITM and they haven't complained, so /shrug I guess? Ayla's API is pretty well documented if you want to poke around. Links to their API browser are:

  • https://developer.aylanetworks.com/apibrowser/
  • https://docs.aylanetworks.com/cloud-services/api-browser/

ajmarks avatar Dec 04 '20 02:12 ajmarks

Sounds good, I'll dig into it. Thanks for the links.

The map format would be interesting, but seems unnecessary to support what I'm looking for, especially if the API already has some form of support for the concept.

BurtHarris avatar Dec 04 '20 19:12 BurtHarris

Any update on this ? Is the map in memory or stored in the Ayla cloud ?

jerrynsr avatar Dec 07 '21 21:12 jerrynsr

Regarding this: I've poked around with the API manually, and found that the actual map files appear to be some binary storage, likely of point data which gets rendered on the device locally. I can't determine the format of the file though, and it's entirely possible that it's a proprietary format. I'm not sure how to identify it. But it's not a gzip, zip, tar, png, or jpg.

For reference: When fetching properties from the API, one of them should look like this (some content removed for privacy): image

If you then follow the URL found within the value field, you get something like this: image

That last url is a signed AWS S3 url which allows you to download the binary file. Now what to do with it? I don't know if we'll ever know.

travipross avatar Feb 02 '22 06:02 travipross