It is currently April 12th, 2021, 4:28 am

Using HWiNFO with Rainmeter

Plugins and Addons popular with the Community
User avatar
SilverAzide
Rainmeter Sage
Posts: 1203
Joined: March 23rd, 2015, 5:26 pm

Re: Using HWiNFO with Rainmeter

Post by SilverAzide »

Something for Martin to check: "Total Host Writes" = 3,350,495,095 GB ??? Is that really correct? It would take me 2 lifetimes to write that much data.
Gadgets Wiki GitHub More Gadgets...
User avatar
jsmorley
Developer
Posts: 21614
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Using HWiNFO with Rainmeter

Post by jsmorley »

SilverAzide wrote: March 18th, 2021, 1:28 pm Success! It looks like build 4412 works!

Some observations, though, which confused me at first. It seems like the issue with fans appearing/not appearing has been handled; but it seems like HWiNFO is acting as if the "Show all fans (including stopped or not present" option is enabled even if it is unchecked. I say this because my fans always show now... I can't get them to NOT show. This kind of broke my testing methodology, so I went for the brute force mode...

I plugged in an external hard drive and enabled the sensor entries, like so (indexes 12-19):

Code: Select all

    Index Label                     Value
    ===== ========================= ===========
    0     Core 0 Clock              3,191.4 MHz
    1     Core 1 Clock              3,490.6 MHz
    2     Core 2 Clock              3,490.6 MHz
    3     Core 3 Clock              3,490.6 MHz
    4     Core 0                    52 °C
    5     Core 1                    52 °C
    6     Core 2                    50 °C
    7     Core 3                    49 °C
    8     Core 0 Distance to TjMAX  48 °C
    9     Core Max                  52 °C
    10    CPU                       0 RPM
    11    GPU1                      0 RPM
    12    Drive Temperature         22 °C
    13    Total Host Writes         3,350,495,095 GB
    14    Total Host Reads          1,282 GB
    15    Total Activity            0.0 %
    16    Read Rate                 0.000 MB/s
    17    Write Rate                0.000 MB/s
    18    Read Total                59 MB
    19    Write Total               0 MB
    20    GPU Temperature           55.4 °C
    21    GPU Core Voltage          0.837 V
    22    GPU Clock                 135.0 MHz
    23    GPU Memory Clock          162.0 MHz
    24    GPU Core Load             5.0 %
    25    GPU Memory Usage          8.8 %
    26    GPU Memory Allocated      271 MB
    27    Battery Voltage           17.120 V
    28    Remaining Capacity        92.056 Wh
    29    Charge Level              100.0 %
Then I exited HWiNFO and unplugged the drive, then restarted HWiNFO. Here is the good news:

Code: Select all

    Index Label                     Value
    ===== ========================= ===========
    0     Core 0 Clock              3,192.2 MHz
    1     Core 1 Clock              3,092.4 MHz
    2     Core 2 Clock              3,291.9 MHz
    3     Core 3 Clock              3,291.9 MHz
    4     Core 0                    53 °C
    5     Core 1                    52 °C
    6     Core 2                    52 °C
    7     Core 3                    51 °C
    8     Core 0 Distance to TjMAX  47 °C
    9     Core Max                  53 °C
    10    CPU                       0 RPM
    11    GPU1                      0 RPM
    20    GPU Temperature           57.7 °C
    21    GPU Core Voltage          0.831 V
    22    GPU Clock                 135.0 MHz
    23    GPU Memory Clock          162.0 MHz
    24    GPU Core Load             2.0 %
    25    GPU Memory Usage          9.2 %
    26    GPU Memory Allocated      281 MB
    27    Battery Voltage           17.120 V
    28    Remaining Capacity        92.056 Wh
    29    Charge Level              100.0 %
Note the "hole" in the index sequence. Indexes 20 onward have been maintained. This is exactly what we need for Rainmeter, I think. Any skin registry measures pointing at the missing indexes will just get zeros.
Sounds ok to me! Thanks so much for following through on this.
User avatar
jsmorley
Developer
Posts: 21614
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Using HWiNFO with Rainmeter

Post by jsmorley »

SilverAzide wrote: March 18th, 2021, 1:32 pm Something for Martin to check: "Total Host Writes" = 3,350,495,095 GB ??? Is that really correct? It would take me 2 lifetimes to write that much data.
I assume that is an SSD drive?
User avatar
SilverAzide
Rainmeter Sage
Posts: 1203
Joined: March 23rd, 2015, 5:26 pm

Re: Using HWiNFO with Rainmeter

Post by SilverAzide »

jsmorley wrote: March 18th, 2021, 1:34 pm I assume that is an SSD drive?
It's actually a bare 2TB 3.5" hard drive in a USB enclosure.
Gadgets Wiki GitHub More Gadgets...
User avatar
jsmorley
Developer
Posts: 21614
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Using HWiNFO with Rainmeter

Post by jsmorley »

SilverAzide wrote: March 18th, 2021, 1:35 pm It's actually a bare 2TB 3.5" hard drive in a USB enclosure.
Can you give me the sensor and label name so I can pass it along to Martin?
User avatar
Youkai1977
Posts: 137
Joined: October 31st, 2018, 4:11 pm
Location: Germany

