Ich bin auch kürzlich von RPI3 auf RPI5 umgestiegen
Ich verwende dieses Skript, um die CPU-Temperatur auszulesen:
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);
}
PS. und hier ist das Ganze, falls es jemand braucht:
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/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 Days %d h %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);
}
system.Exec("cat /proc/loadavg | cut -d' ' -f-3 | tr -d '\n'", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("CPU Load 1-5-15").State(temp);
}
system.Exec("uptime -s", &temp);
if(temp != "") {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("LAST BOOT").State(temp);
}
dom.GetObject("LAST DATA UPDATE").State(system.Date("%H:%M:%S"));
}
und noch eine Anmerkung: auf rpi5 funktioniert alles 10 mal schneller, das Lesen und Schreiben der SD-Karte geht auch auf rpi5 schneller – ich kann es jedem empfehlen, keine Probleme nach dem Umstieg auf rpi5