NEWS
Iobroker daten per Script auslesen
-
Hallo Leute,
kann mir einer helfen bei meine Script?
diese Script soll Daten aus meine Iobroker in die log schreiben.
vielen Dank schon mal im voraus.
Gruß Norman
Frequenz = '/opt/vc/bin/vcgencmd measure_clock arm | tr -d "frequency(45)="';
Temperatur = 'cat /sys/class/thermal/thermal_zone0/temp';
CPU_Last = 'cat /proc/loadavg';
Pi_in_Volt = '/opt/vc/bin/vcgencmd measure_volts | tr -d "volt=" | tr -d "V"';
Variable = 'javascript.0.System-Werte.';createState(Variable + 'CPU_Frequenz' , 0.0, {name: 'CPU Frequenz' , type: 'number', unit: 'MHZ'});
createState(Variable + 'CPU_Temperatur', 0.0, {name: 'CPU Temperatur', type: 'number', unit: '°C'});
createState(Variable + 'CPU_Last' , 0.0, {name: 'CPU Last' , type: 'number', unit: '%'});
createState(Variable + 'Pi_in_Volt' , 0.0, {name: 'Pi_in_Volt' , type: 'number', unit: 'V'});var Generator = setInterval(function() {Systemlogger()} ,3000);
function Systemlogger() {
exec(Frequenz, function (error, stdout, stderr) {
temp = parseInt(stdout.substring(0, stdout.length - 1) / 1000000);
setState(Variable + 'CPU_Frequenz', temp);
//log(temp + 'MHZ');
});exec(Temperatur, function (error, stdout, stderr) { temp = parseInt(stdout.substring(0, stdout.length - 1) / 100) / 10; setState(Variable + 'CPU_Temperatur', temp); //log(temp + '°C'); }); exec(CPU_Last, function (error, stdout, stderr) { temp = parseInt(stdout.substring(0, 4) * 100.0); setState(Variable + 'CPU_Last', temp); //log(temp + '%'); }); exec(Pi_in_Volt, function (error, stdout, stderr) { temp = parseInt(stdout.substring(0, stdout.length - 1) / 1000000); setState(Variable + 'Pi_in_Volt', temp); //log(temp + 'V'); });
}
-
Und was funktioniert daran nicht?
Geht bei mir ohne Probleme..
Gruß
-
welchen RPI haben sie?
Bei meinen RPI 4 Funktioniert dies nicht.
-
Danke für die Idee!
Hat bei mir auch nicht 1:1 funktioniert, hab's auf das hier angepasst (und um die GPU Temperatur erweitert):
const Frequenz = 'vcgencmd measure_clock arm'; // | tr -d "frequency(45)=" const Temperatur = 'cat /sys/class/thermal/thermal_zone0/temp'; const GPU_temp = 'vcgencmd measure_temp | tr -d "temp=\'C"' const CPU_Last = 'load=$(cat /proc/loadavg) ; printf "%s\n" "${load%% *}"'; const Pi_in_Volt = 'vcgencmd measure_volts | tr -d "volt=V"'; // | tr -d "V" const Variable = '0_userdata.0.pi4-stats.'; createState(Variable + 'CPU_Frequenz' , 0.0, {name: 'CPU Frequenz' , type: 'number', unit: 'MHZ'}); createState(Variable + 'CPU_Temperatur', 0.0, {name: 'CPU Temperatur', type: 'number', unit: '°C'}); createState(Variable + 'GPU_Temperatur', 0.0, {name: 'GPU Temperatur', type: 'number', unit: '°C'}); createState(Variable + 'CPU_Last' , 0.0, {name: 'CPU Last' , type: 'number', unit: '%'}); createState(Variable + 'Pi_in_Volt' , 0.0, {name: 'Pi_in_Volt' , type: 'number', unit: 'V'}); function Systemlogger() { exec(Frequenz, function (error, stdout, stderr) { var temp = parseInt(stdout.substring(14, stdout.length - 1)) / 1000000; setState(Variable + 'CPU_Frequenz', temp); //log(temp + 'MHZ - from: ' + stdout); }); exec(Temperatur, function (error, stdout, stderr) { var temp = parseInt(stdout.substring(0, stdout.length - 1)) / 1000; setState(Variable + 'CPU_Temperatur', temp); //log(temp + '°C'); }); exec(GPU_temp, function (error, stdout, stderr) { var temp = parseFloat(stdout.substring(0, stdout.length - 1)); setState(Variable + 'GPU_Temperatur', temp); //log("GPU_Temperatur = "+temp + '°C'); }); exec(CPU_Last, function (error, stdout, stderr) { var temp = parseFloat(stdout.substring(0, 4)) * 100; setState(Variable + 'CPU_Last', temp); //log("load = " + temp + '% - src: ' + stdout); }); exec(Pi_in_Volt, function (error, stdout, stderr) { var temp = parseFloat(stdout.substring(0, stdout.length - 1)); // / 1000000; setState(Variable + 'Pi_in_Volt', temp); //log(temp + 'V'); }); } var Generator = setInterval(function() {Systemlogger()} ,3000);