[Announce] node-red-contrib-ui-state-trail 0.2.0

A little step forward with node-red-contrib-ui-state-trail
Version 0.2.0

Now the node has the output and you can click on the graph to get information about the clicked state. Output message also contains coordinates of the click so you can use node-red-contrib-ui-contextmenu to build advanced interactive flows with dashboard.



Hi @hotNipi,

Thank you for implementing my entire wishlist in your free time!
This is already one of my favorite nodes ...

Some remarks:

  • The output message doesn't contain the click coordinates. Is that functionality not available yet on NPM?

  • The output message contains starttime and duration. Perhaps also calculate and send the endtime? Although that is redundant information, it might in some cases help in reducing the number of other nodes that are required. E.g. in the mp4 list (see example below), I could very easily get the clicked mp4 file when I have both start and end timestamps...

  • Currently the value always needs to be send in the msg.payload. Doesn't it make sense that this information could be delivered as msg.topic?

  • Could you please explain how the 'Ticks' field can be used?

  • Currently an empty array can be send to remove all data. But it would be nice if we could also send a non-empty array. For example for my camera's, I assume I need to display a calendar. As soon as I select a day, then I need to search for all recordings from that day on my disc:

    • cam_kitchen_starttime1_endtime1.mp4
    • cam_kitchen_starttime2_endtime2.mp4
    • cam_kitchen_starttime3_endtime3.mp4
    • cam_kitchen_starttime4_endtime4.mp4
    • ...

    When I have an array of files, it would become a bit complex if I need to send a separate message for every mp4 file...

    If the input is an array then you could show all the values of that array. Of course this only makes sense for historical data (with timestamps inside the array).

  • Suppose my widget displays an interval of 6 hours. Then I add two buttons to show the previous/next hour of video recordings:


    Does this mean I have to send an empty array (to remove all the current data from the widget) and then add all the data again of all 6 visible hours? Or is there another way to achieve the same result?

  • Can the 'period' become dynamically adjustable via the input message somehow. E.g. when I select a full day of recordings in my calendar or only a single hour. Then I assume I have to adjust dynamically the period of your widget? Or not?

Thanks again!!

The coordinates are not part of msg.payload. Debug complete msg object
If there is nothing then it is a bug.

Can be done.

Can't see currently any practical use of topic.

You can configure how many ticks the widget shows. Ticks are distributed evenly along the timeline. The value of each tick is time of that point in timeline.
The timeline is always with same width but time scales. It scales until the oldest data is near to limit. Left most tick does not show the limit value but start time of the oldest record.

I think it may be possible to add option for fixed time.

Can be done.
I think the following logic - If data is sent in array, the current set of data will be removed. If data is single value or object then it will be added to current data.

Can be done. Probably via msg.control.period = value

1 Like

Version 0.2.1


  • dynamically adjustable period
  • historical data can be feed in array
  • output payload contains the end property (time property renamed to timestamp)

This topic was automatically closed after 60 days. New replies are no longer allowed.