Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I'm always getting Error: SMCWriteKey() = e00002bc when running each of the commands posted by @Andrey84 on my 2020 i7 iMac.

However, I had a look on Github and found the following issue in the official repository of smcFanControl: https://github.com/hholtmann/smcFanControl/issues/89. The idea is to use the F0Md key and then set F0Tg (target speed) to the desired value. I also wanted 1000rpm just like @harrywood2 above, so ended up running the following commands inside the Terminal.app:
Code:
/Applications/smcFanControl.app/Contents/Resources/smc -k "F0Md" -w 01
/Applications/smcFanControl.app/Contents/Resources/smc -k "F0Tg" -w 00007a44

Tested with iStat Menus and the reported speed of the fan is indeed 1000rpm (+- a negligible value) on my 2020 i7 iMac. The difference between 1200rpm and 1000rpm is like night and day in terms of noise!
 
I'm always getting Error: SMCWriteKey() = e00002bc when running each of the commands posted by @Andrey84 on my 2020 i7 iMac.

However, I had a look on Github and found the following issue in the official repository of smcFanControl: https://github.com/hholtmann/smcFanControl/issues/89. The idea is to use the F0Md key and then set F0Tg (target speed) to the desired value. I also wanted 1000rpm just like @harrywood2 above, so ended up running the following commands inside the Terminal.app:
Code:
/Applications/smcFanControl.app/Contents/Resources/smc -k "F0Md" -w 01
/Applications/smcFanControl.app/Contents/Resources/smc -k "F0Tg" -w 00007a44

Tested with iStat Menus and the reported speed of the fan is indeed 1000rpm (+- a negligible value) on my 2020 i7 iMac. The difference between 1200rpm and 1000rpm is like night and day in terms of noise!
Thank you for posting.

Interestingly, the initial commands from the previous post also didn't work for me, so I had to create fresh ones myself as well. They still work on a 2017 iMac.

Yes, 1000 and 1200 is night and day, fully agree!
 
Thank you for posting.

Interestingly, the initial commands from the previous post also didn't work for me, so I had to create fresh ones myself as well. They still work on a 2017 iMac.

Yes, 1000 and 1200 is night and day, fully agree!
The issue I have is that Macs Fan Control doesn't like the 1000rpm override and immediately changes the minimum fan speed to 1200rpm. In one of your screenshots I've seen that the range was going from 1000 to 2700, but on my 2020 machine it still shows 1200 to 2700 even after running the above commands inside Terminal.app. I'm not quite sure what I'm missing.
 
The issue I have is that Macs Fan Control doesn't like the 1000rpm override and immediately changes the minimum fan speed to 1200rpm. In one of your screenshots I've seen that the range was going from 1000 to 2700, but on my 2020 machine it still shows 1200 to 2700 even after running the above commands inside Terminal.app. I'm not quite sure what I'm missing.
Are you still experiencing this issue? From your post above I understood that your commands work for you and you're all set.

You're possibly missing the "FS!" command, which makes this speed 'Forced'. You only set the minimum possible fan speed and target speed. For me without Forcing it didn't work. Also I'm not sure about the F0Md command you're using. It's not in the manual and really I don't know what it means. F0Mn is in the manual and it sets the minimum speed.
 
Are you still experiencing this issue? From your post above I understood that your commands work for you and you're all set.

You're possibly missing the "FS!" command, which makes this speed 'Forced'. You only set the minimum possible fan speed and target speed. For me without Forcing it didn't work. Also I'm not sure about the F0Md command you're using. It's not in the manual and really I don't know what it means. F0Mn is in the manual and it sets the minimum speed.
So I'm only able to change the speed to 1000rpm via the two commands I posted, however, I can't seem to increase the fan speed when the temps go up (which is what Macs Fan Control is supposed to do). I've also tried the FS! command (with a space after the exclamation mark), but I'm still getting the SMCWriteKey() = e00002bc error. I even set the minimum speed via F0Mn, but Macs Fan Control still changes the minimum to 1200rpm. The undocumented command which I found in that Github issue seems to be essential in changing the fan speed on my 2020 machine, which might suggest some differences between the 2017 version that you have and the latest iMac.
 
