[GELÖST] CPU-Last, CPU Temp und RAM Auslastung
Moderatoren: jmaus, Co-Administratoren
[GELÖST] CPU-Last, CPU Temp und RAM Auslastung
Hallo zusammen, ich habe nun hier im Forum eine weile gesucht und wenn ich es richtig verstanden habe, müsste man die oben genannten Werte als Systemvariable abrufen können.
Bei mir gibt es solche Variablen leider nicht. Kann mir evtl. jemand erklären wie ich diese auslesen kann. Ich habe aktuell die Vermutung das die CCu3 mit der Zeit etwas träger wird und diese Werte würden einem da ja recht schnell helfen.
Danke
Bei mir gibt es solche Variablen leider nicht. Kann mir evtl. jemand erklären wie ich diese auslesen kann. Ich habe aktuell die Vermutung das die CCu3 mit der Zeit etwas träger wird und diese Werte würden einem da ja recht schnell helfen.
Danke
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: CPU-Last, CPU Temp und RAM Auslastung
Hallo
du musst natürlich entsprechende Systemvariablen anlegen, die dann mit einem Programm (Skript) befüllt werden. Hier ein paar Beispiele von meinem Raspberry
Bsp:
dafür musst Du eine Systemvaraible "SV_Memory_free" anlegen.
dito
Achtung! Hierbei habe ich aber auch ein CuXD Gerät CPU 10 was die CPU Auslastung anzeigt. Und eine Systemvariable benötige ich nur, weil ich das Gerät in Pocketcontrol nicht sehe.
Die Nutzung ohne Gewähr und vielleicht hat wer hier noch bessere Ideen.
Andi
du musst natürlich entsprechende Systemvariablen anlegen, die dann mit einem Programm (Skript) befüllt werden. Hier ein paar Beispiele von meinem Raspberry
Bsp:
Code: Alles auswählen
! Memory (frei)
! =====
var x;
dom.GetObject("CUxD.CUX2801001:12.CMD_SETS").State("cat /proc/meminfo | grep 'MemFree:'");
dom.GetObject("CUxD.CUX2801001:12.CMD_QUERY_RET").State(1);
x = dom.GetObject("CUxD.CUX2801001:12.CMD_RETS").State();
x = x.Substr(15,12);
dom.GetObject("SV_Memory_free").State(x);
Code: Alles auswählen
! Memory (Total)
! =====
var x;
dom.GetObject("CUxD.CUX2801001:12.CMD_SETS").State("cat /proc/meminfo | grep 'MemTotal:'");
dom.GetObject("CUxD.CUX2801001:12.CMD_QUERY_RET").State(1);
x = dom.GetObject("CUxD.CUX2801001:12.CMD_RETS").State();
x = x.Substr(15,12);
dom.GetObject("SV_Memory_total").State(x);
WriteLine(x);
Code: Alles auswählen
! Memory (verfügbar)
! =====
var x;
dom.GetObject("CUxD.CUX2801001:12.CMD_SETS").State("cat /proc/meminfo | grep 'MemAvailable:'");
dom.GetObject("CUxD.CUX2801001:12.CMD_QUERY_RET").State(1);
x = dom.GetObject("CUxD.CUX2801001:12.CMD_RETS").State();
x = x.Substr(15,12);
dom.GetObject("SV_Memory_verfuegbar").State(x);
WriteLine(x);
Code: Alles auswählen
! RAM Auslastung
string temp;
system.Exec("cat /proc/meminfo | egrep 'Mem(Total|Available)' | tr -d '\n' | awk '{ printf(\"%.1f\", 100-$4/$2*100) }'", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("SV_RAM_Auslastung").State(temp);
WriteLine(temp);
}
Code: Alles auswählen
! CPU Auslastung
! ==========
dom.GetObject("SV_CPU").State(dom.GetObject("CPU 10").State().ToString(2));
Code: Alles auswählen
! Temperatur CPU
! ==========
string temp;
system.Exec("vcgencmd measure_temp | cut -d '=' -f2 | cut -d\"'\" -f1", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("SV_CPU_Temp").State(temp);
}
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Re: CPU-Last, CPU Temp und RAM Auslastung
Wow vielen Dank,
die CPU Temp und die RAM Auslastung laufen, gehe davon aus das diese in Prozent angezeigt wird. Zumindest kommt bei mir 26,7 heraus.
Das mit den CuXD Geräten hab ich bisher noch nicht hinbekommen. Werde ich aber nochmal versuchen.
die CPU Temp und die RAM Auslastung laufen, gehe davon aus das diese in Prozent angezeigt wird. Zumindest kommt bei mir 26,7 heraus.
Das mit den CuXD Geräten hab ich bisher noch nicht hinbekommen. Werde ich aber nochmal versuchen.
- jmaus
- Beiträge: 9869
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 464 Mal
- Danksagung erhalten: 1883 Mal
- Kontaktdaten:
Re: CPU-Last, CPU Temp und RAM Auslastung
Du kannst das ganze auch komplett ohne CUxD Geräte erledigen und einfach stattdessen „system.Exec()“ nehmen.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
Re: CPU-Last, CPU Temp und RAM Auslastung
Das hört sich gut an, dann ändere ich in den Skripts einfach CUxD in System.Exec() oder habe ich das falsch verstanden?
Hast du evtl mal vor diese Anzeigen in Rasberrymatic einzuarbeiten. Unter dem Duty Cycle würde sich das sicher gut machen.
Hast du evtl mal vor diese Anzeigen in Rasberrymatic einzuarbeiten. Unter dem Duty Cycle würde sich das sicher gut machen.
Re: CPU-Last, CPU Temp und RAM Auslastung
Hallo. Die CPU Auslastung bekomme ich nicht hin mit dem cuXD Gerät, 00,00%
"Mein" angepasster Skript: CuxD Gerät heisst CPU LAST K16, System Variable CPU LAST
! CPU Auslastung
! ==========
dom.GetObject("CPU LAST").State(dom.GetObject("CPU LAST K16").State().ToString(2));
Geht es einfacher mit Syste.Exec ? Wie genau?
Danke!
"Mein" angepasster Skript: CuxD Gerät heisst CPU LAST K16, System Variable CPU LAST
! CPU Auslastung
! ==========
dom.GetObject("CPU LAST").State(dom.GetObject("CPU LAST K16").State().ToString(2));
Geht es einfacher mit Syste.Exec ? Wie genau?
Danke!
- jmaus
- Beiträge: 9869
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 464 Mal
- Danksagung erhalten: 1883 Mal
- Kontaktdaten:
Re: CPU-Last, CPU Temp und RAM Auslastung
Ja, das geht es. Ich hatte es zwar prinzipiell hier (viewtopic.php?p=462756#p462756) bereits vor längerer Zeit beschrieben, aber ich wiederhole das einfach hier noch einmal damit es an der ggf. "richtigeren" Stelle steht. Und ich werde auch den Skript noch einmal aktualisieren, weil der eher für eine ältere RaspberryMatic Version damals von mir so ausgearbeitet wurde. Hier also der Beitrag nochmal etwas aktualisiert:
Bei mir sieht das so aus:
Und im Timer habe ich eben "Ganztägig" mit Zeitintervall alle 3 Minuten eingestellt.
Und dann als Skript benutze ich aktuell folgendes:
Code: Alles auswählen
string temp;
system.Exec("cat /sys/class/thermal/thermal_zone0/temp | sed 's/.\{3\}$/.&/'", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("CPU_Temp").State(temp);
}
system.Exec("cat /proc/loadavg | cut -d' ' -f-3 | tr -d '\n'", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("CPU_Load").State(temp);
}
system.Exec("cat /proc/meminfo | egrep 'Mem(Total|Available)' | tr -d '\n' | awk '{ printf(\"%.1f\", 100-$4/$2*100) }'", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("RAM_Usage").State(temp);
}
system.Exec("awk '{s=int($1);d=int(s/86400);h=int(s % 86400/3600);m=int(s % 3600 / 60); printf \"%d Tage, %dh %d min\", d, h, m}' /proc/uptime", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("SYS_Uptime").State(temp);
}
system.Exec("/usr/bin/chronyc -n tracking | grep 'Last offset' | awk '{ print $4*1000 }'", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("SYS_NTPOffset").State(temp);
}
Ja, die musst du natürlich alle entsprechend Manuell vorher anlegen. Und zwar:Centauri2k hat geschrieben: ↑23.10.2018, 02:00Müssen Dafür SysVars "CPU_Temp", "CPU_Load", "RAM_Usage" und "SYS_Uptime" vom Typ Zahl angelegt werden?
CPU_Temp - Zahl mit Einheit °C (min: -100, max: 100)
CPU_Load - Zeichenkette
RAM_Usage - Zahl mit Einheit % (min: 0, max: 100)
SYS_Uptime - Zeichenkeitte
SYS_NTPOffset - Zahl mit Einheit ms (min: -999999, max: 999999)
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 23
- Registriert: 19.01.2017, 00:03
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: CPU-Last, CPU Temp und RAM Auslastung
@jmaus
Auch von mir vielen Dank, obwohl ich schon vieles hinbekommen habe, ist CUxD für mich noch immer ein kleines Mysterium.
Läuft einwandfrei, trotzdem würde ich mich auch dem Wunsch anschließen, dass auf die Oberfläche der RaspberryMatic mit einzubauen. Wäre als Visualisierung unter dem Duty Cycle mega genial.
Auch von mir vielen Dank, obwohl ich schon vieles hinbekommen habe, ist CUxD für mich noch immer ein kleines Mysterium.
Läuft einwandfrei, trotzdem würde ich mich auch dem Wunsch anschließen, dass auf die Oberfläche der RaspberryMatic mit einzubauen. Wäre als Visualisierung unter dem Duty Cycle mega genial.
-
- Beiträge: 213
- Registriert: 19.01.2016, 10:23
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 49 Mal
- Danksagung erhalten: 19 Mal
Re: CPU-Last, CPU Temp und RAM Auslastung
Das kann doch jeder , der es will selbst einbinden! (Nach dieser super Anleitung)Timelord hat geschrieben: ↑09.04.2020, 20:51@jmaus
Auch von mir vielen Dank, obwohl ich schon vieles hinbekommen habe, ist CUxD für mich noch immer ein kleines Mysterium.
Läuft einwandfrei, trotzdem würde ich mich auch dem Wunsch anschließen, dass auf die Oberfläche der RaspberryMatic mit einzubauen. Wäre als Visualisierung unter dem Duty Cycle mega genial.
Also nicht zwangsweise für alle!
Frohe Ostern
und vielen Dank für die tolle Arbeit der Mitwirkenden am RaspiMatic
Jürgen