Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import subprocess
- import time
- import re
- command = "/Applications/smcFanControl.app/Contents/Resources/smc -k F0Mn -w %s"
- def getFanHex(i):
- return hex(int(i*4))
- def setFanSpeed(fanhex):
- os.system(command % (fanhex))
- def getFanSpeed():
- rawdata = subprocess.check_output(["/Applications/smcFanControl.app/Contents/Resources/smc", "-r", "-k", "F0Ac"])
- speed = rawdata.split(" ")[6]
- return int(speed)
- def getCPUTemp():
- rawdata = subprocess.check_output(["/Applications/TemperatureMonitor.app/Contents/MacOS/tempmonitor", "-ds", "-a", "-f", "-l"])
- CPUline = re.findall("DIODE: [1-2][0-9][0-9].{1,3}F", rawdata)
- tempString = str(CPUline).split(" ")[1]
- temperature = int(float(tempString))
- return temperature
- previousTemp = 100;
- targetFanSpeed = 2000;
- data = "Temp: %d; Diff: %d; Target: %i, Current: %i"
- while 1:
- currentTemp = getCPUTemp()
- tempDiff = currentTemp - previousTemp
- fanSpeed = getFanSpeed()
- targetFanSpeed = (currentTemp - 100)*60 + 2000
- if targetFanSpeed > 6200:
- targetFanSpeed = 6200
- elif targetFanSpeed < 2000:
- targetFanSpeed = 2000
- if ((fanSpeed >= targetFanSpeed+500) or (fanSpeed <= targetFanSpeed-500)):
- fanhex = getFanHex(targetFanSpeed)[2:]
- print fanhex
- setFanSpeed(fanhex)
- previousTemp = currentTemp
- print data % (currentTemp,tempDiff,targetFanSpeed,fanSpeed)
- time.sleep(10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement