Dynamic routing to widgets

OMG : this not only works, but so easy - and visually great !!!!!
Thank you for this !! It is really something else !! Saves effing tons of work and cluttered dashes

4 Likes

We need a screenshot Alf!!!

2 Likes

Dude - I just deleted and started anew - there really isn't much to see here - I will post when I deploy irl (sometime next week hopefully).


sc2

4 Likes

NB: the latest version of FD fixes the issue with missing labels: if you remove labels now you should have no legend and a bit more space for the plot itself. Whether you prefer that or not is up to you....

Ughh, I now realize the on-hover tooltip shows "series 1", I need to fix that :roll_eyes:

2 Likes

Here are screenshots from the actual POC with 5 sensors - there will be 5 more asap.
So easy ....



1 Like

Dude - no biggie - I am just over the moon that I don't have to individually program and layout for all individual sensors..
I will say one thing I just realised - it seems the timelines only get/accept data as long as the window to the dash is open - the nodes themselves do not retain data for a small period of time ?
Is that on your development-list of features ?

1 Like

Yes, I'm not sure yet what it should exactly do.

From what I see your data is all in-memory, so you need to buffer it explicitly. Currently you are sending one data point at a time to the widget. You need to build up the array of all data points to display and send it the full array.

So write a "data buffer" function node that, for each topic (i.e. plot) collects the last N data points in an array saved in the node context. Something like: (untested):

let data = node.get(msg.topic) || [] // get saved data for this topic
data.push(msg.data) // append new data point
while (data.length > 100) data.shift() // remove excess data points
node.set(msg.topic, data) // save the new dataset
msg.data = data // output the full dataset
return msg

What's currently missing is a way to efficiently transmit this to the dashboard, i.e., not send all the data every time. Although, you won't really notice any difference...

Works like a charm with one small mod - context.get and context.set - not node.get/set this time.

Mvh
Alf Møllerud (+47 93267132)

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.