I had the same issue and it was driving me crazy… After searching online and in here, I was able to resolve it. To edit config.txt, I shut down my pi and pulled the SD card and opened it up on my PC. From there I was able to open config.txt and at the bottom of the file I simply added
## poe_fan_temp
## temp0 is lower speed fan, temp1 is high fan speed.
## Current setting is fan turns on at 70C, turns off when it comes back down to 65C.
## If the temperature reaches 75C it will go full blast until it drops back down to 70C.
dtparam=poe_fan_temp0=70000,poe_fan_temp0_hyst=5000
dtparam=poe_fan_temp1=75000,poe_fan_temp1_hyst=5000
The fan hasn’t kicked on since I powered the unit back up about an hour ago… but I’ll probably play around with these settings slightly after monitoring the temp for a while.
After running for close to 48 hours and not having the fan kick on… I decided to drop my setpoints down a bit. My high temp was 67.4C and overnight it hovered around 56C so I went with
## poe_fan_temp
## temp0 is lower speed fan, temp1 is high fan speed.
## Current setting is fan turns on at 63C, turns off when it comes back down to 60C.
## If the temperature reaches 66C it will go full blast until it drops back down to 63C.
dtparam=poe_fan_temp0=63000,poe_fan_temp0_hyst=3000
dtparam=poe_fan_temp1=66000,poe_fan_temp1_hyst=3000
After a fair amount of trial and error, the only thing that worked was having three poe_fan_temp’s. Unfortunately I can’t remember my exact temps but these should help:
Actually 4 lines of code are needed and basically what you input is the curve of how the fan reacts to temperature in a proportional way. More info can be found here: RaspBerry Pi GitHub
And here: HASS OS GitHub
Please check that the following line of code is present in config.txt.
My fan is now constantly on but at low speed and will speed up when needed (CPU load up -> temp up -> fan RPM up). A constantly switching fan is not preferred over one that is constantly on (at low speed).
This doesn’t work for me. i am using the latest HA version and a branc new PoE hat but the fan never spins, only briefly at boot time. Any idea how to solve this?
I edited my earlier post (Link) and suggest to check if dtoverlay=rpi-poe Is present in config.txt
The piece of code below can be found in the latest rPi documentation. I hope this points you in the right direction.
Name: rpi-poe
Info: Raspberry Pi PoE HAT fan
Load: dtoverlay=rpi-poe,<param>[=<val>]
Params: poe_fan_temp0 Temperature (in millicelcius) at which the fan
turns on (default 40000)
poe_fan_temp0_hyst Temperature delta (in millicelcius) at which
the fan turns off (default 2000)
poe_fan_temp1 Temperature (in millicelcius) at which the fan
speeds up (default 45000)
poe_fan_temp1_hyst Temperature delta (in millicelcius) at which
the fan slows down (default 2000)
poe_fan_temp2 Temperature (in millicelcius) at which the fan
speeds up (default 50000)
poe_fan_temp2_hyst Temperature delta (in millicelcius) at which
the fan slows down (default 2000)
poe_fan_temp3 Temperature (in millicelcius) at which the fan
speeds up (default 55000)
poe_fan_temp3_hyst Temperature delta (in millicelcius) at which
the fan slows down (default 5000)
This is what I had before but it doesn’t work. Cannot believe so simple functionality needs that much tweaking and it is not added by default in HA raspberry edition.
So using “dtoverlay=rpi-poe-plus” instead of “dtoverlay=rpi-poe” worked for me.
So I simply powered off my HASSIO, move my SSD to the computer, and at the end of the config.exe (Using Notepad++) added the 6 lines. The # is just a commenting line, but I kept it there.
# PoE+ FAN TEMPERATURE CONTROL
dtoverlay=rpi-poe-plus
dtparam=poe_fan_temp0=45000,dtparam=poe_fan_temp0_hyst=3000
dtparam=poe_fan_temp1=50000,dtparam=poe_fan_temp1_hyst=3000
dtparam=poe_fan_temp2=62000,dtparam=poe_fan_temp2_hyst=4000
dtparam=poe_fan_temp3=70000,dtparam=poe_fan_temp3_hyst=5000