node-red-dashboard icon indicating copy to clipboard operation
node-red-dashboard copied to clipboard

Chart with Timescale X axis - old data points not being removed as new ones are added

Open colinl opened this issue 2 months ago • 3 comments

Current Behavior

For a chart with Timescale X axis and an X axis time limit set (e.g. last 1 hour), running in Append mode with new data points regularly added, then, as new data points are added, old data from before the specified time limit should be removed. This does not in fact happen. If the chart is left on screen then old data points are never removed. If a different page is selected and then a return is made to the page then the refreshed chart is correctly limited to recent data.

Expected Behavior

No response

Steps To Reproduce

Import and deploy the flow below. The Chart is configured with a time limit of 1 minute. Leave the flow running for more than a minute and it will be seen that old data are not removed from the chart.

Navigate to a different dashboard page and then back to this one and the old data will be removed.

[{"id":"a7794835b16c88a8","type":"inject","z":"997da33a0beedade","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":2660,"wires":[["4d5e9f52310935c6"]]},{"id":"4d5e9f52310935c6","type":"function","z":"997da33a0beedade","name":"Random numbers","func":"const min =0\nconst max = 1\nmsg.payload = Math.random() * (max-min) + min\n\nreturn msg","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":2660,"wires":[["e0f939c39f438a57"]]},{"id":"e0f939c39f438a57","type":"ui-chart","z":"997da33a0beedade","group":"4f87bd59a15b847e","name":"x axis prune test","label":"x axis prune test","order":1,"chartType":"line","category":"topic","categoryType":"msg","xAxisLabel":"","xAxisProperty":"","xAxisPropertyType":"timestamp","xAxisType":"time","xAxisFormat":"","xAxisFormatType":"{HH}:{mm}:{ss}","xmin":"","xmax":"","yAxisLabel":"","yAxisProperty":"payload","yAxisPropertyType":"msg","ymin":"","ymax":"","bins":10,"action":"append","stackSeries":false,"pointShape":"circle","pointRadius":"3","showLegend":false,"removeOlder":"1","removeOlderUnit":"60","removeOlderPoints":"","colors":["#0095ff","#ff0000","#ff7f0e","#2ca02c","#a347e1","#d62728","#ff9896","#9467bd","#c5b0d5"],"textColor":["#346cda"],"textColorDefault":false,"gridColor":["#2dd920"],"gridColorDefault":false,"width":"4","height":"4","className":"","interpolation":"linear","x":840,"y":2660,"wires":[[]]},{"id":"f0897fec9eecd662","type":"inject","z":"997da33a0beedade","name":"Clear","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[]","payloadType":"json","x":480,"y":2720,"wires":[["e0f939c39f438a57"]]},{"id":"4f87bd59a15b847e","type":"ui-group","name":"test","page":"c6ff182a4185f2f2","width":"6","height":"1","order":1,"showTitle":true,"className":"","visible":"true","disabled":"false","groupType":"default"},{"id":"c6ff182a4185f2f2","type":"ui-page","name":"Test page","ui":"ID-BASE-1","path":"/testpage","icon":"home","layout":"grid","theme":"f9b6670b127dc219","breakpoints":[{"name":"Default","px":"0","cols":"3"},{"name":"Tablet","px":"576","cols":"6"},{"name":"Small Desktop","px":"768","cols":"9"},{"name":"Desktop","px":"1024","cols":"12"}],"order":5,"className":"","visible":"true","disabled":"false"},{"id":"ID-BASE-1","type":"ui-base","name":"Dashboard","path":"/dashboard","appIcon":"","includeClientData":false,"acceptsClientConfig":["ui-control","ui-notification","ui-gauge-classic"],"showPathInSidebar":false,"headerContent":"page","titleBarStyle":"default","showReconnectNotification":false,"notificationDisplayTime":"1","showDisconnectNotification":true,"allowInstall":true},{"id":"f9b6670b127dc219","type":"ui-theme","name":"FlowForge Theme","colors":{"surface":"#152a47","primary":"#005aff","bgPage":"#ffffff","groupBg":"#ffffff","groupOutline":"#cc3e3e"},"sizes":{"pagePadding":"12px","groupGap":"12px","groupBorderRadius":"4px","widgetGap":"12px","density":"default"}},{"id":"4b75f24dbd788b92","type":"global-config","env":[],"modules":{"@flowfuse/node-red-dashboard":"1.29.0"}}]

Environment

  • Dashboard version: 1.29.0
  • Node-RED version: 4.1.1
  • Node.js version: 22.20.0
  • npm version:
  • Platform/OS:
  • Browser:

Have you provided an initial effort estimate for this issue?

I can not provide an initial effort estimate

colinl avatar Oct 14 '25 20:10 colinl

I am working on a fix for this.

colinl avatar Oct 15 '25 08:10 colinl

Is there a hold up on reviewing and applying PRs? It all seems to have ground to a halt.

colinl avatar Oct 24 '25 14:10 colinl

@colinl a temporary hold up. We'll get things moving again soon.

knolleary avatar Nov 12 '25 14:11 knolleary