Closed CaCu15 closed 4 years ago
Is there any other endpoint that can be used to produce a map image for the cleaning history?
I think this is what you looking for?
Hello pidator,
thanks for you advise. If I understand correctly, the valetudo re mapper gives me the map for the CURRENT cleaning activity, i.e. the currently ongoing activity or the LAST activity if there is no ongoing activity. But I'm locking for the maps of the activities in the past that happend BEFORE the current/last activity. I can get a list of the last 20 cleaning activities using /api/clean_summary and /api/clean_record_map gives me raw map data. So the data is there, it just needs to be translated into a PNG. Anyway, maybe I will try to implement that on my own if I find the time. Should be just a combination of the implementation of /api/clean_record_map and /api/simple_map. Instead of returning the data to the client as /api/clean_record_map does it curretnly the code needs to call the SimpleMapDrawer with this data just as /api/simple_map does it. But instead of using the current map data and status this would work with the data returned by /api/clean_record_map.
I suppose it should be really easy to make /api/simple_map endpoint to optionally accept binary mapdata to draw the map from, if its capabilities are enough for you (since it's quiet ugly compared to what valetudo-mapper can do).
I've uploaded a test build in which a new parameter called "slot" is added to /api/simple_map
endpoint. This allows to draw a map currently stored in the specified slot.
So regarding cleaning history, you can call the already known /api/clean_record_map
(usually 2 times) to get a response like ["map_slot_8"]
, and right after that you can request a /api/simple_map?slot=8
to get the simple map of that exact cleaning.
Also, there are a few other GET parameters for a simple map:
Thanks a lot, rand256, for implementing this. I will try that as soon as I find the time. Currently I've a lot to work on at my job, thus only very little time.
First I would like to thank you for this great piece of software. This makes integration into smart home solutions like Home Assistant much easier!
I would like to offer a cleaning history incl. map snapshots similar to the one offered on the settings page of Valetudo:
I would like to integrate that with Home Assistant. I've already found the api endpoints listed below that provide the majority of the required information.
/api/clean_summary
- Retrieve the Clean history incl. RecordID/api/clean_record
- Retrieve the basic data of a specific RecordID - This returns the info displayed on the cleaning history except the map data/api/clean_record_map
- Retrieve the map snapshot raw data. Essentially this should be the data needed to produce the historic map that is shown when the user clicks the "Map Button" in the screenshot above.The map data delivered by /api/clean_record_map do not contain the image in a grafic format (e.g. PNG, JPG), but are gzipped raw map data that need to be interpreted in order to "draw" a map image.
There is an endpoint
/api/simple_map
available, that draws a map from raw map data. But I can not pass the map data returned by/api/clean_record_map
to this endpoint in order to return a map image for the map snapshot. InsteadIs there any other endpoint that can be used to produce a map image for the cleaning history? If not: Is there any chance to offer such an endpoint? Best option (from my point of view) would be to pass the recordID directly to the endpoint. Than the endpoint can load the map data using
/api/clean_record_map
and draw the map in the same way as/api/simple_map
does it.I could imlement a logic to manage the cleaning history maps outside of valetudo (just save them at the end of each cleaning event), but if I see that correctly, than Valetudo does already have all the necessary data and logic in place. IMHO this would be not a really "elegant" solution . I would prefer to use the data and features already available...