Hi, as mentioned here, I created a short python script, which reads Temperatures from SpeedFan log file and pushes the values to pimatic.
This is very early in dev, but runs good for me on a few machines
Install SpeedFan. Now head to the configuration and select the tab
Enabled and set as
Decimal seperator a
. (dot instead comma). I want just one decimal, so I set
Max decimals to 1
Now click the
Temperatures Tab, choose the device you want and press
F2 (rename). Change the name and make sure you add
.temp to the end of it. eg
CPU.temp. So this value gets recognized as a temperature.
Now you are finished with the configuration of speedfan.
You have to install python 2.7 and install module requests (
pip install requests in cmd)
default.py and change following values:
pc_name = (choose a name)
interval = 30 (waits 30s between pushes)
path = 'C:\Program Files (x86)\SpeedFan\\' if necessary (default path - but keep the double backslash the end!)
pim.py and change ip, host, username, password
Now you have to create variables in pimatic for the values you want to be pushed to pimatic.
The variable names have to be named after following scheme:
the first part consists of ‘sf’ (‘SpeedFan’)
the second part ist the
pc_name (you entered/edited in the
next comes the ‘device’ you want to read values from
and last you have to set, what values you want to read from specified device.
To autostart this script, I created a windows service with the ‘nssm’ tool.
Open cmd as Admin, navigate to nssm.exe and type
nssm install pimatic-speedfan (or choose other name)
C:\Python27\pythonw.exe (path to pythonw)
Arguments choose your
default.py script (absolute path eg
This service is going to start at next boot (or start it manually - enter in cmd (or win+r):
Now search for your given name and start it.
You may ask: ‘what about the device (in GUI), when the PC is offline’?
I made some thoughts on that, and wrote a short script, which adds and removes the device from page, if the PC is online/offline.
Very simple with two rules (will post only one!):
desktop1 is absent (‘desktop1’ is your ping-device!)
execute "python /opt/scripts/pimatic/addDeviceToPage.py favourite rem sf-desktop1" (need to install python on pimatic host, too!)
You need to edit
addDeviceToPage.py and change ip, host, username, password
Of course you need to edit the path to the script and change parameters:
First is ‘pageId’, second is ‘rem’ or ‘add’, last you have to specify the deviceId
Atm it is not possible to create rules with this values eg (if cpu temp is greater 50 for 5 minutes) (SF can handle that, but if there is demand on that, I could use some ‘raw values’ to accomplish that!
In future I will add the support fan speeds and voltages! (Which are both supported by SpeedFan)
I hope I did not forget anything and someone is going to test this!
Feel free to post any question/request!
PS: Sorry for the long waiting, do not have much spare time atm (took some time to write this)!
Hi, last week I started to think about how to get temps, speed, etc (from windows pc) to pimatic.
As I used Speedfan for years now to monitor my temps and control my fans and it has a log option, I started to write a short python script for that. It reads the log and pushes the values to pimatic via API.
Here is an example screenshot (how it looks atm):
If there is demand on this, I would love to share it with you!