Für die CPU-Last verwende ich folgendes Skript:
// CPU-Last aus Datei /proc/stat ermitteln
var fs = require('fs');
var idLast = getIdByName('Service.CPU-Last');
var fn = '/proc/stat';
var cpuUser = 0;
var cpuNice = 0;
var cpuSystem = 0;
var cpuIdle = 0;
function cpuLast(text) {
var lines = text.split('\n');
var cpu = lines[0].split(' ');
var cUser = parseFloat(cpu[2]) - cpuUser;
var cNice = parseFloat(cpu[3]) - cpuNice;
var cSystem = parseFloat(cpu[4]) - cpuSystem;
var cIdle = parseFloat(cpu[5])- cpuIdle;
var last = 100 * (1 - cIdle / (cUser + cNice + cSystem + cIdle));
setState(idLast, runden(last, 1), true);
cpuUser = parseFloat(cpu[2]);
cpuNice = parseFloat(cpu[3]);
cpuSystem = parseFloat(cpu[4]);
cpuIdle = parseFloat(cpu[5]);
}
function getStat() {
fs.readFile(fn, 'utf8', function(err, text) {
if(err) log('Fehler beim Lesen von /proc/stat', 'error');
else cpuLast(text);
});
}
schedule('*/10 * * * * *', getStat);
und das für die Chip-Temperatur:
// Chiptemperatur
var tempid = getIdByName("Service.Pi-Temperatur");
var temp = require("pi-temperature");
function pitemp() {
temp.measure(function(err, temp) {
if(err) log('Fehler Pi-Temperatur', 'error');
else setState(tempid, temp, true);
});
}
schedule("*/1 * * * *", pitemp);