toLocaleString format question

I am running a bash script to get pi vcgencmd outputs. Here is the output:

arm:frequency(48)=1500398464, core:frequency(1)=500000992, h264:frequency(28)=0,isp:frequency(45)=0,v3d:frequency(46)=500000992,core:volt=0.8500V, sdram_c: volt=1.1000V,sdram_i:volt=1.1000V,sdram_p:volt=1.1000V

I have written a function where I have converted the ouput to JSON and am trying to use toLocaleString to format the core:frequency output to insert commas.

The output of my code is showing the value as a string, however when I use the toLocaleString method I get object.object output on debug.

The function code is below:


var data = msg.payload.split(",");
var arm = {payload:arm = data[0].split("=")};
var corefreq = { payload: corefreq = data[1].split("=")[1]};
var h264 = { payload: h264 = data[2].split("=") };
var isp = { payload: isp = data[3].split("=") };
var v3d = { payload: v3d = data[4].split("=") };
var corevolt = { payload: corevolt = data[5].split("=")};
var sdram_c = { payload: sdram_c = data[6].split("=") };
var sdram_i = { payload: sdram_i = data[7].split("=") };
var sdram_p = { payload: sdram_p = data[8].split("=") };

msg.corevolt = corevolt;
msg.sdram_c = sdram_c;
msg.sdram_i = sdram_i;
msg.sdram_p = sdram_p;
msg.arm = arm;
corefreq = { payload: corefreq.toLocaleString()};
msg.h264 = h264;
msg.isp = isp;
msg.v3d = v3d;
return [[msg.corevolt], [msg.sdram_c], [msg.sdram_i] , [msg.sdram_p] , [msg.arm] , [corefreq] ,
 [msg.h264] ,[msg.isp] , [msg.v3d]   ];

If I remove the toLocaleString method the output is:
image

When I insert it I get:

image

Reading up on the method, It should format the string with commas if I am getting the jist of the method.

Here is the flow with just core frequency output:


[{"id":"4253bfee.8fd99","type":"inject","z":"c9242564aed22208","g":"c53b90c273b4b541","name":"5 min tick","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":"1","topic":"","payloadType":"date","x":190,"y":160,"wires":[["7ebd287a.1e4328","7fb918ab.8d7898","3a761877.a9da58","1797bc43.2a0cb4","fda74eb2.4fac3","85b4251bf87b2efd","266157f5cc4a5fd8"]]},{"id":"266157f5cc4a5fd8","type":"exec","z":"c9242564aed22208","g":"c53b90c273b4b541","command":"/home/pi/volt.node","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"pi stats","x":300,"y":440,"wires":[["08fc3389b6cbd858"],[],[]]},{"id":"08fc3389b6cbd858","type":"function","z":"c9242564aed22208","g":"c53b90c273b4b541","name":"pi data","func":"\nvar data = msg.payload.split(\",\");\nvar arm = {payload:arm = data[0].split(\"=\")};\nvar corefreq = { payload: corefreq = data[1].split(\"=\")[1]};\nvar h264 = { payload: h264 = data[2].split(\"=\") };\nvar isp = { payload: isp = data[3].split(\"=\") };\nvar v3d = { payload: v3d = data[4].split(\"=\") };\nvar corevolt = { payload: corevolt = data[5].split(\"=\")};\nvar sdram_c = { payload: sdram_c = data[6].split(\"=\") };\nvar sdram_i = { payload: sdram_i = data[7].split(\"=\") };\nvar sdram_p = { payload: sdram_p = data[8].split(\"=\") };\n\n\nmsg.corevolt = corevolt;\nmsg.sdram_c = sdram_c;\nmsg.sdram_i = sdram_i;\nmsg.sdram_p = sdram_p;\nmsg.arm = arm;\ncorefreq = { payload: corefreq.toLocaleString()};\nmsg.h264 = h264;\nmsg.isp = isp;\nmsg.v3d = v3d;\nreturn [[msg.corevolt], [msg.sdram_c], [msg.sdram_i] , [msg.sdram_p] , [msg.arm] , [corefreq] ,\n [msg.h264] ,[msg.isp] , [msg.v3d]   ];\n\n//var pointNum = parseFloat(text);","outputs":9,"noerr":0,"initialize":"","finalize":"","libs":[],"x":530,"y":620,"wires":[["5ada5bc92c60acb5"],["3af768b123de9099"],["a0ca80fa48c489ea"],["fc2cdfcc1c0fcdb5"],["391a5888c096497a"],["7ed0b0731a342d1b","ef5a6f91911c69a9"],["276fbfc7aebd7b07"],["05fd647de40cbc4c"],["46aab8e622166179"]]},{"id":"7ed0b0731a342d1b","type":"ui_text","z":"c9242564aed22208","g":"c53b90c273b4b541","group":"1c0a2e9e7806e8dc","order":21,"width":"2","height":"2","name":"core","label":"core","format":"{{msg.payload}}","layout":"col-center","className":"","x":730,"y":640,"wires":[]},{"id":"1c0a2e9e7806e8dc","type":"ui_group","name":"Freq","tab":"8f4542aa.faf2","order":5,"disp":true,"width":"6","collapse":false,"className":""},{"id":"8f4542aa.faf2","type":"ui_tab","name":"System","icon":"fa-line-chart","order":8,"disabled":false,"hidden":false}]

Thanks in advance

You are setting it in payload object twice, and then toLocaleString() turns the object to a string.
try

const data = msg.payload.split(",");
const output = [
    { payload: data[0].split("=") },
    { payload: Number(data[1].split("=")[1]).toLocaleString()},
    { payload: data[2].split("=") },
    { payload: data[3].split("=") },
    { payload: data[4].split("=") },
    { payload: data[5].split("=")},
    { payload: data[6].split("=") },
    { payload: data[7].split("=") },
    { payload: data[8].split("=") }
];
return output;
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.