[GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

turrican944
Beiträge: 513
Registriert: 29.05.2019, 22:19
Wohnort: Bargfeld
Hat sich bedankt: 4 Mal
Danksagung erhalten: 49 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von turrican944 » 16.04.2020, 11:45

Moin
Irgendwie gibt es so ein Gerücht das System.exec manchmal ärger machen soll oder ist das nur bei der original CCU software so bzw. schon längst überholt ?
Gruß Florian

Xel66
Beiträge: 14162
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von Xel66 » 16.04.2020, 11:47

Letzteres, und das schon seit einiger Zeit. Aber Buschfunk hält sich. Wenn man so was liest, lohnt auch immer ein Blick auf das Erstelldatum dieser Aussage. Alte Aussagen sind meist nicht unbedingt belastbar.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von jmaus » 16.04.2020, 12:02

Xel66 hat geschrieben:
16.04.2020, 11:47
Letzteres, und das schon seit einiger Zeit. Aber Buschfunk hält sich. Wenn man so was liest, lohnt auch immer ein Blick auf das Erstelldatum dieser Aussage. Alte Aussagen sind meist nicht unbedingt belastbar.
In der Tat. So ist es. system.Exec() sollte bereits seit einiger Zeit (>1 Jahr) als stabil anzusehen sein. All die früheren Kinderkrankheiten sind raus und wenn man die Nutzung mit und ohne "&" am Ende beachtet blockiert man sich damit dann auch nicht unnötigerweise die Logikengine. Momentan sind mir auch keinerlei Probleme im Zusammenhang der system.Exec() funktion mehr bekannt wie das ganz am Anfang der CCU/ReGaHss noch der Fall war. Es gibt also IMHO nur noch ganz vereinzelte Fälle bei denen der einsatz von CUxD bzgl. CMD_EXEC/CMD_SETS überhaupt noch notwendig ist und das auch nicht weil system.Exec() da nicht stabil oder problematisch wäre, sondern weil dafür CUxD einfach besser geeignet ist oder mehr Sinn ergibt.

Und diese Aussagen treffen übrigens nicht nur auf RaspberryMatic zu, sondern auch mit einer aktuellen CCU3 oder CCU2 Firmware kann man getrost system.Exec() einsetzen ohne Gefahr zu laufen in die altbekannten Probleme zu rennen!
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von mbhomie007 » 09.05.2020, 15:45

Hallo zusammen,

Wird nicht die CPU-Auslastung von 1 Minute , 5 Minuten und 15 Minuten angezeigt?

Wie kann man das Skript umschreiben, das die Ausgabe in % angezeigt wird?
Ist das nicht selbsterklärend? CPU_Load entspricht der Systemauslastung mit Komma getrennt nach Durchschnitt von 15min, 1 Std, usw. Eine „1.0“ entspricht hierbei 100%CPU. Und SYS_NTPOffset gibt Zeitabweichung in ms zwischen RaspberryMatic und dem momentan genutzten NTP Server an.

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);
}
Dateianhänge
Unbenannt1.png
Unbenannt.png
Unbenannt.png (3.76 KiB) 1426 mal betrachtet
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

Benutzeravatar
Baxxy
Beiträge: 10816
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2223 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von Baxxy » 09.05.2020, 16:26

mbhomie007 hat geschrieben:
09.05.2020, 15:45
Wie kann man das Skript umschreiben, das die Ausgabe in % angezeigt wird?
Hier gibt es einige Möglichkeiten...
z.B.

Code: Alles auswählen

