<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: arogorn993-hue</title>
    <description>The latest articles on DEV Community by arogorn993-hue (@arogorn993hue).</description>
    <link>https://dev.to/arogorn993hue</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4024618%2F5fd0f379-150b-4292-9aea-35e13f991f19.png</url>
      <title>DEV Community: arogorn993-hue</title>
      <link>https://dev.to/arogorn993hue</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arogorn993hue"/>
    <language>en</language>
    <item>
      <title>I couldn't find how much heat my PC puts in the room, so I built a widget</title>
      <dc:creator>arogorn993-hue</dc:creator>
      <pubDate>Sat, 11 Jul 2026 00:49:19 +0000</pubDate>
      <link>https://dev.to/arogorn993hue/i-couldnt-find-how-much-heat-my-pc-puts-in-the-room-so-i-built-a-widget-45n7</link>
      <guid>https://dev.to/arogorn993hue/i-couldnt-find-how-much-heat-my-pc-puts-in-the-room-so-i-built-a-widget-45n7</guid>
      <description>&lt;p&gt;I game in a room that warms up fast. I could see CPU usage in Task Manager and watts in HWiNFO if I went looking.&lt;/p&gt;

&lt;p&gt;What I actually wanted was simpler:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How much heat is this machine putting into the air right now?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not in a spreadsheet. In plain language I could glance at while the PC was running.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gap
&lt;/h2&gt;

&lt;p&gt;Lots of tools show &lt;strong&gt;watts&lt;/strong&gt; and &lt;strong&gt;temperatures&lt;/strong&gt;. Almost none answer &lt;strong&gt;room heat&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BTU per hour&lt;/li&gt;
&lt;li&gt;Heat accumulated over a session&lt;/li&gt;
&lt;li&gt;Plain context like "about a quarter of a space heater"&lt;/li&gt;
&lt;li&gt;With ambient temp: still-air rise or rough exhaust CFM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The conversion is straightforward (&lt;code&gt;BTU/hr ≈ watts × 3.412&lt;/code&gt;), but I didn't want to do it in my head every time.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;HeatLens&lt;/strong&gt; — a small desktop widget built around room heat, not raw sensor dumps.&lt;/p&gt;

&lt;h2&gt;
  
  
  What HeatLens shows
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Total wattage&lt;/strong&gt; — what the PC is drawing now&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heat dissipation&lt;/strong&gt; — BTU/hr or kW&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session heat&lt;/strong&gt; — BTU or kWh since launch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max temperature&lt;/strong&gt; — hottest live sensor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend graphs&lt;/strong&gt; — watts, heat, and temp over time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CFM estimate&lt;/strong&gt; — with ambient temp: rough exhaust airflow for a +10 °F rise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Still-air rise&lt;/strong&gt; — how fast a reference room would warm with no ventilation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estimated power is labeled separately from measured sensors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the data comes from
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;LibreHardwareMonitor / Open Hardware Monitor (HTTP + WMI on Windows)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nvidia-smi&lt;/code&gt; for NVIDIA GPUs&lt;/li&gt;
&lt;li&gt;Linux RAPL / hwmon when exposed by the kernel&lt;/li&gt;
&lt;li&gt;Labeled fallbacks when direct power sensors aren't available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On Windows, best results: LibreHardwareMonitor with &lt;strong&gt;Remote Web Server&lt;/strong&gt; on port &lt;strong&gt;8085&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is not
&lt;/h2&gt;

&lt;p&gt;HeatLens is &lt;strong&gt;not&lt;/strong&gt; a replacement for a Kill-A-Watt at the wall.&lt;/p&gt;

&lt;p&gt;Software usually can't see monitor power, full PSU loss, or every platform rail. A plug-in meter is still the most accurate whole-system reading.&lt;/p&gt;

&lt;p&gt;HeatLens is for &lt;strong&gt;context&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"~400 W gaming → ~1,400 BTU/hr into the room"&lt;/li&gt;
&lt;li&gt;Session heat over an hour or two&lt;/li&gt;
&lt;li&gt;Rough CFM / still-air numbers as sanity checks — not duct design&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Things I learned building it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sensor coverage is messy.&lt;/strong&gt; Different backends, missing rails, and estimates that need clear labeling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance matters while gaming.&lt;/strong&gt; Early builds polled too often and redrew the whole UI every sample. Newer versions throttle updates, offer &lt;strong&gt;Low impact mode&lt;/strong&gt;, and skip redundant scans when Libre HTTP is already working.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Units matter.&lt;/strong&gt; Imperial (°F, BTU) and metric (°C, kW, kWh) — both in Options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Export helps.&lt;/strong&gt; Excel/CSV session logs with configurable columns for longer monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python + Tkinter&lt;/li&gt;
&lt;li&gt;PyInstaller for portable Windows / Linux / macOS builds&lt;/li&gt;
&lt;li&gt;MIT license&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/arogorn993-hue/HeatLens" rel="noopener noreferrer"&gt;https://github.com/arogorn993-hue/HeatLens&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Downloads:&lt;/strong&gt; &lt;a href="https://github.com/arogorn993-hue/HeatLens/releases" rel="noopener noreferrer"&gt;https://github.com/arogorn993-hue/HeatLens/releases&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to try it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Windows (portable):&lt;/strong&gt; Download &lt;code&gt;HeatLens.exe&lt;/code&gt; from Releases. SmartScreen may warn on unsigned exes — More info → Run anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; &lt;code&gt;chmod +x HeatLens &amp;amp;&amp;amp; ./HeatLens&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From source:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/arogorn993-hue/HeatLens.git
&lt;span class="nb"&gt;cd &lt;/span&gt;HeatLens
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python hardware_heat_widget.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;While gaming:&lt;/strong&gt; Options → &lt;strong&gt;Low impact mode&lt;/strong&gt;, or set sensor refresh to 5–10 seconds. &lt;strong&gt;Compact&lt;/strong&gt; view reduces UI work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I'm sharing it
&lt;/h2&gt;

&lt;p&gt;I built this because I looked for it and couldn't find it. If you ever stare at wattage and think &lt;em&gt;"okay, but how much is that heating my room?"&lt;/em&gt; — maybe it saves you the same search.&lt;/p&gt;

&lt;p&gt;Questions and ideas: &lt;a href="https://github.com/arogorn993-hue/HeatLens/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;HeatLens is a hobby project. Treat sensor readings as context, not gospel.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>showdev</category>
      <category>hardware</category>
    </item>
  </channel>
</rss>
