Simple save and restore for node-red-dashboard chart

The Node-RED Dashboard chart has an output that outputs the state of the current chart.

This can then be saved to permanent storage, and restored at will.

This flow has three buttons

  • The first injects random numbers to create a chart.
  • The second does a simple save to a file - currently set to /tmp/chart.log
  • The third does a restore of the saved file.

More typically the file out node would be replaced by a save to a database, and the file in node would be a database query.

[{"id":"4679091.0341ff8","type":"ui_button","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":2,"width":"2","height":"1","label":"Inject","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":90,"y":60,"wires":[["63911393.d1513c"]]},{"id":"fa4f25b6.ea4048","type":"ui_button","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":4,"width":"2","height":"1","label":"restore","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":90,"y":360,"wires":[["9b9cfb63.2f50f8"]]},{"id":"63911393.d1513c","type":"random","z":"89b47660.0ba428","name":"","low":"0","high":"10","inte":"true","x":240,"y":60,"wires":[["9e4c2fd0.aac16"]]},{"id":"9e4c2fd0.aac16","type":"ui_chart","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":1,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"bezier","nodata":"","ymin":"","ymax":"","removeOlder":"15","removeOlderPoints":"100","removeOlderUnit":"60","cutout":0,"x":390,"y":60,"wires":[["ef3ff83b.aa5008"],[]]},{"id":"8f316ad0.85cdd8","type":"file","z":"89b47660.0ba428","name":"","filename":"/tmp/chart.log","appendNewline":true,"createDir":false,"overwriteFile":"true","x":540,"y":220,"wires":[]},{"id":"9b9cfb63.2f50f8","type":"file in","z":"89b47660.0ba428","name":"","filename":"/tmp/chart.log","format":"utf8","x":240,"y":360,"wires":[["b13ea0c3.a7955"]]},{"id":"ef3ff83b.aa5008","type":"json","z":"89b47660.0ba428","name":"","x":530,"y":60,"wires":[["ef80c15e.8dbc3"]]},{"id":"b13ea0c3.a7955","type":"json","z":"89b47660.0ba428","name":"","x":390,"y":360,"wires":[["9e4c2fd0.aac16"]]},{"id":"ef80c15e.8dbc3","type":"function","z":"89b47660.0ba428","name":"","func":"if (msg.topic === \"save\") {\n    msg.payload = context.last;\n    return msg;\n}\nelse {\n    context.last = msg.payload;\n}\nreturn null;","outputs":1,"noerr":0,"x":270,"y":220,"wires":[["8f316ad0.85cdd8"]]},{"id":"87cc5e2e.b0836","type":"ui_button","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":3,"width":"2","height":"1","label":"save","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"save","x":90,"y":220,"wires":[["ef80c15e.8dbc3"]]},{"id":"212b7f06.b4731","type":"ui_group","z":"","name":"Gauge","tab":"e7f7ff66.2de07","order":2,"disp":true,"width":"6"},{"id":"e7f7ff66.2de07","type":"ui_tab","z":"","name":"Restore","icon":"dashboard"}]
dceejay

Flow Info

created 4 months, 3 weeks ago

Node Types

Core
  • file (x1)
  • file in (x1)
  • function (x1)
  • json (x2)
Other
  • random (x1)
  • ui_button (x3)
  • ui_chart (x1)
  • ui_group (x1)
  • ui_tab (x1)

Tags

  • chart
  • save
  • restore
  • dashboard
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option