title: How do i get the cpu fan speed using the OpenHardwareMonitor lib?
body: <p>I referenced my project with OpenHardwareMonitor.dll
  And then created new class with this code:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using OpenHardwareMonitor.Hardware;
  using System.Diagnostics;
  using DannyGeneral;
  using System.Windows.Forms;
  using System.Threading;
  
  namespace HardwareMonitoring
  {
      class Core
      {
          public static Form1 form1;
  
          private static List&lt;float?&gt; cpuSensorValues = new List&lt;float?&gt;();
          private static List&lt;float?&gt; gpuSensorValues = new List&lt;float?&gt;();
          Computer myComputer;
          Computer computer;
  
          public Core(Form1 f)
          {
              form1 = f;
              myComputer = new Computer();
              myComputer.CPUEnabled = true;
              myComputer.Open();
              computer = new Computer();
              computer.Open();
              computer.GPUEnabled = true;
          }
  
          public float? cpuView(bool pause , CpuTemperature cpuTemp , Form1 f1 , List&lt;string&gt; myData , float? myCpuTemp , Button b1)
          {
              try
              {
                  if (pause == true)
                  {
                  }
                  else
                  {
                      Trace.WriteLine("");
                      foreach (var hardwareItem in myComputer.Hardware)
                      {
                          if (hardwareItem.HardwareType == HardwareType.CPU)
                          {
                              hardwareItem.Update();
                              foreach (IHardware subHardware in hardwareItem.SubHardware)
                                  subHardware.Update();
  
                              foreach (var sensor in hardwareItem.Sensors)
                              {
                                  cpuTemp.SetValue("sensor", sensor.Value.ToString());
                                  if (sensor.SensorType == SensorType.Fan)//Temperature)
                                  {
                                      sensor.Hardware.Update();
                                      cpuTemp.GetValue("sensor", sensor.Value.ToString());
                                      if (!f1.IsDisposed)
                                      {
                                          Thread.Sleep(1000);
                                          f1.Invoke(new Action(() =&gt; myData.Add("Cpu Temeprature --- " + sensor.Value.ToString())));
                                      }
                                      myCpuTemp = sensor.Value;
                                      //if (sensor.Value &gt; 60)
                                      //{
                                          cpuSensorValues.Add(sensor.Value);
                                          if (cpuSensorValues.Count == 300)
                                          {
                                              float a = ComputeStats(cpuSensorValues).Item1;
                                              float b = ComputeStats(cpuSensorValues).Item2;
                                              float c = ComputeStats(cpuSensorValues).Item3;
                                              Logger.Write("********************************");
                                              Logger.Write("CPU Minimum Temperature Is ===&gt; " + a);
                                              Logger.Write("CPU Maximum Temperature Is ===&gt; " + b);
                                              Logger.Write("CPU Average Temperature Is ===&gt; " + c);
                                              Logger.Write("********************************" + Environment.NewLine);                                            
                                              cpuSensorValues = new List&lt;float?&gt;();
                                          }
                                          b1.Enabled = true;
                                      //}
                                      break;
                                  }
                              }
                          }
                      }
                  }
              }
              catch(Exception err)
              {
                  Logger.Write("There was an exception: " + err.ToString());
              }
              return myCpuTemp;
          }
  </code></pre>
  
  <p>On the line:</p>
  
  <pre><code>if (sensor.SensorType == SensorType.Fan)//Temperature)
  </code></pre>
  
  <p>If i'm using the Temperature it's working fine and showing the temperature.
  But once i change it to Fan the SensorType never == to the Fan</p>
  
  <p>And if i'm running the original openhardwaremonitor program it's showing all the stuff even the cpu fan speed.</p>
  
  <p>So why in my code it's not working ?</p>
  
  <p>EDIT**</p>
  
  <p>Forgot to mention that in Form1 at the top i have:</p>
  
  <pre><code>private CpuTemperature cpu;
  </code></pre>
  
  <p>Then in the constructor:</p>
  
  <pre><code>cpu = new CpuTemperature(new Dictionary&lt;string, string&gt;
              {
                  { "/intelcpu/0/temperature/0/values", "H4sIAAAAAAAEAOy9B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iu6//MH37x79i9/+NX6N3/TJm9/5f/01fw1+fosnv+A/+OlfS37/jZ/s/Lpv9fff6Ml/NTef/yZPnozc5679b+i193//TQZ+/w2Dd+P9/sZeX/67v/GTf/b3iP3u4/ObBL//73+i+f039+D8Zk/+xz/e/P6beu2TQZju8yH8f6OgzcvPv/U3/Rb8+z/0f/9b/+yfaOn8079X6fr6Cws7ln/iHzNwflPv99/wyS/+xY4+v/evcJ+733+jJ5//Cw7/4ndy9Im3+U2e/Fbnrk31C93vrt/fyPvdb+N//hsF7/4/AQAA//9NLZZ8WAIAAA==" },
                  { "/intelcpu/0/load/0/values", "H4sIAAAAAAAEAOy9B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iu6//MH37x79i9++mpwcv/md/9df89egZ/xX/ym/5y/4D37618Lv7ya//u+58+u+5d9/z7/5t/w9/6u5fP5bH/6av+eTkXyefXxp26ONaf/v/dG/sf39D/rvnv4e5vc/0IP56/waK/vuHzf5I38P8/tv+mv8Rbb9f0pwTF9/zr/1X9vP/8I//+/6Pf7Z30N+/zdf/HX29zd/859q4aCNP5b//U+U3/+7f+zXOjZwfqvDX/V7/o9/vPz+a1G/pv0f+fGlhfk7eZ//N3/0v28//5X0u/n8Cxq7+f1X/tHft20A5x8a/W5/02+BP36Nf+j/nv8XfzrT+c2//Ob4p3+vktvUhNs/+xcWikP6e/4T/5jS5M8/sL8vP/5ff49f/Ivl9//sHzv6PX/vXyG//9R/94/9HuZ34P/5vyC//3W/5e/1exa/k+Bw4bUBnU2bP4Xg/1bn0uafeTH6PatfKL//N3/0t2y/gG9+/8+IzqYNxmU+/+jwX7afY67/nwAAAP//GYSA31gCAAA=" },
              });
  </code></pre>
  
  <p>Maybe there should be something like this for the FAN of the cpu but i couldn't find any.
  So i wonder how they use it in the original openhwardwaremonitor.</p>
  
  <p>Tried to search in the source code : <a href="http://open-hardware-monitor.googlecode.com/svn/trunk/GUI/" rel="noreferrer">http://open-hardware-monitor.googlecode.com/svn/trunk/GUI/</a></p>
  
  <p>But i didn't find how to get the cpu/gpu fans speed.</p>