NEWS
Systemdaten auslesen von CUU
-
Hey zusammen, ich habe ein Script aus dem Inet das die Systemdaten (cpu-temp, Cpu-frequenz und Laufzeit) ausliest.
Jetzt würde ich gerne noch den benutzen RAM, übrigen RAM, sowie sd Kartenspeicherplatz auslesen.über den Raspi direkt über putty bekomme ich das hin, ich weis bloß nicht was für einen Pfad ich in das Script einbauen muss. kann mir da jemand weiterhelfen?
const logging = false; // Create states createState('javascript.0.ccu.cpuFrequency', { type: 'number', write: false, read: true, unit: 'MHz' }); createState('javascript.0.ccu.systemTemperature', { type: 'number', write: false, read: true, unit: '°C' }); createState('javascript.0.ccu.uptime', { type: 'number', write: false, read: true, unit: 'h' }); // Update every 2 minutes schedule('*/2 * * * *', () => { /* CuxD based*/ const upTimeScript = ` string command = "cat /proc/uptime | awk '// { printf $1/3600 }'"; dom.GetObject("CUxD.CUX2801001:2.CMD_SETS").State(command); dom.GetObject("CUxD.CUX2801001:2.CMD_QUERY_RET").State (1); WriteLine(dom.GetObject("CUxD.CUX2801001:2.CMD_RETS").State());`; sendTo('hm-rega.0', upTimeScript, res => { if (logging) log(JSON.stringify(res), 'info'); if (!res.error) setState('javascript.0.ccu.uptime', parseFloat(res.result), true); else log(res.error, 'warn'); }); /* CuxD based */ const sysTempScript = ` string command = "/usr/bin/vcgencmd measure_temp | awk '// { printf substr($1, length($1) -5, 4)}'"; dom.GetObject("CUxD.CUX2801001:6.CMD_SETS").State(command); dom.GetObject("CUxD.CUX2801001:6.CMD_QUERY_RET").State(1); WriteLine(dom.GetObject("CUxD.CUX2801001:6.CMD_RETS").State());`; sendTo('hm-rega.0', sysTempScript, res => { if (logging) log(JSON.stringify(res), 'info'); if (!res.error) setState('javascript.0.ccu.systemTemperature', parseFloat(res.result), true); else log(res.error, 'warn'); }); /* CuxD based */ const cpuFrequencyScript = ` string command = "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk '// {printf $1/1000}'"; dom.GetObject("CUxD.CUX2801001:3.CMD_SETS").State(command); dom.GetObject("CUxD.CUX2801001:3.CMD_QUERY_RET").State (1); WriteLine(dom.GetObject ("CUxD.CUX2801001:3.CMD_RETS").State());`; sendTo('hm-rega.0', cpuFrequencyScript, res => { if (logging) log(JSON.stringify(res), 'info'); if (!res.error) setState('javascript.0.ccu.cpuFrequency', parseFloat(res.result), true); else log(res.error, 'warn'); }); });
Mod-Edit: Thema von "Forum" nach "ioBroker Allgemein" verschoben!
-
@heidepower sagte in Systemdaten auslesen con CUU:
ber den Raspi direkt über putty bekomme ich das hin
welchen Pfad gibst du denn da ein?
-
in der console bekomme ich mit dem Befehl "free -m" die Information über den RAM.
Jetzt ist die Frage wie ich das hier richtig eintrage, dass es klappt. habe schon verschiedenes ausprobiert, klappt bloß nicht.
string command = "/usr/bin/vcgencmd measure_temp | awk '// { printf substr($1, length($1) -5, 4)}'";
-
@heidepower
Damit wir nicht aneinander vorbeireden:du hast eine echte CCU?
auf deren IP greifst du mit putty zu?und der ioBroker läuft NICHT auf dem selben RasPi (falls piVCCU)?
-
Ich hab einen raspberrymatic die auf einem raspberry 3b+läuft. Der IOBroker läuft auf einem Rock64. Auf dem läuft das Script und fragt die CPU Temp, Frequenz und Uptime der Raspberry 3b+ ab! Logischerweise muss CUXD installiert sein und dementsprechend eingerichtet sein das, das Script funktioniert!
und ich würde jetzt gerne noch RAM und Speicherplatz der SD card abgefragt!
-
@heidepower
Bei RasPiMatic bin ich raus - da kenne ich mich nicht mit aus -
@Homoran
eig. betrift es die RaspiMatic nicht wirklich. Wie gesagt ich bräuchte nur den richtigen Pfad wo ich die Werte abrufen kann. Kenne mich mit Linux und Java Script nicht wirklich aus.