DEPRECATED - There is a new rewritten plugin available: https://github.com/spdermn02/TouchPortal-HardwareMonitor - support for this plugin will not continue.
Thank you to all of you who have supported this plugin, and downloaded it. I bet the new one will be even better for ya.
v6.0.0 is Experimental, pushed to master by accident. just FYI if you try this and it breaks.. it's stil under development, stable is v5
TouchPortal Plugin to Utilize Statistics from Open Hardware Monitor - for Windows
- DEPRECATED - There is a new rewritten plugin available: https://github.com/spdermn02/TouchPortal-HardwareMonitor - support for this plugin will not continue.
- Touch Portal Plugin for Open Hardware Monitor
NOTICE: Not all sensors configured will work with your computer, there may be some that don't show anything, and other sensors that I didn't know about were even available so have to be configured to work. If there is one I missed open an Issue with your attached OHM report and the sensor you are requesting and it will get put on the log.
These are the current sensors and values available via this plugin. This information will be transmitted back to Touch Portal every 1 seconds. If this becomes a problem I'll probably extract this out into a configuration file so it can be controlled by you.
- Percentage - values 0.0 - 100.0
- Treshold - Coded by sensor and documented below to return "grouped" status data
- SmallData - values are in MB
- Data - values are in GB
- Clock - values are in MHz
- Temperature - values are in °C
- Power - values are in W (watts)
Note: All Decimals are to the tenths place. I chose not to include the symbol and only the numbers so you can choose how they display
- Total CPU Load - Percentage
- state id is
tpohm_cpu_total_load_val
- state id is
- CPU Status (based on Total Load) - Threshold
- state id is
tpohm_cpu_total_load_status
- Final Values are:
Low, Medium, High
Low
is when < 45% of CPU is usedMedium
is when < 85% of CPU is usedHigh
is when >= 85% of CPU is used
- Final Values are:
- state id is
- CPU Core Load Values 1-16 Cores - Percentage
- state ids are
tpohm_cpu_core_1_load_val
-tpohm_cpu_core_16_load_val
- state ids are
- CPU Core Clock Values 1-16 Cores - Clock
- state ids are
tpohm_cpu_core_1_clock_val
-tpohm_cpu_core_1_clock_val
- state ids are
- CPU Package Temperature - Temperature
- state id is
tpohm_cpu_package_temp_val
- state id is
- CPU Package Temperature Status - Threshold
- state id is
tpohm_cpu_package_temp_status
- Final Values are:
Low, Medium, High
Low
is when < 45°CMedium
is when < 65°CHigh
is when >= 65°C
- Final Values are:
- state id is
- CPU Package Power - Power
- state id is
tpohm_cpu_package_power_val
- state id is
- Total GPU Load - Percentage
- state id is
tpohm_gpu_core_load_val
- state id is
- GPU Status (based on Total GPU Load) - Threshold
- state id is
tpohm_gpu_core_load_status
- Final Values are:
Low, Medium, High
Low
is when < 45% of GPU is usedMedium
is when < 85% of GPU is usedHigh
is when >= 85% of GPU is used
- Final Values are:
- state id is
- Total GPU Memory Load - Percentage
- state id is
tpohm_gpu_memory_load_val
- state id is
- GPU Memory Status (based on Total GPU Memory Load) - Threshold
- state id is
tpohm_gpu_memory_load_status
- Final Values are:
Low, Medium, High
Low
is when < 40% of GPU Memory is usedMedium
is when < 85% of GPU Memory is usedHigh
is when >= 85% of GPU Memory is used
- Final Values are:
- state id is
- GPU Core Clock - Clock
- state id is
tpohm_gpu_core_clock_val
- state id is
- GPU Memory Clock - Clock
- state id is
tpohm_gpu_memory_clock_val
- state id is
- GPU Shader Clock - Clock
- state id is
tpohm_gpu_shader_clock_val
- state id is
- GPU Core Temperature - Temperature
- state id is
tpohm_gpu_core_temp_val
- state id is
- GPU Core Temperature Status - Threshold
- state id is
tpohm_gpu_core_temp_status
- Final Values are:
Low, Medium, High
Low
is when < 40°CMedium
is when < 60°CHigh
is when >= 60°C
- Final Values are:
- state id is
- GPU Power - Power
- state id is
tpohm_gpu_power_val
- state id is
- GPU Memory Free - SmallData
- state id is
tpohm_gpu_free_memory_val
- state id is
- GPU Memory Used - SmallData
- state id is
tpohm_gpu_used_memory_val
- state id is
- GPU Memory Temperature - Temperature - Maybe AMD Only
- state id is
tpohm_gpu_memory_temp_val
- state id is
- GPU Memory Temperature Status - Threshold - Maybe AMD Only
- state id is
tpohm_gpu_memory_temp_status
- Final Values are:
Low, Medium, High
Low
is when < 40°CMedium
is when < 60°CHigh
is when >= 60°C
- Final Values are:
- state id is
- Total Memory Load - output the raw current percentage (to 1 decimal point) of Memory Load
- state id is
tpohm_memory_load_val
- Values are: 0.0 - 100.0
- state id is
- Memory Status (based on Total Load) - called a Threshold in the code
- state id is
tpohm_memory_load_status
- Final Values are:
Low, Medium, High
Low
is when < 40% of Memory is usedMedium
is when < 85% of Memory is usedHigh
is when >= 85% of Memory is used
- Final Values are:
- state id is
- Used Memory - Data
- state id is
tpohm_used_memory_val
- state id is
- Available Memory - Data
- state id is
tpohm_avail_memory_val
- state id is
With the SDK update to 2 and 2.2 of Touch Portal being released, you can now have images sent from plugins back to Touch Portal.
So with that I wanted to test out (minimal at first) with a few different options.
CPU and GPU Load Bar Graph
You can now have an icon updated on your screen with a bar graph representation of each reading from OHM. This is accomplished by using this action and event combination on the button you want to have the icon shown on.
NOTE: This updates every time the plugin runs an update, so again if your mobile device is struggling, maybe increase the time between sends in the config file.
CPU and GPU Load Gauge
You can now have an icon updated on your screen with a gaguge representation of each reading from OHM. This is accomplished by using this action and event combination on the button you want to have the icon shown on.
NOTE: Unlike the bar graph, this only updates if the previous value is different than the next read value.
I have created a sample page that can be imported directly into Touch Portal and consume all possible values state values (feel free to edit how you see fit or just use this as a guide). Download and import this page: TP OHM Page
Here is a gif of it in action on my phone (note: slightly different than existing page):
These are all 1x1 buttons but were on a 4 x 3 landscape screen
CPU Load Gauge - import this button: TP OHM CPU Load Gauge Button
CPU Load Bargraph - import this button: TP OHM GPU Load Bargraph Button
GPU Load Gauge - import this button: TP OHM GPU Load Gauge Button
GPU Load Bargraph - import this button: TP OHM GPU Load Bargraph Button
Events have been removed in favor of "When plugin state changes" event built into Touch Portal With the customization of settings, those have become irrelevant.
Any of your buttons that work with them should be converted to use "When plugin state changes" events and the subsequent configured values that are defaulted, or set by you in the new Settings
If you use Touch Portal and are interested in having a "dashboard" display of some base computer statistics, these instructions will help get that setup for you.
If you don't use Touch Portal - how dare you, you should!
Download and run Open Hardware Monitor - you can find it here: https://openhardwaremonitor.org/ Current tested version is 0.9.5
Location of where it is downloaded and run from do not matter, as long as it is running and writing sensor data it can run from anywhere on the computer.
After download, run the OpenHardwareMonitor.exe file, for this plugin to run correctly, please enable the following "Options" menu items:
NOTE: Default install path is dictated by Touch Portal, for newer users it is in %APPDATA%\TouchPortal\plugins, for older users it is in C:\Users(window user name)\Documents\TouchPortal\plugins\ (or wherever your documents folder is)
Step 1 Make sure you have Open Hardware Monitor installed - go to Prequisites if you did not install it
Step 2 Download the Touch Portal Plugin OpenHardwareMonitor.tpp file from the github repo installer folder. This contains everything needed for TouchPortal and the Plugin
Step 3 Open Touch Portal GUI, go to the Wrench, and chose "Import plug-in"
Step 4 Navigate to where youd downloaded the .tpp file from Step 1, select it and click "Open"
Step 5 You then should see this, click "Okay"
Step 6 Now restart the Touch Portal app
NOTE: Make sure you fully close Touch Portal using System Tray icon to exit
Step 7 After Touch Portal is back open and this is your first time installing TP Open Hardware Monitor you will be presented with a "trust" screen - code here is all open source - if you trust the plugin, select "Trust Always" or else everytime you open the app it will ask you:
Step 8 Now that we are trusted, click on an empty button and if you scroll down in the "Add Actions" list, you should see:
Step 8 Now you can move onto the Sample Page or start creating your own buttons to use this data.
As noted in the Events section, all events have been removed in favor of "When plug-in state changes" event. New settings have been put in place to allow for user configuration of the thresholds and cut off ranges. see the Settings section for more details
Configuration has moved to use the Touch Portal settings section instead of it's own config file. The new settings will allow for better customization of the threshold levels, and wording and also be able to configure gauges and bargraphs independently from each other.
Touch Portal will log that it attempted to load the plugin in it's log file %APPDATA%\TouchPortal\log.txt
when it loads the Plugin it should look like this
00:48:02 - [LOG] (Plugin System) Searching and loading plugins...
00:48:02 - [LOG] (Plugin System) (127.0.0.1) Waiting for request on port 12136...
00:48:02 - [LOG] (Plugin System) Added Category: Open Hardware Monitor Info
and a little lower you should see something like this:
00:48:08 - [LOG] (Plugin System) Executing plugin service: "C:\Users\<USERNAME>\AppData\Roaming\TouchPortal\plugins\OpenHardwareMonitor\tp_ohm.exe"
There is also a logfile under the OpenHardwareMonitor plugin folder, %APPDATA%\TouchPortal\plugins\OpenHardwareMonitor\tp_ohm.log
[START] tp_ohm is starting up, and about to connect
[FATAL] Cannot create socket connection : ##
- Verify your Touch Portal is actually running
[START] tp_ohm is starting up, and about to connect
[FATAL] Unable to connect to WMI...
- Verify you followed the Prequisite section and installed Open Hardware Monitor, otherwise your user may not have access to read from WMI - please follow this link, but for OpenHardwareMonitor folder instead of CIMV2 to set your user up to access WMI
If you do not see those messages, make sure you followed the Prerequisites section, otherwise visit the #tp-ohm channel on the Touch Portal Discord and we can troubleshoot it when I'm available
INFO: more notes will be added here as we have to troubleshoot
- this has only been tested on Windows 10 Pro, your mileage my vary
- this was tested on a single CPU Desktop machine, your mileage may vary.
- If you experience issues with the plugin please submit an issue with a saved copy of your Open Hardware Monitor report (File -> Save Report), and it will be reviewed as time permits
- StrawberryPerl - Coding Language
- PAR::Packaging - EXE Packaging Utility
- Win32::OLE - Used to access the WMI information
Building reqiures Par::Packaging (pp) for Perl - and to be located in the src/perl directory of the project
put the below all into a build.bat script that handles this all it is in the root directory (no more remembering for me!)
@ECHO OFF
cd src\perl
start "Build Perl" cmd /c pp @libs.txt tp_ohm.pl -o tp_ohm.exe
:loop
ping -n 2 localhost >nul 2>nul
tasklist /fi "WINDOWTITLE eq Build Perl" | findstr "cmd" >nul 2>nul && set Child1=1 || set Child1=
if not defined Child1 goto endloop
goto loop
:endloop
move tp_ohm.exe ..\OpenHardwareMonitor\tp_ohm.exe
cd ..
del ..\installer\OpenHardwareMonitor.tpp
7z a -tzip ..\installer\OpenHardwareMonitor.tpp OpenHardwareMonitor
del OpenHardwareMonitor\tp_ohm.exe
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Jameson Allen - Initial work - Spdermn02
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details
- Thank you to Open Hardware Monitor for writing your statstics somewhere accessible
- Thank you to Ty and Reinier for creating and developing Touch Portal