var data = {
"201201/tempUoTwoBalco":
{"value": 63.1199951171875, "route": "/vui/platforms/benshome/devices/201201/tempUoTwoBalco", "writable": false},
"201201/tempUoThreeBalco":
{"value": 74.12999725341797, "route": "/vui/platforms/benshome/devices/201201/tempUoThreeBalco", "writable": false},
"201201/Oat":
{"value": 89.99999237060547, "route": "/vui/platforms/benshome/devices/201201/Oat", "writable": false},
"201201/RmTmpSpt":
{"value": 79.99999237060547, "route": "/vui/platforms/benshome/devices/201201/RmTmpSpt", "writable": true},
"201201/RmTmp":
{"value": NaN, "route": "/vui/platforms/benshome/devices/201201/RmTmp", "writable": false},
"201201/UhCmd":
{"value": 0, "route": "/vui/platforms/benshome/devices/201201/UhCmd", "writable": false},
"201201/GlblHtgDsbl":
{"value": 0, "route": "/vui/platforms/benshome/devices/201201/GlblHtgDsbl", "writable": false}
};
let supplyTemp = null;
let returnTemp = null;
const sensor1 = "201201/tempUoTwoBalco";
const sensor2 = "201201/tempUoThreeBalco";
for(var key1 in data){
if(key1 === sensor1){
supplyTemp = {};
supplyTemp.payload = data[key1].value;
supplyTemp.topic = 'Line1';
}else if(key1 === sensor2){
returnTemp = {};
returnTemp.payload = data[key1].value;
returnTemp.topic = 'Line2';
}
}
return [[supplyTemp,returnTemp]];
[edit]
or more dynamic, you add sensors in sensor object, no need to edit code to add sensors. It would output 3 lines to chart if you added one more sensor in the object.
[{"id":"f2a105a1.b216","type":"inject","z":"c791cbc0.84f648","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"201201/tempUoTwoBalco\":{\"value\":63.1199951171875,\"route\":\"/vui/platforms/benshome/devices/201201/tempUoTwoBalco\",\"writable\":false},\"201201/tempUoThreeBalco\":{\"value\":74.12999725341797,\"route\":\"/vui/platforms/benshome/devices/201201/tempUoThreeBalco\",\"writable\":false},\"201201/Oat\":{\"value\":89.99999237060547,\"route\":\"/vui/platforms/benshome/devices/201201/Oat\",\"writable\":false},\"201201/RmTmpSpt\":{\"value\":79.99999237060547,\"route\":\"/vui/platforms/benshome/devices/201201/RmTmpSpt\",\"writable\":true},\"201201/RmTmp\":{\"value\":\"NaN\",\"route\":\"/vui/platforms/benshome/devices/201201/RmTmp\",\"writable\":false},\"201201/UhCmd\":{\"value\":0,\"route\":\"/vui/platforms/benshome/devices/201201/UhCmd\",\"writable\":false},\"201201/GlblHtgDsbl\":{\"value\":0,\"route\":\"/vui/platforms/benshome/devices/201201/GlblHtgDsbl\",\"writable\":false}}","payloadType":"json","x":310,"y":840,"wires":[["1d5fa17768faa0ad"]]},{"id":"1d5fa17768faa0ad","type":"function","z":"c791cbc0.84f648","name":"","func":"//create a look up table for sensors required and chart line name\nconst sensors = {\"201201/tempUoTwoBalco\": \"supplyTemp\", \n \"201201/tempUoThreeBalco\": \"returnTemp\"};\n//set the payload to data \nlet data = msg.payload;\n// set output to null\nlet temps = {};\nfor(const element of Object.values(sensors)){\n temps[element] = null;\n}\n// loop through data getting keys\nfor(const key1 in data){\n if( sensors[key1] ){ // checkif key in sensor lookup\n temps[sensors[key1]] = {}; //initialise object\n temps[sensors[key1]].payload = data[key1].value; // add payload\n temps[sensors[key1]].topic = sensors[key1]; // add topic\n }\n}\n// create return array\ntemps = Object.values(temps);\nreturn [temps];","outputs":1,"noerr":0,"initialize":"","finalize":"","x":470,"y":800,"wires":[["e8823236e6e79e37"]]},{"id":"e8823236e6e79e37","type":"debug","z":"c791cbc0.84f648","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":620,"y":840,"wires":[]}]