Re: Using HWiNFO with Rainmeter

Post by Youkai1977 »

Excerpt from the HWiNFO -> Beyond the Basics
It might occur to you that "writing" to the Windows Registry every 2 seconds might be working your hard drive a bit. This really isn't the case. Windows is very clever about how it manages the Registry and changes are actually just stored in a memory copy of the hive, and only written to the physical disk periodically, and / or when you shut down Windows. This approach is very easy indeed on your hard drive.
Well, it sounds to me that the hard drive is NOT being accessed all the time.
BUT, that's exactly what happens (at least on my system) ...Win10 Pro 64Bit...
The drive indicator LED is about to pop out of my case.
Every 1-2 Sec I see write-read accesses O.O

In this context, I notice that the update rate of the meter always stays at 1000ms (1 second), no matter what you set as UPDATE in the gating [Rainmeter].
That is somehow totally stupid. So far I have worked WITHOUT 3rd party software to read out my CPU data. The whole thing in UPDATE=500 in the [Rainmeter]. Was really great.
But now that I just revise my skins and have seen that HWiNFO from version 7.xx now works differently, I'm actually inclined to use this program to have a few more values for my CPU skin.
But if it already starts like this ... is somehow stupid ...
Also not nice is that I for my roundline meter now the values of the measures are probably output differently.

EXAMPLE:
According to the text in the string meter: CPU load at 5.5%
But the roundline-meter shows as if the CPU-load is at 70%.

Ok, the latter I (apparently) got a handle on, by setting ...

MinValue=0
MaxValue=100

... in the corresponding measure.
But everything else ....

In short, am I missing something here, or is HWiNFO out of the question with my wishes, like UPDATE=500?
User avatar
jsmorley
Developer
Posts: 21614
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Using HWiNFO with Rainmeter

Post by jsmorley »

Youkai1977 wrote: March 18th, 2021, 1:39 pm Excerpt from the HWiNFO -> Beyond the Basics
Well, it sounds to me that the hard drive is NOT being accessed all the time.
BUT, that's exactly what happens (at least on my system) ...Win10 Pro 64Bit...
The drive indicator LED is about to pop out of my case.
Every 1-2 Sec I see write-read accesses O.O

In this context, I notice that the update rate of the meter always stays at 1000ms (1 second), no matter what you set as UPDATE in the gating [Rainmeter].
That is somehow totally stupid. So far I have worked WITHOUT 3rd party software to read out my CPU data. The whole thing in UPDATE=500 in the [Rainmeter]. Was really great.
But now that I just revise my skins and have seen that HWiNFO from version 7.xx now works differently, I'm actually inclined to use this program to have a few more values for my CPU skin.
But if it already starts like this ... is somehow stupid ...
Also not nice is that I for my roundline meter now the values of the measures are probably output differently.

EXAMPLE:
According to the text in the string meter: CPU load at 5.5%
But the roundline-meter shows as if the CPU-load is at 70%.

Ok, the latter I (apparently) got a handle on, by setting ...

MinValue=0
MaxValue=100

... in the corresponding measure.
But everything else ....

In short, am I missing something here, or is HWiNFO out of the question with my wishes, like UPDATE=500?
By default HWiNFO "polls" the sensors and writes to the Registry every 2000ms or every 2 seconds. What you set that to will have no impact at all on how Rainmeter updates. I personally would NOT use HWiNFO to measure CPU usage, and even if I did, I wouldn't expect it to match up with any other way, like a CPU measure or a UsageMonitor measure, since the CPU usage changes constantly, and "when" you ask for the measurement is just a snapshot in time.
User avatar
SilverAzide
Rainmeter Sage
Posts: 1203
Joined: March 23rd, 2015, 5:26 pm

Re: Using HWiNFO with Rainmeter

Post by SilverAzide »

Youkai1977 wrote: March 18th, 2021, 1:39 pm Well, it sounds to me that the hard drive is NOT being accessed all the time.
BUT, that's exactly what happens (at least on my system) ...Win10 Pro 64Bit...
The drive indicator LED is about to pop out of my case.
Every 1-2 Sec I see write-read accesses O.O
I suspect what you may be seeing is HWiNFO monitoring the drive. It does this to me too. Simply go into the Sensors screen and right-click the drive and select the option to disable monitoring. You may need to do this twice (for the S.M.A.R.T. sensor and the drive itself). Unless you want drive temperatures, you don't need HWiNFO to get drive stats, you can use PerfMon (via UsageMonitor measures) as an alternative.
Gadgets Wiki GitHub More Gadgets...
User avatar
Youkai1977
Posts: 137
Joined: October 31st, 2018, 4:11 pm
Location: Germany

Re: Using HWiNFO with Rainmeter

Post by Youkai1977 »