!- CCU Auslastung
string load;
system.Exec("cat /proc/loadavg | cut -d' ' -f-3 | tr -d '\n'", &load);
if(load != "") {
    var eins = (load.Substr(0,4).ToFloat()*100).ToString(0)#" %";  !-  1 Minute
    var fuenf = (load.Substr(5,4).ToFloat()*100).ToString(0)#" %";  !-  5 Minuten
    var fuenfz = (load.Substr(10,4).ToFloat()*100).ToString(0)#" %"; !- 15 Minuten
     WriteLine("1Min Auslastung: \t" #eins);
     WriteLine("5Min Auslastung: \t" #fuenf);
     WriteLine("15Min Auslastung: \t" #fuenfz);
     WriteLine(eins # " | "# fuenf # " | "# fuenfz);
}
Grüße
Baxxy

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von mbhomie007 » 10.05.2020, 12:55

Hallo Baxxy,

vielen Dank für die schnelle Antwort.

Wie bekomme ich denn die Ausgabe so in eine Systemvariable geschrieben?

Grüße
Marco
Dateianhänge
Unbenannt.png
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

Benutzeravatar
Baxxy
Beiträge: 10816
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2223 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von Baxxy » 10.05.2020, 13:28

mbhomie007 hat geschrieben:
10.05.2020, 12:55
Wie bekomme ich denn die Ausgabe so in eine Systemvariable geschrieben?
Du legst dir eine SysVar Typ Text an und nennst sie beispielsweise CCU-Auslastung.
Dann fügst du folgende Codezeile in das Script (am Ende aber noch innerhalb der Klammer) ein.

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("CCU-Auslastung").State(eins # " | "# fuenf # " | "# fuenfz);
Die ganzen WriteLine-Einträge kannst du dann löschen.

Grüße
Baxxy

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von mbhomie007 » 11.05.2020, 14:30

Vielen Dank Baxxy! Hat geklappt :mrgreen:
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

disko
Beiträge: 3
Registriert: 23.01.2023, 20:41
System: CCU
Wohnort: Glashütte (Sachsen)

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von disko » 20.02.2023, 20:01

Hallo

Welches CuXD Gerät muss man den erzeugen um die CPU Last abfragen zu können?

andrzejgilas
Beiträge: 200
Registriert: 16.01.2021, 00:34
System: CCU
Hat sich bedankt: 63 Mal
Danksagung erhalten: 17 Mal

Re: [GELÖST] CPU-Last, CPU Temp und RAM Auslastung

Beitrag von andrzejgilas » 03.03.2024, 20:22

Baxxy hat geschrieben:
09.05.2020, 16:26
mbhomie007 hat geschrieben:
09.05.2020, 15:45
Wie kann man das Skript umschreiben, das die Ausgabe in % angezeigt wird?
Hier gibt es einige Möglichkeiten...
z.B.

Code: Alles auswählen

!- CCU Auslastung
string load;
system.Exec("cat /proc/loadavg | cut -d' ' -f-3 | tr -d '\n'", &load);
if(load != "") {
    var eins = (load.Substr(0,4).ToFloat()*100).ToString(0)#" %";  !-  1 Minute
    var fuenf = (load.Substr(5,4).ToFloat()*100).ToString(0)#" %";  !-  5 Minuten
    var fuenfz = (load.Substr(10,4).ToFloat()*100).ToString(0)#" %"; !- 15 Minuten
     WriteLine("1Min Auslastung: \t" #eins);
     WriteLine("5Min Auslastung: \t" #fuenf);
     WriteLine("15Min Auslastung: \t" #fuenfz);
     WriteLine(eins # " | "# fuenf # " | "# fuenfz);
}
Grüße
Baxxy
Wie kann ich die CPU-Belastung der letzten 10 Sekunden anzeigen, wie bei CUxD:
11.png
Wie kann das Skript so geändert werden, dass das Ergebnis für 10s angezeigt wird?
Zuletzt geändert von andrzejgilas am 03.03.2024, 20:48, insgesamt 1-mal geändert.
CCU3 (rpi5) RaspberryMatic + 49 Gerate (HmIP-HAP, HmIP-HAP JS1, 3xHmIP-BWTH, 3xHmIP-PCBS, 2xHmIP-PCBS2, HmIP-SMO, 2xHmIP-SWDO-PL, 3xHmIP-PSM-CH, HmIP-FCI6, 4xHmIP-SRH, 3xHmIP-SWDO-I, HmIP-KRC4, HmIP-RC8, 7xHmIP-FBL, HmIP-FDT, HmIP-FSI16, 5xHmIP-FSM, 2xHmIP-STHO, HmIP-WRC6, 2xHmIP-SWDM, HmIP-FSM16, HmIP-WTH-1, 2xHMIP-WRC2) , CCU-Historian, Mediola App, VPN - Synology RT2600ac

Antworten

Zurück zu „RaspberryMatic“