It is currently March 19th, 2024, 5:58 am

Argus Monitor plugin 1.1.0.1

Share and get help with Plugins and Addons
User avatar
LeoDavidson
Posts: 8
Joined: January 31st, 2018, 12:28 am

Argus Monitor plugin 1.1.0.1

Post by LeoDavidson »

This is a plugin which lets your Rainmeter skins use various CPU, GPU, fan and temperature readings from Argus Monitor.

What is Argus Monitor?

Argus Monitor is similar to the more well-known SpeedFan, in that it is good at monitoring various temperatures, S.M.A.R.T. data, etc. and controlling your fans based on them. Unlike SpeedFan, Argus Monitor is not free to use (beyond a 30 day trial period), but it's not expensive either.

I used to use SpeedFan, and the SpeedFan plugin for Rainmeter, but my new motherboard has temperature sensors which SpeedFan can't detect, while Argus Monitor can.

(The motherboard is an Asus ROG Maximus X Hero and I'm using T_Sensor. Same problem with some other earlier Maximus boards and current versions of SpeedFan (4.52 Final), from what I've read. Some tools like HWInfo can also read the temperature, but they can't control your fans. As I'm controlling my fans based a water temperature sensor plugged into T_Sensor, Argus Monitor was the only thing that let me do that. Asus's own software was useless, as was the BIOS, for controlling fans based on water temperature, as they force you to use CPU temperature for several fan headers. On a board with lots of support for water cooling. Sigh.)

This plugin is not official

Argus Monitor comes with its own simple gadget that can display some of its readings outside of the main UI, but it isn't as fully featured as Rainmeter. As there was no official Argus Monitor plugin for Rainmeter, I initially reverse-engineered the way the official gadget talks to the main program and created the Rainmeter plugin this thread is about. From plugin version 1.1.0.1 (Argus Monitor version 4.01), the Argus Monitor developer has helped by sending me information on version changes as well as things I could not work out on my own.

Since this plugin is not part of Argus Monitor itself, and there is no formal API to get data from Argus Monitor, it's possible the plugin will stop working when Argus Monitor is updated and changes the format of the data. If it does, I'll do my best to fix it. The plugin is written in a way where the worst that should happen is it reports incorrect values, or writes to the Rainmeter log saying it can't understand the other end of the protocol.

Caveats
  • Version 1.0.0.0 of the plugin supports Argus Monitor 3.6.2.
  • Version 1.1.0.1 of the plugin supports Argus Monitor 3.6.2, 4.0.1 and 4.0.2 (latest version at time of writing).
  • If you use both the plugin and the official gadget at once, both of them will only be updated half as often as usual. This is because they both queue up to receive updates from Argus Monitor, and it will only update one at a time.
  • Argus Monitor itself has some limitations which the plugin inherits. As of Argus Monitor 4.0.2: Maximum of 32 CPU cores, 4 GPUs, 32 drives, 12 fans, and 12 motherboard temperatures (separate from CPU/GPU temps).
Skin, Layout, Screenshot

The plugin comes with a layout of example skins which demonstrate (most of) the various things it can get from Argus Monitor. It's not pretty; it was made just to test the plugin, before I start using the plugin in my real skin.

Those skins also serve as a way to see how to get the different readings out of the plugin. If you have used the SpeedFan plugin before, you'll find it familiar.

The CPU skin will dynamically add/remove cores based on the number of cores Argus Monitor reports. The others are all fixed-size and will display some blank readings for things that don't exist on your system.

This shows the skin above Argus Monitor itself (click to expand):

Image

Download

The plugin and example skins/layout are included in this .rmskin file:

Current version:
Argus Monitor Demos_1.1.0.1.rmskin
(195.62 KiB) Downloaded 1392 times
Older version (history at the bottom of this post):
Argus Monitor Demos_1.0.0.0.rmskin
(184.99 KiB) Downloaded 710 times
Measures

Measures are typically used like this:

Code: Select all

[YourMeasureName]
Measure=Plugin
Plugin=Plugins\ArgusMonitorPlugin.dll
ArgusType=CPUCoreTemperature
ArgusNumber=3
In the above example, ArgusType=CPUCoreTemperature tells the plugin you want to use the CPUCoreTemperature type, described below.

The ArgusNumber=3 part tells the plugin you want the temperature of the 4th CPU core. (Counting starts from 0 = 1st Core, 1 = 2nd Core, and so on, like the SpeedFan plugin.)

The ArgusNumber value is only used for some types and can be left blank for ones that don't need a number/index.

The plugin understands the following measure types:

CPU Measures:
  • CPUName -- Returns the "name" of your CPU. e.g. "Intel Core i7-8700K"
  • CPUSpec -- Returns the specification of your CPU, if any. e.g. "@ 3.70GHz". You often see this printed next to the name.
  • CPULoad -- Returns the overall CPU load as a percentage.
  • CPUPackageCount -- Returns the number of CPU packages (not cores or threads, but physical sockets). Will be 1 on most systems.
  • CPUWatts -- Returns the overall power usage of a CPU package in Watts. On a multi-package system, use ArgusNumber to specify the package you want, either zero or one. (Power data for more than one package is not supported at time of writing.) Note that this reading may become incorrect on some motherboards after overclocking.
  • CPUWattsMin -- On a machine with two CPU sockets/packages, returns the power reading from the package using the least power.
  • CPUWattsMax -- On a machine with two CPU sockets/packages, returns the power reading from the package using the most power.
  • CPUCoreCount -- Returns the number of CPU cores (not threads). (I expect this is the total for all packages, but can't test that.)
  • CPUCoreTemperature -- Returns the temperature of a CPU core, in degrees Celsius. Use ArgusNumber to specify the core you want, starting from zero.
  • CPUCoreTemperatureMin -- Returns the temperature of the coldest CPU core.
  • CPUCoreTemperatureMax -- Returns the temperature of the hottest CPU core.
  • CPUCoreMHz -- Returns the current speed of a CPU core in MHz. Use ArgusNumber to specify the core you want, starting from zero.
  • CPUCoreMHzMin -- Returns the slowest current CPU core speed.
  • CPUCoreMHzMax -- Returns the fastest current CPU core speed.
GPU Measures:
  • GPUName -- Returns the name of a GPU. e.g. "NVIDIA GeForce GTX 1080 Ti". On a multi-GPU system, use ArgusNumber to specify the GPU you want, starting from zero. If you only have one GPU in the system, specify ArgusNumber=0 or leave it out entirely (it defaults to 0 if not specified, which gets you the first item).
  • GPUTemperature -- Returns the temperature of a GPU, in degrees Celsius. Use ArgusNumber to specify the GPU you want, starting from zero.
  • GPUTemperatureMin -- On a multi-GPU system, returns the coldest non-zero GPU temperature.
  • GPUTemperatureMax -- On a multi-GPU system, returns the hottest non-zero GPU temperature.
  • GPULoad -- Returns the percent load (utilisation) of a GPU, similar to the more familiar CPU load. Use ArgusNumber to specify the GPU.
  • GPULoadMin -- On a multi-GPU system, returns the minimum GPU load.
  • GPULoadMax -- On a multi-GPU system, returns the maximum GPU load.
  • GPUCoreMHz -- The current core clock speed of a GPU. Use ArgusNumber to specify the GPU.
  • GPUCoreMHzMin -- On a multi-GPU system, returns the minimum core clock speed of any GPU.
  • GPUCoreMHzMax -- On a multi-GPU system, returns the maximum core clock speed of any GPU.
  • GPUMemoryMHz -- The current memory clock speed of a GPU. Use ArgusNumber to specify the GPU.
  • GPUMemoryMHzMin -- On a multi-GPU system, returns the minimum memory clock speed of any GPU.
  • GPUMemoryMHzMax -- On a multi-GPU system, returns the maximum memory clock speed of any GPU.
  • GPUShaderMHz -- The current shader clock speed of a GPU. (Not applicable to NVidia cards as far as I can tell. I don't know about others.) Use ArgusNumber to specify the GPU.
  • GPUShaderMHzMin -- On a multi-GPU system, returns the minimum shader clock speed of any GPU.
  • GPUShaderMHzMax -- On a multi-GPU system, returns the maximum shader clock speed of any GPU.
  • GPUFanPercentPWM -- Returns the speed a GPU's fans are set to, as a percentage from 0 to 100. Use ArgusNumber to specify the GPU.
  • GPUFanPercentPWMMin -- On a multi-GPU system, returns the smallest non-zero GPUFanPercentPWM reading.
  • GPUFanPercentPWMMax -- On a multi-GPU system, returns the largest GPUFanPercentPWM reading.
  • GPUFanRPM -- Returns the speed a GPU's fans are running at, in RPM (revolutions per minute). Use ArgusNumber to specify the GPU.
  • GPUFanRPMMin -- On a multi-GPU system, returns the smallest non-zero GPUFanRPM reading.
  • GPUFanRPMMax -- On a multi-GPU system, returns the largest GPUFanRPM reading.
  • GPURamUsedMB -- Returns the amount of memory in use on a GPU, in megabytes. Use ArgusNumber to specify the GPU.
  • GPURamUsedMBMin -- On a multi-GPU system, returns the smallest GPURamUsedMB reading.
  • GPURamUsedMBMax -- On a multi-GPU system, returns the largest GPURamUsedMB reading.
  • GPURamUsedPercent -- Returns the amount of memory in use on a GPU, as a percentage of its total memory. Use ArgusNumber to specify the GPU.
  • GPURamUsedPercentMin -- On a multi-GPU system, returns the smallest GPURamUsedPercent reading.
  • GPURamUsedPercentMax -- On a multi-GPU system, returns the largest GPURamUsedPercent reading.
  • GPUPowerPercent -- Returns percentage of TDP (thermal design power) that a GPU is currently using. Use ArgusNumber to specify the GPU.
  • GPUPowerPercentMin -- On a multi-GPU system, returns the smallest GPUPowerPercent reading.
  • GPUPowerPercentMax -- On a multi-GPU system, returns the largest GPUPowerPercent reading.
Drives:
  • DriveName -- Returns the name of a drive. e.g. "SSD 960 EVO 500". Use ArgusNumber to specify the drive you want, starting from zero.
  • DriveTemperature -- Returns the temperature of a drive, in degrees Celsius. Use ArgusNumber to specify the drive you want, starting from zero.
  • DriveTemperatureMin -- Returns the temperature of the coldest drive (ignoring any that are reporting zero).
  • DriveTemperatureMax -- Returns the temperature of the hottest drive.
Fans:
  • FanName -- Returns the name of a fan. You can edit the fan names within Argus Monitor, so this will be whichever name you have chosen for the fan in question. Use ArgusNumber to specify which fan, starting from zero.
  • FanRPM -- Returns the speed of a fan, in RPM. Use ArgusNumber to specify which fan, starting from zero.
  • FanRPMMin -- Returns the slowest RPM speed any fan is reporting (ignoring any that are reporting zero).
  • FanRPMMax -- Returns the fastest RPM speed any fan is reporting.
  • FanPercentPWM -- Returns the speed the fan is set to run at as a percentage from 0 to 100. Use ArgusNumber to specify which fan, starting from zero.
  • FanPercentPWMMin -- Returns the slowest PWM percentage any fan is set to (ignoring any that are set to zero).
  • FanPercentPWMMax -- Returns the fastest PWM percentage any fan is set to.
  • FanModeID -- Returns a number representing how the fan's speed is currently controlled. 0 = BIOS controlled, 1 = Manual controlled (set to a fixed speed in the Argus Monitor UI), 2 = Software controlled (set to a fan curve against a temperature reading in the Argus Monitor UI). Use ArgusNumber to specify which fan, starting from zero.
  • FanModeName -- The same as FanModeID, but returns a text string instead: "BIOS", "Manual" or "Software".
Motherboard Temperatures:
  • TemperatureName -- Returns the name of a temperature from Argus Monitor's "Mainboard / Temperatures" settings page. You can edit these names yourself there to give them better meanings, especially for things plugged into any generic temperature sensor headers on the motherboard. Use ArgusNumber to specify which temperature you want, starting from zero.
  • Temperature -- Returns a temperature reading, in degrees Celsius. Use ArgusNumber to specify which temperature you want, starting from zero.
  • TemperatureMin -- Returns the coldest reported motherboard temperature (ignoring any that are reporting zero).
  • TemperatureMax -- Returns the hottest reported motherboard temperature.
RAM Usage:
  • Note that Rainmeter has far more versatile RAM meters built-in. These are only really here for completeness.
  • RAMUsedGB -- Returns the amount of system RAM currently in use, in GB (gigabytes).
  • RAMUsedPercent -- Returns the percentage of system RAM currently in use, from 0 to 100.
Battery Status:
  • BatteryChargePercent -- Returns the battery's charge level as a percentage.
  • BatteryChargeState -- Returns a number indicating the battery's current charging state. 0 = Low, 1 = Mid, 2 = High.

History

v1.1.0.1 (15 May 2018):
  • Updated to work with Argus Monitor 4.0.1 and 4.0.2. Kept compatibility with 3.6.2.
  • Added new items (most of which require Argus Monitor 4) : CPUPackageCount, GPULoad, GPUCoreMHz, GPUMemoryMHz, GPUShaderMHz, GPUFanPercentPWM, GPUFanRPM, GPURAMUsedMB, GPURAMUsedPercent, GPUPowerPercent, BatteryChargePercent, BatteryChargeState.
  • Added new min/max items for new things: GPULoadMin/Max, GPUCoreMHzMin/Max, GPUMemoryMHzMin/Max, GPUShaderMHzMin/Max, GPUFanPercentPWMMin/Max, GPUFanRPMMin/Max, GPURAMUsedMBMin/Max, GPURAMUsedPercentMin/Max, GPUPowerPercentMin/Max.
  • Added new min/max items for old things: CPUWattsMin/Max, GPUTemperatureMin/Max, DriveTemperatureMin/Max, FanRPMMin/Max, FanPercentPWMMin/Max, TemperatureMin/Max.
  • CPUWatts now works with multiple packages (up to 2), not just the first.
  • GPUName now works with multiple GPUs, not just the first. (The other GPU readings to as well.)
  • Max number of drives increased to 32.
  • Max number of motherboard fans increased to 12.
  • Max number of motherboard temperatures increasted to 12.
  • Thanks to the Argus Monitor developer for providing information on the data structure and changes, and for adding extra GPU information to the data structure.
v1.0.0.0 (31 January 2018):
  • Initial version, for Argus Monitor 3.6.2.
Last edited by LeoDavidson on May 15th, 2018, 8:24 pm, edited 7 times in total.
User avatar
SilverAzide
Rainmeter Sage
Posts: 2579
Joined: March 23rd, 2015, 5:26 pm
Contact:

Re: Argus Monitor plugin 1.0.0.0

Post by SilverAzide »

Welcome to the Rainmeter Forum, Leo!

In case no one reads the fine print at the bottom of Leo's post, Leo is one of the authors of the BEST file manager on the planet -- bar none: Directory Opus. And besides that, he's a super nice guy and always very helpful to boot.
User avatar
LeoDavidson
Posts: 8
Joined: January 31st, 2018, 12:28 am

Re: Argus Monitor plugin 1.0.0.0

Post by LeoDavidson »

SilverAzide wrote:And besides that, he's a super nice guy and always very helpful to boot.
Hey :D Thanks!

Long time Rainmeter user here, but first time I've had anything worth posting. I did make a custom skin which I've used for years, but I was never sure how applicable it'd be to anyone else's PC, so I didn't post it. In fact, my old skin is badly in need of updating for my own PC, which is part of what this project is about!
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy
Contact:

Re: Argus Monitor plugin 1.0.0.0

Post by fonpaolo »

I've given a quick look at Argus Monitor, better add that, in order to use it, after a 30 days trial, you must pay a licence key.

Interesting.
User avatar
LeoDavidson
Posts: 8
Joined: January 31st, 2018, 12:28 am

Re: Argus Monitor plugin 1.0.0.0

Post by LeoDavidson »

fonpaolo wrote:I've given a quick look at Argus Monitor, better add that, in order to use it, after a 30 days trial, you must pay a licence key.
Good idea, I've added a note near the top.
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy
Contact:

Re: Argus Monitor plugin 1.0.0.0

Post by fonpaolo »

Thanks LeoDavidson. :D

It's interesting how you've managed to set your plugin very similarly to SpeedFan plugin, so, very little changes have to be done, very user friendly. :thumbup:
User avatar
tjhrulz
Developer
Posts: 267
Joined: October 13th, 2016, 1:28 am
Location: Earth
Contact:

Re: Argus Monitor plugin 1.0.0.0

Post by tjhrulz »

I also have to say excellent work Leo, especially on the included example skin and the included breakdown of all the measure types in your post.

The only thing I would maybe recommend doing is link us to the source for it if it is open source so I can fork and star it :p
User avatar
LeoDavidson
Posts: 8
Joined: January 31st, 2018, 12:28 am

Re: Argus Monitor plugin 1.0.0.0

Post by LeoDavidson »

Thanks. :D

The Argus Monitor dev asked that I not make it open-source, in return for them giving updates to the structure when needed. I guess they don't want a proliferation of things depending on their undocumented protocol (although IMO it might mean more people using their tool; but not my decision).

But maybe they would let me share the source with you, if you don't mind keeping it closed source. I don't know if that would be OK for you, or for them, but it'd be fine for me.
User avatar
tjhrulz
Developer
Posts: 267
Joined: October 13th, 2016, 1:28 am
Location: Earth
Contact:

Re: Argus Monitor plugin 1.0.0.0

Post by tjhrulz »

Oh it is in no way something I really needed or anything that is just my way of giving support (And occasionally I will help folks with build tweaks or that kind of thing to make everyones life easier). That and I just always like to keep track of the various cool plugins we have by the community for Rainmeter and then it lets me try to help address issues with the plugin if/when problems arise in the future and the original dev can't be reached but in your situation it is a little bit of a different story.
User avatar
LeoDavidson
Posts: 8
Joined: January 31st, 2018, 12:28 am

Re: Argus Monitor plugin 1.1.0.1

Post by LeoDavidson »

I've updated the root post with a new v1.1.0.1 of the plugin, which makes it work with the new Argus Monitor 4.0.2, while maintaining compatibility with 3.6.2.

The new plugin, along with changes made on the Argus Monitor side, now also supports lots of additional readings about the GPU (e.g. core clock speed, TDP draw), several new min/max values, and an increased number of drives, fans and temperatures.

The full list of changes is at the bottom of the root post.

Enjoy!

(Edit: There was a v1.1.0.0 briefly, but I found a problem and replaced it. Don't think anyone had downloaded it yet, so I've just done this edit to avoid bumping the thread again.)
Post Reply