jsmorley wrote: March 18th, 2021, 1:42 pm By default HWiNFO "polls" the sensors and writes to the Registry every 2000ms or every 2 seconds. What you set that to will have no impact at all on how Rainmeter updates. I personally would NOT use HWiNFO to measure CPU usage, and even if I did, I wouldn't expect it to match up with any other way, like a CPU measure or a UsageMonitor measure, since the CPU usage changes constantly, and "when" you ask for the measurement is just a snapshot in time.
Ok, that sounds to me that I will write my CPU meter as usual with Rainmeter means.
Possibly that I only read out the temperature and is good.
My goal is to write a performance optimized suite. Which runs also on weaker systems beautifully round and this not unnecessarily loads.

Thus it remains probably with the fact that 3rd Party software remains banned with me. Too bad ... :-(
I suspect what you may be seeing is HWiNFO monitoring the drive. It does this to me too. Simply go into the Sensors screen and right-click the drive and select the option to disable monitoring. You may need to do this twice (for the S.M.A.R.T. sensor and the drive itself). Unless you want drive temperatures, you don't need HWiNFO to get drive stats, you can use PerfMon (via UsageMonitor measures) as an alternative.
Yes that would be a possibility. However, I also plan to revise my HDD skin and then use HWiNFO its read values.
But if that ends up writing/reading in the background all the time, that's not really an option for me.

Well, would have been nice.

Ok, but now I am also on the road ... Dates, dates ... :(
Last edited by Youkai1977 on March 18th, 2021, 2:05 pm, edited 1 time in total.
User avatar
jsmorley
Developer
Posts: 21614
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Using HWiNFO with Rainmeter

Post by jsmorley »

Here is a more refined version of my skin / Lua to read and display the HWiNFO registry entries in your default browser.

Just run this skin, and it will create the HTML, load it in your browser, and exit the skin.

HWiNFO_Reg_1.0.rmskin

HWiNFO_Reg.png


HWiNFO_Reg.ini:

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
OnRefreshAction=[!CommandMeasure MeasureQuery "Run"]

[Variables]

[MeasureScript]
Measure=Script
ScriptFile=HWiNFORegistryReader.lua

[MeasureQuery]
Measure=Plugin
Plugin=RunCommand
Parameter=reg query HKEY_CURRENT_USER\SOFTWARE\HWiNFO64\VSB
OutputType=ANSI
RegExpsubstitute=1
Substitute="ø":"°","    Color.*\n":""
FinishAction=[!CommandMeasure MeasureScript "ParseOutput('#CURRENTSECTION#')"]
DynamicVariables=1

[MeterDummy]
Meter=String
HWiNFORegistryReader.lua:

Code: Select all

-- Based on code provided by raiguard

function ParseOutput(measureName)
	local raw = SKIN:GetMeasure(measureName):GetStringValue()
	local fileName = SKIN:GetVariable('CURRENTPATH')..'output.html'
  
  -- Create document header
	local output = 
	[[<!DOCTYPE HTML>
	<html lang="en-US">
	<head>
	<title>HWiNFO Registry Reader</title>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
	<style>
	body {
		font-family: Sans-serif;
		font-size: 100%;
		font-color: #2F2F2F;
		background-color: #E1E3E6;
	}
	td {
		padding: 5px;
	}
	th {
		background-color: #F7BC81;
		color: #2F2F2F;
		padding: 10px 0px 10px 0px;
	}
	table {
		table-layout: fixed;
		width: 100%;
		background-color: #FAFAFA;
		box-shadow: 0 0 15px 3px #9E9E9E;
	}
	table, th, td {
		border-style: solid;
		border-width: 1px;
		border-color: #2F2F2F;
		border-collapse: collapse;    
		word-wrap: break-word;
	}
	div {
		width: 95%;
		position: absolute;
		top:0;
		bottom: 0;
		left: 0;
		right: 0;
		margin: auto;
	}  
	</style>
	</head>
	<body>
	<div>
	<br>
	<table>
	<tr>
	<th style="width: 5%;">Index</th>
	<th style="width: 25%;">Sensor</th>
	<th style="width: 25%;">Label</th>
	<th style="width: 10%;">Value</th>
	<th style="width: 10%;">ValueRaw</th>
	</tr>]]

	-- Match over each group as a whole
	local match_string = '    Sensor(%d-)    .-    (.-)\n    .-    .-    (.-)\n    .-    .-    (.-)\n    .-    .-    (.-)\n'
	for index, sensor, label, value, value_raw in raw:gmatch(match_string) do
		output = output
		..'<tr><td style="width: 5%;">'..index..'</td>'
		..'<td style="width: 25%;">'..sensor..'</td>'
		..'<td style="width: 25%;">'..label..'</td>'
		..'<td style="width: 10%;">'..value..'</td>'
		..'<td style="width: 10%;">'..value_raw..'</td></tr>\n'
	end

	-- Create document footer
	output = output .. '</table><br></div></body></html>'

	-- Write to the file
	local file = io.open(fileName, 'w')
	file:write(output)
	file:close()
  
	-- Open the page in the browser

	SKIN:Bang(fileName)
	SKIN:Bang('!DeactivateConfig')
  
end
You do not have the required permissions to view the files attached to this post.