Temperatur auslesen und protokollieren

Status
Für weitere Antworten geschlossen.

Lurzo

Benutzer
Mitglied seit
13. Dez 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo Zusammen

Ich habe mich grad im Forum eingeschrieben und bin seit ungefähr einem Jahr Besitzer einer DS116. Diese verwende ich hauptsächlich als zentrale Datenablage für meinen Haushalt.

Der Lüfter ist im "Quiet Mode" eingestellt und läuft somit kontinuierlich. Die Temperaturen liegen bei 40°C für die CPU (System Temperature Status) und bei 31°C für den Harddisk. Da ich von das Geräusch des Lüfters ziemlich gestört bin, wollte die Einstellung auf "Low Power Mode" einstellen, damit der Lüfter ausgeschaltet wird, wenn das System kühl genug ist. Ich möchte aber vermeiden, dass sich der Lüfter jede 10 Minuten ein- und ausschaltet, weil die Temperatur ständig schwanken wird (Aufgrund der Ein- und Ausschaltung).

Um dieses Problem zu untersuchen, möchte ich die Temperatur während einigen Tagen aufzeichnen, um den Einfluss von den zwei verschiedenen Modi betrachten zu können. Meine Idee war, ein Skript zu erstellen, welches die Temperatur von CPU und HD liest und in einer Textdatei aufschriebt. Das Skript wird dann als Cronjob definiert und z.B. jede 5 Minuten ausgeführt.

Als ersten Test habe ich eine SSH Verbidung mit dem NAS erstellt und versucht die Temperatur auszulesen (Ausgabe in Textdatei und Cronjob anlegen sind eh keine schwierige sache). Leider war ich nicht in der Lage, die korrekte und gewünschte Temperatur auszulesen. Im Folgenden findet hier alle meine erfolglose Versuche:

- cat /sys/class/thermal/thermal_zone0/temp
Gibt den Wert 47028 (47°C) zurück, welcher nicht meine Temperatur entspricht (siehe oben)

- cat /sys/class/hwmon/hwmon0/temp1_input
Gibt denselben Wert zurück (47028)

- cat /sys/class/hwmon/hwmon0/device/temp1_input
Verzeichniss "device" existiert nicht

- cat /config/syno/syno_cpu_temp1
Verzeichniss "syno" existiert nicht

- cat /sys/bus/platform/devices/axp-temp.0/temp1_input
"axp.temp.0" existiert nicht

- cat /sys/bus/platform/devices/coretemp.0/temp1_input
"coretemp.0" existiert nicht

- cat /sys/devices/platform/coretemp.0/temp*_input
"coretemp.0" existiert nicht

Weitere Befehle konnte ich leider im Internet nicht finden. Anscheinend ist das System nicht für alle NAS Modelle gleich aufgebaut und die von mir gewünschte Information steckt sich irgendwo anders.

Hat jemand von Euch eine Idee, wie ich zur Temperaturwert von CPU und HD kommen kann? Was entspricht dieser Wert, der ich im Verzeichnis "thermal" bzw. "hwmon" lesen kann? Wieso stimmt nicht mit der von DSM angezeigte Temperatur?


Als Variante habe ich mich überlegt, den SNMP Protokoll freischalten und die Temperatur mit einem Raspberry Pi zu überwachen. Leider ist diese Lösung mehr aufwändig und löhnt sich für eine Überwachung von einigen Tagen nicht wirklich.

Habt ihr eine alternative Lösung?


Im Voraus bedanke ich mich bei Euch und hoffe in einer hilfreichen Antwort.

Grüsse
Lorenzo
 

Kurt-oe1kyw

Benutzer
Sehr erfahren
Mitglied seit
10. Mai 2015
Beiträge
9.139
Punkte für Reaktionen
1.777
Punkte
314
Also hier im Forum hat sich jemand genau darüber Gedanken gemacht, ich würde das "vorerst" als Alternativlösung nehmen:
User BigRonin und sein AvrLogger <kllck>

Willkommen im Forum und viel Spaß mit dem AvrLogger.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Das Tool "AvrLogger" kann ich auch nur wärmstens empfehlen. Dort kannst du die Temperatur der CPU und HDD über einen längeren Zeitraum rückwirkend dir anschauen.

Zum Problem selber:
Wenn der Lüfter stoppt, ist meistens nicht die CPU das Problem (je nach Last), sondern die HDD. Die läuft über die 40° hinaus und der Lüfter springt ca. 3 bis 4x pro Stunde für 3-5 Minuten an.

