<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Windows Temperature Monitoring Solution]]></title><description><![CDATA[<p dir="auto">Hi Guys,</p>
<p dir="auto">I thought some of you might find this useful, I've been working on a method to get temperature monitoring on our windows machines and this is working really well.</p>
<p dir="auto">First you'll need to install Open Hardware Monitor on the machine you wish to monitor.<br />
(<a href="http://openhardwaremonitor.org/downloads/" rel="nofollow ugc">http://openhardwaremonitor.org/downloads/</a>)<br />
Once installed this will collect temperature, voltage, fan speed etc (depending on your hardware sensors) and make all this information available via WMI  <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:1.4em;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">You will need the WMI Subagent in your agent config: <code>SubAgent = wmi.nsm</code></p>
<p dir="auto">You will then need to create some DCI's to collect the information, for example:</p>
<pre><code>WMI.Query(root\OpenHardwareMonitor,SELECT * FROM Sensor WHERE Instanceid=3849, Value)
</code></pre>
<p dir="auto"><img src="http://i.imgur.com/1QGLxuV.png" alt="" class="img-markdown  img-fluid" /></p>
<p dir="auto">The value of InstanceID can be found using another tool, WMI Explorer. (<a href="https://wmie.codeplex.com/" rel="nofollow ugc">https://wmie.codeplex.com/</a>)</p>
<p dir="auto">With WMI Explorer connect to the machine running Open Hardware Monitor, goto the root\OpenHardwareMonitor namespace, select the Sensor class and find the instance value of the Monitor you wish to collect information on.</p>
<p dir="auto"><img src="http://i.imgur.com/WARp3bq.png" alt="" class="img-markdown  img-fluid" /></p>
<p dir="auto">I have been trying to make some WMI queries that will work from templates.  By using a more complex SQL query to filter the results without having to lookup the InstanceID, I've had some success with the following example.</p>
<pre><code>WMI.Query(root\OpenHardwareMonitor,SELECT * FROM Sensor WHERE Name LIKE "'%CPU%'" AND SensorType="'Temperature'" AND Index=0 , Value)
</code></pre>
<p dir="auto">Hope you find this useful,</p>
]]></description><link>https://forum.netxms.org/topic/3761/windows-temperature-monitoring-solution</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 13:33:39 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/3761.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 May 2015 14:03:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Windows Temperature Monitoring Solution on Thu, 13 Aug 2015 10:38:14 GMT]]></title><description><![CDATA[<p dir="auto">I've used this solution in past and it works very well.<br />
Actually I've added an ExternalList, so the available sensors can be discovered by instance discovery.</p>
<p dir="auto"><img src="http://i.imgur.com/3WIBnam.png" alt="" class="img-markdown  img-fluid" /></p>
<p dir="auto">Line in Agent config file:</p>
<pre><code>ExternalList = OpenHardwareMonitor.Sensors:powershell -NonInteractive -Command "&amp; { get-wmiobject -namespace root\OpenHardwareMonitor -query 'select * from Sensor' | foreach { $$_.InstanceId } }"
</code></pre>
<p dir="auto"><img src="http://i.imgur.com/9TrEwmt.png" alt="" class="img-markdown  img-fluid" /></p>
<pre><code>WMI.Query(root\OpenHardwareMonitor,"select * from Sensor where InstanceId='{instance}'",Value)
</code></pre>
<p dir="auto"><img src="http://i.imgur.com/2fwUwdV.png" alt="" class="img-markdown  img-fluid" /></p>
<pre><code>SensorType 	= AgentReadParameter($node, "WMI.Query(root\OpenHardwareMonitor,\"select * from Sensor where InstanceId='" . $1 . "'\",SensorType)");
Name 		= AgentReadParameter($node, "WMI.Query(root\OpenHardwareMonitor,\"select * from Sensor where InstanceId='" . $1 . "'\",Name)");
Identifier 	= AgentReadParameter($node, "WMI.Query(root\OpenHardwareMonitor,\"select * from Sensor where InstanceId='" . $1 . "'\",Identifier)");

return %(SensorType == "Temperature", $1, Name . "  [" . Identifier . "]");
</code></pre>
]]></description><link>https://forum.netxms.org/post/17542</link><guid isPermaLink="true">https://forum.netxms.org/post/17542</guid><dc:creator><![CDATA[flytech-ben]]></dc:creator><pubDate>Thu, 13 Aug 2015 10:38:14 GMT</pubDate></item></channel></rss>