- die Temperatur
- die Laufzeit
- die aktuelle RAM – Auslastung
- die CPU – Nutzung
Vorbereitung
Für die Anzeige müssen insgesamt 4 Systemvariablen angelegt werden.
Zusätzlich wird hier wieder ein Kanal eines CuX Exec (28) Gerät benötigt.
Name: | Typ: |
---|---|
CPU-Auslastung | Zeichenkette |
Laufzeit | Zeichenkette |
RAM-Nutzung | Zeichenkette |
Temperatur Raspberry | Zeichenkette |
Es lassen sich hier natürlich auch nur einzelne Variablen definieren, welche man in der Übersicht sehen möchte. Hierbei ist zu beachten, das bei einzelnen Anzeigen immer das CuX – Gerät eingefügt wird (markiert in Zeile 2). Verwendet man also 1 Skript, so ist einmalig in Zeile 2 das CuX – Gerät einzufügen.
Am Ende gibt es das komplette Skript.
Skript CPU-Auslastung
! CPU-Nutzung string s_cuxd = "CUxD.CUX2801001:3."; string s_cmd = "top -b -n 1 | egrep 'CPU' | awk 'NR==1 {printf \"%d%s\", $2, \"%\"}'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("CPU-Auslastung").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
Skript Laufzeit
! Laufzeit string s_cuxd = "CUxD.CUX2801001:3."; string s_cmd = "cat /proc/uptime | awk '// { printf \"%d Tag(e) - %02d:%02d Stunden\", $1/86400, $1/3600%24, $1/60%60 }'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("Laufzeit").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
Skript RAM – Nutzung
! Ram-Nutzung string s_cmd = "free -m | awk 'FNR == 2 { printf \"%d MiB/%d MiB (%d%)\", ($3-$7)*-1, $2, ($3-$7)/$2*100*-1}'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("RAM-Nutzung").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
Skript Temperatur Raspberry
! Temperatur string s_cuxd = "CUxD.CUX2801001:3."; string s_cmd = "/usr/bin/vcgencmd measure_temp | awk '// { printf substr($1, length($1) -5, 4)}'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("Temperatur Raspberry").State (dom.GetObject (s_cuxd # "CMD_RETS").State().ToString(2)#" °C");
Komplettes Skript mit allen Daten
! Servicedaten der HomeMatic sammeln ######################################## ! Temperatur string s_cuxd = "CUxD.CUX2801001:3."; string s_cmd = "/usr/bin/vcgencmd measure_temp | awk '// { printf substr($1, length($1) -5, 4)}'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("Temperatur Raspberry").State (dom.GetObject (s_cuxd # "CMD_RETS").State().ToString(2)#" °C"); ! Laufzeit string s_cmd = "cat /proc/uptime | awk '// { printf \"%d Tag(e) - %02d:%02d Stunden\", $1/86400, $1/3600%24, $1/60%60 }'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("Laufzeit").State (dom.GetObject (s_cuxd # "CMD_RETS").State()); ! Ram-Nutzung string s_cmd = "free -m | awk 'FNR == 2 { printf \"%d MiB/%d MiB (%d%)\", ($3-$7)*-1, $2, ($3-$7)/$2*100*-1}'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("RAM-Nutzung").State (dom.GetObject (s_cuxd # "CMD_RETS").State()); ! CPU-Nutzung string s_cmd = "top -b -n 1 | egrep 'CPU' | awk 'NR==1 {printf \"%d%s\", $2, \"%\"}'"; dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd); dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1); dom.GetObject ("CPU-Auslastung").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
Ich lasse diese Skript bei mir alle 10 Minuten ausführen.
Um Variablen auf der Startseite der HomeMatic anzeigen zu lassen, sind folgende Schritte notwendig.
Wie hat Dir der Beitrag gefallen?
Bewertung: 0/5 - abgegebene Bewertungen: 0