Entweder du ersetzt die HDD mit einer SSD oder du versuchst das Gehäuse offen zu betreiben. Eventuell kann dann die Wärme der HDD besser abgeführt werden.
 

Lurzo

Benutzer
Mitglied seit
13. Dez 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo Kurt-oe1kyw und peterhoffmann

Besten Dank für eure Antwort!
Das Tool "AvrLogger" hatte ich mal schon gefunden. Es war mir leider nicht so klar, wie ich es einsetzen könnte und hatte es dann verlassen. Ich werde es besser betrachten, wenn ihr mir beide sagt, dass es so gut ist ;)

Ausserdem bin gespannt, was dieses Tool für eine CPU Temperatur anzeigen würde: die im DSM als System Temperature bezeichnet oder die, die sicht im Folder "thermal_zone0" befindet.

In der Zwischenzeit bin ein Schritt weitergegangen und laut https://www.synology-forum.de/showthread.html?95548-HDD-Temperatur-auslesen-schlägt-fehl-smartctl konnte ich mit dem folgenden Befehl die S.M.A.R.T. Werte der HDD anzeigen lassen und somit auch die Temperatur:

Rich (BBCode):
# Muss mit root rechte ausgeführt werden
smartctl -d ata -a /dev/sda

Ausserdem wird es in demselben Beitrag erklärt, dass es mit "Observium" relativ einfach sein sollte, ein SNMP einzurichten und somit die Werte aus der DS auzulesen.

Zum Problem selber:
Wenn der Lüfter stoppt, ist meistens nicht die CPU das Problem (je nach Last), sondern die HDD. Die läuft über die 40° hinaus und der Lüfter springt ca. 3 bis 4x pro Stunde für 3-5 Minuten an
Das ist genau, was ich behauptete und vermeiden will. Ich überlege mich eigentlich, ob ich nicht besser die HDD Hibernation wieder einschalten sollten, auch wenn diese nicht ganz sauber funktioniert. So würde ich das Problem bei nicht Verwendung der DS definitiv lösen. Zusätzlich könnte ich dann der Lüfter mit einer leiseren Variante ersetzen.

Werde mal in der nächsten Tagen die Temperatur aufzeichnen und dann eine Entscheidung treffen ;)


Besten Dank und Grüsse
Lorenzo
 

Lurzo

Benutzer
Mitglied seit
13. Dez 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Also, für meine kleine und kurze Anweundung hat die Variante mit dem Skript gut funktioniert. Ich konnte problemlos CPU und HDD Temperatur während zwei Tage aufzeichnen.

Hier noch das Skript, das ich verwendet habe.

Rich (BBCode):
#!/bin/bash

# Read Harddisk 1 Temperature
T_HD_1=$(smartctl -d ata -A /dev/hda | grep "194 Temperature" | cut -c 129-130)

# Read CPU Temperature
T_CPU1=$(cat /sys/class/thermal/thermal_zone0/temp)
T_CPU2=$(cat /sys/class/hwmon/hwmon0/temp1_input)
T_CPU3=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp)
T_CPU4=$(cat /sys/devices/virtual/hwmon/hwmon0/temp1_input)

# Get date and time
DateTime=$(date +%d-%m-%Y%t%H:%M:%S)

# Output file
Output="/volume1/Scripts/TemperaturesResult.txt"

echo $DateTime,$T_HD_1,$T_CPU1,$T_CPU2,$T_CPU3,$T_CPU4 >> "$Output"

Da die CPU Temperatur in vier verschiedenen Pfaden zur Verfügung stande, habe ich alle Varianten aufgezeichnet. Diese hatten innerhalb von +/- 1°C immer denselben Wert.

Die Resultate werde ich in einem anderen Beitrag darstellen, da hier nicht zum Thema passen.
EDIT:
https://www.synology-forum.de/showthread.html?105164-CPU-HDD-und-System-Temperature-Status-vs-L%C3%BCftermodi&p=849155#post849155

Gruss
Lorenzo
 
Zuletzt bearbeitet:

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
903
Punkte für Reaktionen
64
Punkte
54
... Die Resultate werde ich in einem anderen Beitrag darstellen, da hier nicht zum Thema passen...
Sehr gut. Aber warum hast Du keinen Link auf Deinen anderen Beitrag hier verlinked?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
13.999
Punkte für Reaktionen
264
Punkte
373
Hallo,
"..ich werde.." bedeutet Zukunft und zukünftige Links zu erstellen ist etwas schwierig.

Gruß Götz
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat