Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

RaspBerry Pi Status mit CPU Last

Begonnen von AbeamStart, 28 August 2013, 11:29:21

Vorheriges Thema - Nächstes Thema

AbeamStart

Hallo Zusammen,
kann man mit dem Modul "99_RpiUtils.pm" auch die CPU Last anzeigen lassen bzw loggen?
Hier mal meine Config aus der "fhem.cfg"

#####################################################################
##RaspBerry Pi Status Anfang
#####################################################################
define RpiValues weblink htmlCode {ShowRpiValues()}
attr RpiValues room RaspBerry
#Temp loggen
define RpiTemp dummy
attr RpiTemp comment RaspberryPi Device Sensor
attr RpiTemp room RaspBerry
define FileLog_RpiTemp FileLog ./log/rpi_temp-%Y-%m.log RpiTemp
attr FileLog_RpiTemp logtype fht:Temp,text
attr FileLog_RpiTemp room RaspBerry
define at_RpiTemp at +*00:01 { fhem("set RpiTemp ".RpiTemp(" ")) }
attr at_RpiTemp room RaspBerry
define weblink_RpiTemp weblink fileplot FileLog_RpiTemp:temp4:CURRENT
attr weblink_RpiTemp label "RaspberryPi Temperatur: Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_RpiTemp room RaspBerry
#RAM loggen:
define RpiRam dummy
attr RpiRam comment RaspberryPi Device Sensor
attr RpiRam event-on-update-reading 1
attr RpiRam room RaspBerry
define FileLog_RpiRam FileLog ./log/rpi_ram-%Y-%m.log RpiRam
attr FileLog_RpiRam logtype text
attr FileLog_RpiRam room RaspBerry
define at_RpiRam at +*00:01 { fhem("set RpiRam ".RpiRamSwap("R")) }
attr at_RpiRam room RaspBerry
#SWAP loggen:
define RpiSwap dummy
attr RpiSwap comment RaspberryPi Device Sensor
attr RpiSwap event-on-update-reading 1
attr RpiSwap room RaspBerry
define FileLog_RpiSwap FileLog ./log/rpi_swap-%Y-%m.log RpiSwap
attr FileLog_RpiSwap logtype text
attr FileLog_RpiSwap room RaspBerry
define at_RpiSwap at +*00:01 { fhem("set RpiSwap ".RpiRamSwap("S")) }
attr at_RpiSwap room RaspBerry
#Filesystemspeicher loggen:
define RpiFS dummy
attr RpiFS comment RaspberryPi Device Sensor
attr RpiFS event-on-update-reading 1
attr RpiFS room RaspBerry
define FileLog_RpiFS FileLog ./log/rpi_fs-%Y-%m.log RpiFS
attr FileLog_RpiFS logtype text
attr FileLog_RpiFS room RaspBerry
define at_RpiFS at +*00:01 { fhem("set RpiFS ".RpiFileSystem(" ")) }
attr at_RpiFS room RaspBerry
#Netzwerktraffik loggen:
define RpiNetwork dummy
attr RpiNetwork comment RaspberryPi Device Sensor
attr RpiNetwork room RaspBerry
define FileLog_RpiNetwork FileLog ./log/rpi_lan-%Y-%m.log RpiNetwork
attr FileLog_RpiNetwork logtype text
attr FileLog_RpiNetwork room RaspBerry
define at_RpiNetwork at +*00:01 { fhem("set RpiNetwork ".RpiNetwork(" ")) }
attr at_RpiNetwork room RaspBerry

#####################################################################
##RaspBerry Pi Status Ende
#####################################################################
FHEM auf Debian (VM)

PeMue

Hallo,

nimm für die CPU Last lieber das SYSSTAT Modul, das ist besserer Perl Code als der in 99_RpiUtils.pm :-)

Ansonsten mit
{RPiLoad <parameter>}, <parameter> = 1, 5, 15 [min.], "all" or "log"also
define at_RpiLoad at +*00:01 { fhem("set RpiLoad ".RPiLoad("log")) }wobei der Perl Code noch einen Bug hat (Fehlermeldung auf der Konsole bei der Prüfung der Parameter).

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

AbeamStart

Danke für den Hinweis!
Wo muss denn:

{RPiLoad <parameter>}, <parameter> = 1, 5, 15 [min.], "all" or "log"

hin? In die 99 RPI Utils???
FHEM auf Debian (VM)

PeMue

... im Wiki gibt es doch eine Anleitung dazu.
Sinngemäß würde das dann so
define <name> dummy
attr <name> room <name_room>
define <name_log> FileLog ./log/<filename>-%Y-%m.log <name>
attr <name_log> room <name_room>

define <name_at> at +*00:01 { fhem("set <name> ".RPiLoad("log")) }
aussehen. <name> ist ein selbst zu wählender Name. Ich sehe aber gerade, dass im Wiki noch ein Fehler mit kleinschreibung ist.
Und das Modul gibt auch noch Fehlermeldung bei RPiLoad aus, da die Typumwandlung noch nicht korrekt ist. Muss ich noch korrigieren ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

AbeamStart