So I'm only able to change the speed to 1000rpm via the two commands I posted, however, I can't seem to increase the fan speed when the temps go up (which is what Macs Fan Control is supposed to do). I've also tried the FS! command (with a space after the exclamation mark), but I'm still getting the SMCWriteKey() = e00002bc error. I even set the minimum speed via F0Mn, but Macs Fan Control still changes the minimum to 1200rpm. The undocumented command which I found in that Github issue seems to be essential in changing the fan speed on my 2020 machine, which might suggest some differences between the 2017 version that you have and the latest iMac.
Yes, the culprit seems to be the Apple T2 Security chip, which was introduced in 2018.
Here is an alternative solution with "Cheat Engine". Hope this will work.
 
Thanks for the info guys, I too have a 2020 i7 iMac, I haven't tried these commands yet though - will look into it tomorrow. @costica1234 if you find a working solution for your 2020 machine please let me know! :)
 
Yes, the culprit seems to be the Apple T2 Security chip, which was introduced in 2018.
Here is an alternative solution with "Cheat Engine". Hope this will work.
That "Cheat Engine" felt quite suspicious to me, so I ended up writing my own script which automatically switches between "default mode" and "silent mode" according to some rules that I set up. I will explain how everything works in a bit.

First off, here is the Python script I wrote: https://github.com/costika1234/2020-iMac-fan-control/blob/master/main.py. I tested it using Python 3.8, but it should in theory work with Python 3.5+. Best to have Python 3.8 installed on your computer, though.

Now, while the code is pretty much self-explanatory, I am going to describe the gist nonetheless. Every two seconds the script grabs the current CPU temperature (as an average across all cores) and computes the average CPU temperature over the last minute. To account for both a spike in CPU activity and a rather constant but moderate use of CPU, I set up two thresholds: HIGH_TEMP_THRESHOLD (65 degrees Celsius) and LOW_TEMP_THRESHOLD (50 degrees Celsius), respectively.

For example, if the CPU is idling and the temperature is around 40ºC across all CPU cores, then one can safely run the fan in "silent mode" (1000rpm). However, if there is a quick burst in CPU activity and the temps jump up to 70-80 degrees instantly, then it makes sense to leave the "silent mode" and simply restore the default fan settings. To be on the safe side, the average computed over the last minute helps ensure that we go back to 1000rpm only if the temperatures have settled below 50ºC.

In addition, I also took into account the case when the CPU is slightly stressed with a temperature that's just below the higher threshold of 65ºC. In that scenario, it doesn't hurt to leave the "silent mode" and therefore run the fan according to the default settings. Line 57 of my script provides a nice quick summary of all previously discussed cases.

I tested this script extensively and have the confidence that it works without any issue (at least for the 2020 T2-enabled iMacs). I also created a plist file inside ~/Library/LaunchAgents so that the Python script runs automatically on every startup:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>iMac.fan.control</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>FULL_PATH_TO_PYTHON_INTERPRETER</string>
        <string>FULL_PATH_TO_SCRIPT</string>
    </array>
</dict>
</plist>
Make sure that the plist is called iMac.fan.control.plist and that the two constants written in all caps are replaced with appropriate values.
 
Last edited:
That "Cheat Engine" felt quite suspicious to me, so I ended up writing my own script which automatically switches between "default mode" and "silent mode" according to some rules that I set up. I will explain how everything works in a bit.

First off, here is the Python script I wrote: https://github.com/costika1234/macos_fan_control/blob/master/main.py. I tested it using Python 3.8, but it should in theory work with Python 3.5+. Best to have Python 3.8 installed on your computer, though.

Now, while the code is pretty much self-explanatory, I am going to describe the gist nonetheless. Every two seconds the script grabs the current CPU temperature (as an average across all cores) and computes the average CPU temperature over the last minute. To account for both a spike in CPU activity and a rather constant but moderate use of CPU, I set up two thresholds: HIGH_TEMP_THRESHOLD (65 degrees Celsius) and LOW_TEMP_THRESHOLD (50 degrees Celsius), respectively.

For example, if the CPU is idling and the temperature is around 40ºC across all CPU cores, then one can safely run the fan in "silent mode" (1000rpm). However, if there is a quick burst in CPU activity and the temps jump up to 70-80 degrees instantly, then it makes sense to leave the "silent mode" and simply restore the default fan settings. To be on the safe side, the average computed over the last minute helps ensure that we go back to 1000rpm only if the temperatures have settled below 50ºC.

