TBH, I was hoping to turn the fan completely off until the HDD’s reached 45C and the CPU reached 50C looking at the documentation the RPi4 should cope with 80C no higher without frying itself, so 50C, while not ideal, is an acceptable level.
Is the Argon EON designed by default to have the fan permanently on by any chance, given setting it to 0 doesn’t actually set it to 0 (i.e. Off) but sets it to 25%? Because if that’s the situation, then I’m wasting my time trying to stop the thing from sounding like a 747 getting ready to take off at Heathrow.
Okay… modify your config file. Eliminate all settings except the ones you want. As explained before setting a fan speed to zero sets the speed to 25. It’s right there in the code.
The way to set a fan speed to zero for a specific temp is to not have a setting.
So by having your first setting in the file
45=10
This will keep the fan off until the max temp of any drive is 45. When that happens it will run the fan at 10%
OK, for anyone stumbling across this thread. Using the default argon-config won’t work if you’re looking to switch the fan off until it reaches the desired level. There is no way to set the threshold level of (in my case) 45C for the fan to start, the argon-config demands an input for the 30C entry before it will move to the 35C entry which in turn demands an input. Setting 30C, 35C and 40C to 0 (Zero) is pointless as that will default to 25% fan speed which is not “Off”.
You need to edit argononed.conf and argononed-hdd.conf respectively with your favourite text editor Nano or in my case Vim
sudo vim /etc/argononed.conf [This is for the CPU settings]
sudo vim /etc/argononed-hdd.conf [This is for the hard drive settings]
Just delete the fan speed settings (Not the temperatures) for 30C, 35C and 40C on the HDD’s (obviously the same applies to CPU) don’t forget to set fan speeds for 45C and above.
Hi everyone, new to the EON, been using OMV for quite some time.
Found the HDD temp script is messing with hdd spindown (hdparm), spinning them up regularly (once a minute maybe).
Uninstalled OLED script and hdparm spindown works just fine (verified on OMV5 and OMV6).
Is there any way the EON fan can be controlled by only checking the RPi temp and not have the hdd temp checked?
Thanks @NHHiker, I´m not much of a programmer really , could you please point me in the right direction? Name of the script that needs to be edited?
Thanks again
I’m going to try this out and see if it works for me, though I’m a little concerned that I’m not going to be checking HDD temp any more. Would there be a way to only check the temp if the HDDs are spinning?
Well, you would have to query the drive to see if it is currently spinning. With a number of drives… that would start the drive spinning. While some drives are easy to check and prevent the spin, others are not so easy… so yeah, for some drives you could.
Personally if you want the drives to spin up on use, don’t monitor temps…
Haha, I was hoping that wouldn’t be the case, but it makes sense. I’ll have to think about what my long term solution is, but for the most part the HDDs are minimally used unless we’re actively interacting with it. Because of that, repeatedly spinning them up with a temp query feels like a bad idea. All things considered, not monitoring the drive temp isn’t the worst solution, for now at least.
You can have both. Temp checks and spin down. But you have to consider that the interval of the temp checks has to be longer as the spindown timeout. I patched the “argonsysinfo.py” script to do so (quick and dirty).
--- argonsysinfo.py.orig 2022-05-25 16:33:24.000000000 +0200
+++ argonsysinfo.py 2022-08-26 15:42:29.817984727 +0200
@@ -8,6 +8,9 @@
import time
import socket
+outputobj = {}
+lasthddtemp = 0
+
def argonsysinfo_listcpuusage(sleepsec = 1):
outputlist = []
curusage_a = argonsysinfo_getcpuusagesnapshot()
@@ -151,22 +154,29 @@
return maxtempval
def argonsysinfo_gethddtemp():
+ global outputobj
+ global lasthddtemp
# May 2022: Used smartctl, hddtemp is not available on some platforms
+ now = int(time.time())
+ if (lasthddtemp + 300) > now:
+ return outputobj
+ lasthddtemp = now
+
hddtempcmd = "/usr/sbin/smartctl"
if os.path.exists(hddtempcmd) == False:
# Fallback for now
hddtempcmd = "/usr/sbin/hddtemp"
- outputobj = {}
if os.path.exists(hddtempcmd):
try:
tmp = os.popen("lsblk | grep -e '0 disk' | awk '{print $1}'").read()
alllines = tmp.split("\n")
for curdev in alllines:
if curdev[0:2] == "sd" or curdev[0:2] == "hd":
- tempval = argonsysinfo_getdevhddtemp(hddtempcmd,curdev)
- if tempval > 0:
- outputobj[curdev] = tempval
+ outputobj[curdev] = argonsysinfo_getdevhddtemp(hddtempcmd,curdev)
+# tempval = argonsysinfo_getdevhddtemp(hddtempcmd,curdev)
+# if tempval > 0:
+# outputobj[curdev] = tempval
return outputobj
except:
return outputobj
@@ -177,7 +187,8 @@
if hddtempcmd == "/usr/sbin/hddtemp":
cmdstr = "/usr/sbin/hddtemp -n sata:/dev/"+curdev
elif hddtempcmd == "/usr/sbin/smartctl":
- cmdstr = "/usr/sbin/smartctl -d sat -A /dev/"+curdev+" | grep Temperature_Celsius | awk '{print $10}'"
+# cmdstr = "/usr/sbin/smartctl -n standby,0 -A /dev/"+curdev+" | grep Temperature_Celsius | awk '{print $10}'"
+ cmdstr = "/usr/sbin/smartctl -n standby,0 -A /dev/"+curdev+" | egrep 'Temperature.*Cels' | sed -E 's/^.*\s+([0-9]+)\s+[C\(][eM0-9].*$/\\1/'"
tempval = 0
if len(cmdstr) > 0:
In the line “if (lasthddtemp + 300) > now:” the 300 are the seconds for the real temp check interval. This must be longer as your actual hdd spindown timeout.
The change to the smartctl call prevents checks if the HDD already is in standby. And the change to the “grep” afterwards makes it possible to check NVMe devices as well.
I do not see this working, I’ve tested the modified smartctl command on my EON, and can see the results from the NVME, however when I use this on an non-nvme device I don’t get those results… just an error:
smartctl -n standby,0, -A /dev/sdd
smartctl 7.2 2020-12-30 r5155 [aarch64-linux-5.15.76-v8+] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
/dev/sdd: Unknown USB bridge [0x1741:0x1156 (0x100)]
Please specify device type with the -d option.
Use smartctl -h to get a usage summary
If I specify the type (-d sat) the non-NVME devices work, but the NVME does not…