diff --git a/src/argononed.py b/src/argononed.py index 4202152..16acbb4 100644 --- a/src/argononed.py +++ b/src/argononed.py @@ -178,6 +178,9 @@ def temp_check(): prevspeed=0 while True: val = argonsysinfo_gettemp() + hddval = argonsysinfo_gethddtemp() + if hddval > val: + val = hddval newspeed = get_fanspeed(val, fanconfig) if newspeed < prevspeed: # Pause 30s if reduce to prevent fluctuations diff --git a/src/argonsysinfo.py b/src/argonsysinfo.py index 0e7e653..cf0356b 100644 --- a/src/argonsysinfo.py +++ b/src/argonsysinfo.py @@ -7,6 +7,7 @@ import os import time import socket +import subprocess def argonsysinfo_listcpuusage(sleepsec = 1): outputlist = [] @@ -152,6 +153,20 @@ def argonsysinfo_getip(): st.close() return ipaddr +def argonsysinfo_gethddtemp(): + hddtemp = 0 + storedhddtemp = 0 + try: + for disk in os.listdir("/dev/disk/by-id"): + if disk.startswith("ata"): + f = "sata:" + os.path.join("/dev/disk/by-id", disk) + process = subprocess.Popen(["/usr/sbin/hddtemp", "-n", f], shell=False, stdout=subprocess.PIPE) + hddtemp = int(process.communicate()[0]) + if hddtemp > storedhddtemp: + storedhddtemp = hddtemp + return float(storedhddtemp) + except: + return 0 def argonsysinfo_getrootdev(): tmp = os.popen('mount').read() @@ -325,4 +340,4 @@ def argonsysinfo_getraiddetail(devname): failed = infolist[1] elif infolist[0].lower() == "spare devices": spare = infolist[1] - return {"state": state, "raidtype": raidtype, "size": int(size), "used": int(used), "devices": int(total), "active": int(active), "working": int(working), "failed": int(failed), "spare": int(spare)} \ No newline at end of file + return {"state": state, "raidtype": raidtype, "size": int(size), "used": int(used), "devices": int(total), "active": int(active), "working": int(working), "failed": int(failed), "spare": int(spare)} diff --git a/tutorials/install-dependencies.sh b/tutorials/install-dependencies.sh index 4688140..196c833 100755 --- a/tutorials/install-dependencies.sh +++ b/tutorials/install-dependencies.sh @@ -10,7 +10,7 @@ argon_check_pkg() { fi } -pkglist=(raspi-gpio python-rpi.gpio python3-rpi.gpio python-smbus python3-smbus i2c-tools) +pkglist=(raspi-gpio python-rpi.gpio python3-rpi.gpio python-smbus python3-smbus i2c-tools hddtemp) for curpkg in ${pkglist[@]}; do sudo apt-get install -y $curpkg RESULT=$(argon_check_pkg "$curpkg")