Read the statement by Michael Teeuw here.
Module Developer Challenge - I surrender!
-
@Mykle1 It doesn’t seem that pc-stats has all the info you require. You might consider switching to the systeminformation package.
You can then use
si.cpu()
for your CPU stats andsi.cpuTemperature()
to retrieve an object that (if I read the docs right) looks like{ main: 0, max: 0, cores: [0, 0] }
with your core temps. You can then combine the two responses (or you may be able to have it return all within one request) and return those in a singlesendNotification()
call. -
You know, I started out with that package but had some trouble with it. Likely, the problem was me, but I moved to the pc-stats package and had no problems. However, as you saw, that package doesn’t offer the cpu temps. I then tried unsuccessfully to use other packages along with pc-stats to get the temps but my knowledge and abilities are woefully inadequate. For whatever reason, I was able to get a return from pc-stats. That’s no small miracle where I’m concerned. I do like the data that the return gives me, especially the multicore support.
Anyway, I did give it more than a few days and more than a few attempts but I will look at systeminformation again in the hopes that I can stumble across some success. Really, I am not qualified to be doing any of this. I just find it so fascinating that I keep trying until I get something right. And then there are the few special people that have taken pity on me and taught me what I needed to know at any given moment. They have my deepest gratitude and respect.
Thanks for pointing me back to where I should have been all along. :-)
-
@Mykle1 Depending on the style/implementation you’re using, you may want to read up on Promises in JS.
Also, see this note here about the
lm-sensors
package.Alternatively, have a look at MMM-SystemStats which uses
vcgencmd
on the CLI to retrieve the system temp, which would be far easier to integrate into your current module. -
@ninjabreadman said in Module Developer Challenge - I surrender!:
Alternatively, have a look at MMM-SystemStats which uses vcgencmd on the CLI to retrieve the system temp, which would be far easier to integrate into your current module.
Thanks ninja. I will give this a shot first. In fact, I’m going to look at that right now.
-
-
@ninjabreadman said in Module Developer Challenge - I surrender!:
Hmm, it may be that vcgencmd is specific to the RPi.
Ha! I see. Ok, on to the others. :-)
-
@Mykle1 It actually might be best to run
cat /sys/class/thermal/thermal_zone*/type
to see if they’re already populating on your Ubuntu install. If so, you can runcat /sys/class/thermal/thermal_zone*/temp
to get all the values, or justcat
a specific one. Should be to three decimal places (i.e.64000
means 64.000°C).You might run it a few times to see that the values change, and if they do, then use the same
exec()
method fromMMM-SystemStats
with the right command and some math. -
@ninjabreadman said in Module Developer Challenge - I surrender!:
acpi seems like a contender, as does lm-sensors.
Made some progress with lm-sensors which gives me great hope. I can see the return in the terminal but not in the node_helper. Still, I’m encouraged. I’ll continue to work on it tomorrow. I’m feeling a bit tired tonight.
Sockets connected & modules started ... Launching application. { 'nouveau-pci-0100': { 'PCI adapter': { temp1: [Object] } }, 'coretemp-isa-0000': { 'ISA adapter': { 'Core 0': [Object], 'Core 1': [Object], 'Core 2': [Object], 'Core 3': [Object] } } } Whoops! There was an uncaught exception... TypeError: this.sendSocketNotification is not a function at /home/pop/MagicMirror/modules/MMM-PC-Stats/node_helper.js:32:9 at /home/pop/MagicMirror/modules/MMM-PC-Stats/node_modules/sensors.js/lm-sensors.js:96:12 at ChildProcess.exithandler (child_process.js:209:7) at emitTwo (events.js:106:13) at ChildProcess.emit (events.js:194:7) at maybeClose (internal/child_process.js:899:16) at Socket. (internal/child_process.js:342:11) at emitOne (events.js:96:13) at Socket.emit (events.js:191:7) at Pipe._handle.close [as _onclose] (net.js:510:12)
-
@Mykle1 Not sure what you’re doing in your code. But…
- You’ll get a temp reading for each cpu core, so you need to choose|add|average…, and
- How do you execute the script? Did you give it proper permissions?
- I’m you already know, but you also need to allow the external file to be read from node_helper.js.
-
@E3V3A said in Module Developer Challenge - I surrender!:
Not sure what you’re doing in your code. But…
Neither am I. :-)