Hallo,
habe ich so gemacht:
#####################################################################
##RaspBerry Pi Status Anfang
#####################################################################
define RpiValues weblink htmlCode {ShowRpiValues()}
attr RpiValues room System
#Temp loggen
define RpiTemp dummy
attr RpiTemp comment RaspberryPi Device Sensor
attr RpiTemp room System
define FileLog_RpiTemp FileLog ./log/rpi_temp-%Y-%m.log RpiTemp
attr FileLog_RpiTemp logtype fht:Temp,text
attr FileLog_RpiTemp room System
define at_RpiTemp at +*00:01 { fhem("set RpiTemp ".RpiTemp(" ")) }
attr at_RpiTemp room System
define weblink_RpiTemp weblink fileplot FileLog_RpiTemp:temp4:CURRENT
attr weblink_RpiTemp label "RaspberryPi Temperatur: Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_RpiTemp room System
#RAM loggen:
define RpiRam dummy
attr RpiRam comment RaspberryPi Device Sensor
attr RpiRam event-on-update-reading 1
attr RpiRam room System
define FileLog_RpiRam FileLog ./log/rpi_ram-%Y-%m.log RpiRam
attr FileLog_RpiRam logtype text
attr FileLog_RpiRam room System
define at_RpiRam at +*00:01 { fhem("set RpiRam ".RpiRamSwap("R")) }
attr at_RpiRam room System
#SWAP loggen:
define RpiSwap dummy
attr RpiSwap comment RaspberryPi Device Sensor
attr RpiSwap event-on-update-reading 1
attr RpiSwap room System
define FileLog_RpiSwap FileLog ./log/rpi_swap-%Y-%m.log RpiSwap
attr FileLog_RpiSwap logtype text
attr FileLog_RpiSwap room System
define at_RpiSwap at +*00:01 { fhem("set RpiSwap ".RpiRamSwap("S")) }
attr at_RpiSwap room System
#Filesystemspeicher loggen:
define RpiFS dummy
attr RpiFS comment RaspberryPi Device Sensor
attr RpiFS event-on-update-reading 1
attr RpiFS room System
define FileLog_RpiFS FileLog ./log/rpi_fs-%Y-%m.log RpiFS
attr FileLog_RpiFS logtype text
attr FileLog_RpiFS room System
define at_RpiFS at +*00:01 { fhem("set RpiFS ".RpiFileSystem(" ")) }
attr at_RpiFS room System
#Netzwerktraffik loggen:
define RpiNetwork dummy
attr RpiNetwork comment RaspberryPi Device Sensor
attr RpiNetwork room System
define FileLog_RpiNetwork FileLog ./log/rpi_lan-%Y-%m.log RpiNetwork
attr FileLog_RpiNetwork logtype text
attr FileLog_RpiNetwork room System
define at_RpiNetwork at +*00:01 { fhem("set RpiNetwork ".RpiNetwork(" ")) }
attr at_RpiNetwork room System
#Last loggen:
define RpiCPU dummy
attr RpiCPU comment RaspberryPi Device Sensor
attr RpiCPU room System
define FileLog_RpiCPU FileLog ./log/rpi_cpu-%Y-%m.log RpiCPU
attr FileLog_RpiCPU logtype text
attr FileLog_RpiCPU room System
define at_RpiCPU at +*00:01 { fhem("set RpiLoad ".RPiLoad(" ")) }
attr at_RpiCPU room System
#####################################################################
##RaspBerry Pi Status Ende
#####################################################################

Und ich nutze die 99_RPiutils.pm von http://forum.fhem.de/index.php?t=msg&th=11996&prevloaded=1&rid=0&start=0&SQ=&
30.05 19:45
Es werden aber nur ??? bei CPU Last angezeigt.
Danke für die Hilfe!
FHEM auf Debian (VM)

mele

Hi,

hatte gleiches Problem.

Überall wo Rpi steht, muss RPi hin.

VG
Mele
FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

PeMue

Hallo,

Wiki ist angepasst. RPILoad pflege ich ein, wenn der Fehler auf der Konsole weg ist ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

AbeamStart

Super Danke!
Ich habe mal Testweise die

#------------------------------------------------------------------------------
# RPiLoad:
# gets the load of the Raspberry Pi for the last 1, 5 or 15 minutes
#
# call in fhem:
# {RPiLoad <parameter>}, <parameter> = 1, 5, 15 [min.], "all" or "log"
#
# programming:
# Peter Mühlbeyer
#
# bugs/improvements:
#  - none
#------------------------------------------------------------------------------
sub RPiLoad ($)
{
  my ($param) = shift;
  # get the complete string: 14:41:37 up 9 days, 19:15,  1 user,  load average: 0,02, 0,11, 0,13
  my $load = qx(uptime);
  # remove first part of the string
  $load = substr($load, index($load, "load average: ") + 14);
  # split last parts into three pieces
  my @splitload = split(/ /, $load);
  chop(@splitload);          # remove last character of each value

  if ($param == 1) {return trim($splitload[0]);}
  elsif ($param == 5) {return trim($splitload[1]);}
  elsif ($param == 15) {return trim($splitload[2]);}
  elsif ($param eq "all") {return " ".$splitload[0]." ".$splitload[1]." ".$splitload[2];}
  elsif ($param eq "log") {return "l1 ".$splitload[0]." l5 ".$splitload[1]." l15 ".$splitload[2];}
  else {return "Fehler"};
}
#-----RPiLoad------------------------------------------------------------------

in die .pm eingebunden um mal zu sehen wie die Last so ist. Ist aber nicht ganz so interessant...
Aber natürlich schön wenn es fehlerfrei kommt!

Danke für Deine Bemühungen!!!
FHEM auf Debian (VM)