I have the node-red-contrib-graphs working but it is a little kludgy. I want to direct the data to a file at the same time so that if it does refresh or the flows have to restart they pull back the historical data. Before I start I am looking for flows to build this from if you folks have anything you might think helpful. I am pulling data from openweather and add it as an example later. Been away for a while but I see a lot of improvement in the dashboard in general. It would be awesome if I could find a way to merger node-red-contrib-graphs into node-red-dashboard. I remember that in dashboard you can add links so I will tie it that way for now.
Hope you are all well... I got my patent published 2/11/2021 so it should finalize in October. So Officially I have done more work with the least energy ever recorded...
Working with DIN rail and Jerry at Pi-Plates has new improved DIN Plates to help me out so check him out. GJ on the new dashboard code
[{"id":"7e13168b.d9445","type":"openweathermap in","z":"847fbaba.2e7b88","name":"San Andreas","wtype":"current","lon":"","lat":"","city":"San Andreas","country":"USA","language":"en","x":90,"y":740,"wires":[["84f0f316.d6f728"]]},{"id":"84f0f316.d6f728","type":"function","z":"847fbaba.2e7b88","name":"Openweather Dashboard Function","func":"var msg1 = { payload:msg.payload.temp_maxc };\nmsg1.topic = \"Max\";\nvar msg2 = { payload:msg.payload.tempc };\nmsg2.topic = \"Current\";\nvar msg3 = { payload:msg.payload.temp_minc };\nmsg3.topic = \"Min\";\nvar msg4 = { payload:msg.payload.description};\nvar msg5 = { payload:msg.payload.icon};\nvar msg6 = { payload:msg.payload.pressure};\nvar msg7 = { payload:msg.payload.humidity};\nvar msg8 = { payload:msg.payload.clouds};\nvar msg9 = { payload:msg.payload.windspeed};\nvar msg10 = { payload:msg.payload.winddirection};\nvar msg11 = { payload:msg.payload.sunrise};\nvar msg12 = { payload:msg.payload.sunset};\nvar msg13 = { payload:msg.location};\nreturn [ msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9, msg10, msg11, msg12, msg13 ];","outputs":13,"noerr":0,"x":340,"y":740,"wires":[[],["b44bea5d.ed11c"],[],[],[],[],[],[],[],[],[],[],[]],"outputLabels":["Temp Max","Current Temp","Temp Min","Description","Weather icon","Pressure","Humidity","Clouds","Wind Speed","Wind Direction","Sunrise","Sunset","Location"]},{"id":"b44bea5d.ed11c","type":"unit-converter","z":"847fbaba.2e7b88","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"","x":600,"y":660,"wires":[["c793ded1.ad6f18"]]},{"id":"c793ded1.ad6f18","type":"function","z":"847fbaba.2e7b88","name":"","func":"var now = ( new Date() ).getTime();\nvar value=msg.payload;\nmsg.payload = {\n tstamp: now,\n data: value\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":780,"y":660,"wires":[["6bcf6594.eaa3b4"]]},{"id":"6bcf6594.eaa3b4","type":"change","z":"847fbaba.2e7b88","name":"","rules":[{"t":"change","p":"topic","pt":"msg","from":"Current","fromt":"str","to":"","tot":"str"},{"t":"delete","p":"_msgid","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":660,"wires":[["ecb63e4c.d0f7c"]]},{"id":"ecb63e4c.d0f7c","type":"iot-datasource","z":"847fbaba.2e7b88","name":"Outdoor Temperature","tstampField":"tstamp","dataField":"data","disableDiscover":false,"x":1140,"y":660,"wires":[[]]},{"id":"d85919cd.908c78","type":"function","z":"847fbaba.2e7b88","name":"","func":"var now = ( new Date() ).getTime();\nvar value=msg.payload;\nmsg.payload = {\n tstamp: now,\n data: value\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":800,"y":600,"wires":[["1321cc47.7dffd4"]]},{"id":"1321cc47.7dffd4","type":"change","z":"847fbaba.2e7b88","name":"","rules":[{"t":"delete","p":"_msgid","pt":"msg"},{"t":"delete","p":"filename","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":600,"wires":[["5254cc54.c3502c"]]},{"id":"5254cc54.c3502c","type":"iot-datasource","z":"847fbaba.2e7b88","name":"CPU Temperature - F","tstampField":"tstamp","dataField":"data","disableDiscover":false,"x":1180,"y":600,"wires":[[]]},{"id":"1b364fef.62e0c8","type":"calculator","z":"847fbaba.2e7b88","name":"","inputMsgField":"payload","outputMsgField":"payload","operation":"div","constant":"1000","x":650,"y":600,"wires":[["d85919cd.908c78"]],"info":"msg.payload = [\n \"system.cpu.temp\",\n msg.payload\n]"},{"id":"17a1a805.79ee6","type":"file in","z":"847fbaba.2e7b88","name":"thermal_zone0_temp","filename":"/sys/class/thermal/thermal_zone0/temp","format":"utf8","chunk":false,"sendError":false,"encoding":"none","x":480,"y":600,"wires":[["1b364fef.62e0c8"]]},{"id":"f74b62d9.f68e6","type":"function","z":"847fbaba.2e7b88","name":"","func":"msg.filename=\"/sys/class/thermal/thermal_zone0/temp\";\nreturn msg;","outputs":1,"noerr":0,"x":280,"y":600,"wires":[["17a1a805.79ee6"]]},{"id":"def78aaf.529ae","type":"inject","z":"847fbaba.2e7b88","name":"","repeat":"15","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":600,"wires":[["f74b62d9.f68e6"]]}]