Hi Rob,
Follow suggestions based on the points raised. Essentially, most of the points uses analysis/action concepts, below will be listed helpful links.
1. Get only the last values of each variable
Use an analysis to perform this, every time you receive an uplink, an action should trigger an analysis. That analysis will create a new variable (e.g. heatmap_pin_value), but before it should delete the old values (if existed).
2. Dynamically upload a heatmap background image.
You can enable the users to upload an image through a input form, when the form is submitted setup to trigger an analysis to store the image path on the background image variable:
3. Dynamically add points to the heatmap
Through an input form again you can collect the input such as X,Y and value (take in mind that a good idea is to fetch the value information from a specific bucket is a good approach, it will differ for each use-case though).
Using it’s documentation we can understand the variable structure accepted by the widget:
https://help.tago.io/portal/en/kb/articles/486-heat-map-widget
{
“variable”: “heatmap_pin_value”,
“value”: 71, //consider fetching this value from a bucket
“metadata”: {“x”:0.2, “y”:0.3}
}
Helpful links:
https://www.youtube.com/watch?v=wb7B_q7K7es&t=1s
https://www.youtube.com/watch?v=AdSVMEvHjUY&t=2s
https://help.tago.io/portal/en/kb/articles/120-creating-analysis
https://help.tago.io/portal/en/kb/articles/30-actions
https://help.tago.io/portal/en/kb/articles/486-heat-map-widget#3_Bubble_position
https://www.youtube.com/c/TagoIO/videos
Hope I could help you somehow.
Guilherme Costa