In addition, I also took into account the case when the CPU is slightly stressed with a temperature that's just below the higher threshold of 65ºC. In that scenario, it doesn't hurt to leave the "silent mode" and therefore run the fan according to the default settings. Line 57 of my script provides a nice quick summary of all previously discussed cases.

I tested this script extensively and have the confidence that it works without any issue (at least for the 2020 T2-enabled iMacs). I also created a plist file inside ~/Library/LaunchAgents so that the Python script runs automatically on every startup:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>iMac.fan.control</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>FULL_PATH_TO_PYTHON_INTERPRETER</string>
        <string>FULL_PATH_TO_SCRIPT</string>
    </array>
</dict>
</plist>
Make sure that the plist is called iMac.fan.control.plist and that the two constants written in all caps are replaced with appropriate values.
Thanks for this Constantin!

So are the only things I need downloaded to make your method work SMC fan control and Python 3.8? (Not too sure what python is)

Do I just need to enter your code into terminal while SMC fan control is running?

As you may be able to tell coding and running scripts is not my area of expertise....

Thanks!
 
Here's a step-by-step guide @harrywood2:
  1. Download Python 3.8.6 (which is the exact version that I'm using) from https://www.python.org/downloads/release/python-386/. Scroll to the bottom of that page and click on 'macOS 64-bit installer' to initiate the download. Then click on the '.pkg' file to install Python 3.8.6 on your machine.
  2. Download smcFanControl version 2.6 from https://github.com/hholtmann/smcFanControl/releases/tag/2.6. Click on 'smcfancontrol_2_6.zip' and then move the smcFanControl application to /Applications. It's vital that this application resides in the specified folder since the script relies on the 'smc' command line tool packaged within the app.
  3. Copy the source code of the main script (https://github.com/costika1234/2020-iMac-fan-control/blob/master/main.py) to your clipboard and then paste it to a new file called 'main.py' (you can pick any other name as long as you include the '.py' extension).
  4. Create a file called 'iMac.fan.control.plist' inside '~/Library/LaunchAgents' (the tilde matters!) with the following contents:
    HTML:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Label</key>
    <string>iMac.fan.control</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>FULL_PATH_TO_PYTHON_INTERPRETER</string>
        <string>FULL_PATH_TO_SCRIPT</string>
    </array>
    </dict>
    </plist>
    Replace FULL_PATH_TO_PYTHON_INTERPRETER with the output of which python3 (run inside Terminal.app). Also, FULL_PATH_TO_SCRIPT must be the absolute path to the file containing the Python source code (you can easily find this by dragging and dropping the file into Terminal.app).
  5. Run launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist to start the automatic switching between "silent mode" (1000rpm) and "default mode". There is no need to run this command in the future as the job will begin running in the background once you restart the iMac (this is due to the 'RunAtLoad' key being set to 'true' in the above '.plist' file).

    That said, you can always stop the job and mark it as disabled by replacing 'load' with 'unload' in the previous command. Note that the job will not run on the next restart unless you invoke the 'load' command again. Lastly, be sure to run /Applications/smcFanControl.app/Contents/Resources/smc -k F0Md -w 00 after the 'unload' command to reset the fan to its default settings (otherwise it may be stuck at 1000rpm until the next reboot!).
I hope this covers everything. Good luck!
 
Last edited:
Here's a step-by-step guide @harrywood2:
  1. Download Python 3.8.6 (which is the exact version that I'm using) from https://www.python.org/downloads/release/python-386/. Scroll to the bottom of that page and click on 'macOS 64-bit installer' to initiate the download. Then click on the '.pkg' file to install Python 3.8.6 on your machine.
  2. Download smcFanControl version 2.6 from https://github.com/hholtmann/smcFanControl/releases/tag/2.6. Click on 'smcfancontrol_2_6.zip' and then move the smcFanControl application to /Applications. It's vital that this application resides in the specified folder since the script relies on the 'smc' command line tool packaged within the app.
  3. Copy the source code of the main script (https://github.com/costika1234/macos_fan_control/blob/master/main.py) to your clipboard and then paste it to a new file called 'main.py' (you can pick any other name as long as you include the '.py' extension).
  4. Create a file called 'iMac.fan.control.plist' inside '~/Library/LaunchAgents' (the tilde matters!) with the following contents:
    HTML:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Label</key>
    <string>iMac.fan.control</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
    <string>FULL_PATH_TO_PYTHON_INTERPRETER</string>
    <string>FULL_PATH_TO_SCRIPT</string>
    </array>
    </dict>
    </plist>
    Replace FULL_PATH_TO_PYTHON_INTERPRETER with the output of which python3 (run inside Terminal.app). Also, FULL_PATH_TO_SCRIPT must be the absolute path to the file containing the Python source code (you can easily find this by dragging and dropping the file into Terminal.app).
  5. Run launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist to start the automatic switching between "silent mode" (1000rpm) and "default mode". There is no need to run this command in the future as the job will begin running in the background once you restart the iMac (this is due to the 'RunAtLoad' key being set to 'true' in the above '.plist' file).

    That said, you can always stop the job and mark it as disabled by replacing 'load' with 'unload' in the previous command. Note that the job will not run on the next restart unless you invoke the 'load' command again. Lastly, be sure to run /Applications/smcFanControl.app/Contents/Resources/smc -k F0Md -w 00 after the 'unload' command to reset the fan to its default settings (otherwise it may be stuck at 1000rpm until the next reboot!).
I hope this covers everything. Good luck!
Thanks so much for all the info - really helpful.

For step 3, you say paste the source code into a new file. What type of file and where does this file need to be kept?

for step 4, how do I create a plist file? and just to be sure I need to change - <string>FULL_PATH_TO_PYTHON_INTERPRETER</string> to <string>which python3</string> ??

for step 5 how do I run the code? do I enter it into terminal?

And lastly by changing the code to unload, this will cancel the whole operation? Would be good to know just in case i Mess anything up and want to start over or just cancel whatever I have done... I'm also assuming I need to leave smc fan control running at all time to keep this working?

Sorry again for the lack of understanding on all this - very foreign to me however I do REALLY want to get my mac running at 1000rpm by default but also keep the temperature safe when needed. 1200 is annoyingly noisy and mostly unnecessary in my opinion.
 
The Python file can be located anywhere on your filesystem, and its type is no different than that of a regular text file. You can create a new file easily by running the command 'touch' inside Terminal.app (perhaps there are high-level ways of doing this too).

For instance, if you type 'touch main.py' inside a new Terminal window, the 'main.py' file will be created in your home directory, i.e. '/Users/<your_username>'. That's not really the best place where to keep this file, so I would suggest moving it to a folder of your choice instead (I hope you can do this using Finder.app).

Open this newly-created file with TextEdit (right click on the file and then navigate to 'Open With' -> 'TextEdit.app') so that you can paste the Python source code I linked to. Make sure to save this file and then close the TextEdit application.

You can now use 'touch' once again to create the '.plist' file. Inside Terminal.app, run
Bash:
touch ~/Library/LaunchAgents/iMac.fan.control.plist
followed by
Bash:
open -a TextEdit ~/Library/LaunchAgents/iMac.fan.control.plist
The latter will just open the '.plist' file inside TextEdit without you having to find this file in Finder. The command line interface is quite neat, isn't it?

Now copy the template of the '.plist' file (see above) and paste it inside the TextEdit application. You need to be really careful at this point since it's vital to have the placeholders FULL_PATH_TO_PYTHON_INTERPRETER and FULL_PATH_TO_SCRIPT set to the correct values.

Go to Terminal.app once again and run
Bash:
which python3
Copy the output of this command and then replace FULL_PATH_TO_PYTHON_INTERPRETER with whatever is in CMD + V. Just to be extra clear, you need to perform a textual replacement, which means that you have to change the placeholder written in all caps with the output of that command. You don't have to change anything else before and after the placeholder.

The same goes for FULL_PATH_TO_SCRIPT. You need to find the location of the 'main.py' script (or however you named it) and replace the placeholder with the full path to that Python file. I recommend dragging and dropping the file to Terminal.app as this will give you the path right away. It's going to be something along the lines of '/Users/<your_username>/folder1/folder2/main.py'.

As for step 5, those commands have to be run inside the Terminal application. The first one, i.e.
Bash:
launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist
begins the automatic switching according to the rules I set up in the script (the fan runs at 1000rpm as long as average of the CPU temperature is less than 50ºC and there is no spike above 65ºC). Also, you should NOT keep the smcFanControl.app open. Doing so might cause the fan to behave incorrectly, so make sure that this application is closed when the script is running in the background.

Finally, you can always go back to the default settings by running the following two commands (both need to be run one after the other!):
Bash:
launchctl unload -w ~/Library/LaunchAgents/iMac.fan.control.plist
/Applications/smcFanControl.app/Contents/Resources/smc -k F0Md -w 00
 
Last edited:
@costica1234, it doesn't seem to work on my 2019 iMac.

And when executing this command:
Code:
/Applications/smcFanControl.app/Contents/Resources/smc -k F0Md -w 00
..terminal throws this error:
Code:
Error: SMCWriteKey() = e00002bc
 
The commands I wrote only work on Macs having the T2 chip, in particular the 2020 iMac. You will have to use the approach described on the previous page by @Andrey84 for your 2019 machine.
 
  • Like
Reactions: petsk
The Python file can be located anywhere on your filesystem, and its type is no different than that of a regular text file. You can create a new file easily by running the command 'touch' inside Terminal.app (perhaps there are high-level ways of doing this too).

For instance, if you type 'touch main.py' inside a new Terminal window, the 'main.py' file will be created in your home directory, i.e. '/Users/<your_username>'. That's not really the best place where to keep this file, so I would suggest moving it to a folder of your choice instead (I hope you can do this using Finder.app).

Open this newly-created file with TextEdit (right click on the file and then navigate to 'Open With' -> 'TextEdit.app') so that you can paste the Python source code I linked to. Make sure to save this file and then close the TextEdit application.

You can now use 'touch' once again to create the '.plist' file. Inside Terminal.app, run
Bash:
touch ~/Library/LaunchAgents/iMac.fan.control.plist
followed by
Bash:
open -a TextEdit ~/Library/LaunchAgents/iMac.fan.control.plist
The latter will just open the '.plist' file inside TextEdit without you having to find this file in Finder. The command line interface is quite neat, isn't it?

Now copy the template of the '.plist' file (see above) and paste it inside the TextEdit application. You need to be really careful at this point since it's vital to have the placeholders FULL_PATH_TO_PYTHON_INTERPRETER and FULL_PATH_TO_SCRIPT set to the correct values.

Go to Terminal.app once again and run
Bash:
which python3
Copy the output of this command and then replace FULL_PATH_TO_PYTHON_INTERPRETER with whatever is in CMD + V. Just to be extra clear, you need to perform a textual replacement, which means that you have to change the placeholder written in all caps with the output of that command. You don't have to change anything else before and after the placeholder.

The same goes for FULL_PATH_TO_SCRIPT. You need to find the location of the 'main.py' script (or however you named it) and replace the placeholder with the full path to that Python file. I recommend dragging and dropping the file to Terminal.app as this will give you the path right away. It's going to be something along the lines of '/Users/<your_username>/folder1/folder2/main.py'.

As for step 5, those commands have to be run inside the Terminal application. The first one, i.e.
Bash:
launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist
begins the automatic switching according to the rules I set up in the script (the fan runs at 1000rpm as long as average of the CPU temperature is less than 50ºC and there is no spike above 65ºC). Also, you should NOT keep the smcFanControl.app open. Doing so might cause the fan to behave incorrectly, so make sure that this application is closed when the script is running in the background.

Finally, you can always go back to the default settings by running the following two commands (both need to be run one after the other!):
Bash:
launchctl unload -w ~/Library/LaunchAgents/iMac.fan.control.plist
/Applications/smcFanControl.app/Contents/Resources/smc -k F0Md -w 00
Again thank you so much for all the info here, I have downloaded python 3.8.6 now and will definitely begin running the script soon.

I just wanted to check about the temperature thresholds, are you sure/confident that 50 degrees celsius isn't too high for the low temperature threshold? I do lots of video editing on my new iMac and i want to keep it in a healthy condition for as long as I can to make it worth the invested money. Video editing can have a high CPU and GPU load so I don't want to risk it getting overly hot for too long or in other words, I don't want the fans to kick in too late if they need to be on sooner if that make sense..

I know I'm probably being overly cautious here but I do consider this new machine my baby... haha!

Also If I do use the final command to deactivate the script, is there also a command that I can run If I want to activate it again? An on/off switch in a sense.

Cheers!
 
You can always edit the thresholds if you feel like 50 degrees Celsius is a bit too much. Just change LOW_TEMP_THRESHOLD (defined at the top of my script) to something like 45ºC. I don't recommend going below this value given that the temperatures seem to be between 40 and 45ºC when doing light work (e.g. e-mail, text editing, light web browsing).

Also If I do use the final command to deactivate the script, is there also a command that I can run If I want to activate it again? An on/off switch in a sense.

The "activation command" is just the one invoking launchctl load. To make your life easier, add the following items to your ~/.bash_profile:

Bash:
alias fan_control_on="launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist"
alias fan_control_off="launchctl unload -w ~/Library/LaunchAgents/iMac.fan.control.plist; /Applications/smcFanControl.app/Contents/Resources/smc -k F0Md -w 00"
alias restart_fan_control="fan_control_off; fan_control_on"

You will need to run source ~/.bash_profile if you want the changes to be applied to the current tab of Terminal.app. Otherwise, just open a new tab and you will be able to invoke any of the above shortcuts, e.g. typing fan_control_off will stop the execution of my script and return the fan to its factory settings.
 
Ok great @costica1234 , so what do I need to do exactly to add these items to my ~/.bash_profile ?

Thanks
Adding means writing those lines to the file called ~/.bash_profile. Follow these steps:
  1. In a new Terminal.app window, run touch ~/.bash_profile;
  2. Then open TextEdit via open -a TextEdit ~/.bash_profile;
  3. Now copy and paste the three aliases to ~/.bash_profile;
  4. Close TextEdit (CMD + Q);
  5. Finally, run source ~/.bash_profile.
You will now be able to use each of those shortcuts inside Terminal.app.
 
Ok great. I have now run your instructions from the previous posts and I can't seem to hear a change in the fans.. When I look in the mac fans control app it still seems to be running at 1200rpm. I rebooted the machine after running the final "launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist' command in terminal too and still nothing. I'll attach below my "main.py" file and the iMac.fan.control.plist if you can check that they seem correct?

Is there a way I can check that the script is running correctly and doing what it's supposed to do?
 

Attachments

  • Screenshot 2021-01-29 at 10.12.26.png
    Screenshot 2021-01-29 at 10.12.26.png
    529.3 KB · Views: 119
  • Screenshot 2021-01-29 at 10.11.31.png
    Screenshot 2021-01-29 at 10.11.31.png
    100.1 KB · Views: 158
@harrywood2: The '.plist' file looks good, but your 'main.py' isn't quite right. You need to preserve the format of the original file as indentation in Python does matter. Don't try to manually fix that; instead, copy the source code from https://github.com/costika1234/2020-iMac-fan-control/blob/master/main.py once again and paste it to your file. Then run restart_fan_control on the command line to unload and then reload the job that you created.
 
Last edited:
@harrywood2: The '.plist' file looks good, but your 'main.py' isn't quite right. You need to preserve the format of the original file as indendation in Python does matter. Don't try to manually fix that; instead, copy the source code from https://github.com/costika1234/2020-iMac-fan-control/blob/master/main.py once again and paste it to your file. Then run restart_fan_control on the command line to unload and then reload the job that you created.
Thanks, I have attached how my main.py file looks now. I then updated my bash profile with the shortcut commands and ran restart_fan_control but still nothing seems to have changed, fans still running at 1200 rpm. Am I missing something?
 
Im a total neewbie. Tried to carefully follow the steps. At the end, i couldn't see the drop in fan speed. But maybe the app should not run? Would also like to know how I can controll if its working please :)

But having some issues in terminal when running
launchctl load -w ~/Library/LaunchAgents/iMac.fan.control.plist


Load failed: 5: Input/output error
 
You shouldn't be running smcFanControl.app at any time. As for the 'launchctl load' command failing, try the unload version and then the load again. But really, you should be creating the aliases I mentioned in #92 above and invoke the shortcuts on the command line.

I would also recommend installing iStat Menus (https://bjango.com) to monitor the fan speed and CPU temperatures (along with many other things). It comes with a 2-week trial if I remember correctly.
 
  • Like
Reactions: foliovision
Thank you mister! As per your beautiful guidance! its now working for me :) I deleted both files and started fresh. I misunderstood from a previous post, that FULL_PATH_TO_PYTHON_INTERPRETER should have an output command from which python3. I read it to quickly an tough that, when it stood with whatever is in your cmd-v you could type in -in my head I could type in whatever word. Stupid. Sorry for that.
Big difference in the fan sound.

I did not have smc fan running in the background as per instruction. Had the mac fan app. Had forgotten about istat, its showing 1000rmp now.

Now im reading letter for letter in bash/alias post.
 
  • Love
Reactions: costica1234
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.