13

I am currently working on a project where I want to read the temperature of my CPU but I do not know how to it properly without using external programs such as "CpuTemp" etcetera. According to some sources I should be able to use Node JS together with a package to read the CPU temperature. I managed to read total memory on my PC and uptime via the package "OS". Are there any package I can use to display the CPU temperature or should I do something else to read it?

I have been told I should use Node JS together with WMI, I dont know how to continue on that though.

darclander
  • 1,526
  • 1
  • 13
  • 35

5 Answers5

12

Here you have a NPM package for CPU temp as well as other statistics: https://www.npmjs.com/package/systeminformation
The package is well documented, and will tell you exactly what to do. Otherwhise, it's easy just to google the error codes or other problems that you might encounter.

Erhuz
  • 320
  • 1
  • 4
  • 10
6

Simple web search will return a bunch of nodeJS packages for tracking CPU temperature. For example https://github.com/sebhildebrandt/systeminformation

Have not tested it, but does look like something you would be looking for.

ag_
  • 69
  • 2
6

Case you are running linux it can be:

Create a file called "temp.js" and insert below code:

var spawn = require('child_process').spawn;

temp = spawn('cat', ['/sys/class/thermal/thermal_zone0/temp']);

temp.stdout.on('data', function(data) {
        console.log('Result: ' + data/1000 + ' degrees Celcius');
});

in console run:

node temp.js

Result should be something like below:

Result: 46.16 degrees Celcius
dpetrini
  • 1,169
  • 1
  • 12
  • 25
  • Yes I have read about this solution but since the project is made for windows I believe I have to work via WMI or a Node Package. – darclander Nov 07 '17 at 09:03
1

You can use the following code, it's fetching the temp at an interval of 5 seconds-

const si = require('systeminformation');
setInterval(()=>{
    si.cpuTemperature()
        .then(tmp=>{
            console.log(tmp);
        });
    },5000);

Note. The system should support this API, otherwise it'll show -1 in output

Kaushal
  • 39
  • 4
  • 1
    I am not sure if that is what you meant but, when I am running this as non admin I get `-1` as output aswell? – darclander Jun 15 '20 at 11:37
0

WINDOWS 10 users who experience problems with CPU temperature request. Get something like this { main: -1, cores: [], max: -1 }

I runned cmd as administrator and executed script trough there and it solved this problem for me.

Windows Temperature, Battery, ... wmic - which is used to determine temperature and battery sometimes needs to be run with admin privileges. So if you do not get any values, try to run it again with according privileges. If you still do not get any values, your system might not support this feature. In some cases we also discovered that wmic returned incorrect temperature values.

Talums
  • 11