<?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: Kyle Katarn</title>
    <description>The latest articles on DEV Community by Kyle Katarn (@kylejkatarn).</description>
    <link>https://dev.to/kylejkatarn</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%2F4241100%2F72473b56-a78d-4fe2-b778-2c4a89046763.png</url>
      <title>DEV Community: Kyle Katarn</title>
      <link>https://dev.to/kylejkatarn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kylejkatarn"/>
    <language>en</language>
    <item>
      <title>Your Thermostat Is Wearing a Blindfold — Here's How I Taught It to Look Outside</title>
      <dc:creator>Kyle Katarn</dc:creator>
      <pubDate>Thu, 12 Nov 2026 14:42:05 +0000</pubDate>
      <link>https://dev.to/kylejkatarn/your-thermostat-is-wearing-a-blindfold-heres-how-i-taught-it-to-look-outside-1gdh</link>
      <guid>https://dev.to/kylejkatarn/your-thermostat-is-wearing-a-blindfold-heres-how-i-taught-it-to-look-outside-1gdh</guid>
      <description>&lt;p&gt;There's a moment I kept running into that felt faintly absurd. I'd walk through the house, feel perfectly comfortable, and notice the A/C was running. Too often to be coincidence.&lt;/p&gt;

&lt;p&gt;I didn't fully understand the problem, but I knew something was off. It being 2026, I decided to consult my new advisor in all things — AI — and see what we could figure out. I wasn't trying to solve anything in particular; I just knew things should be better.&lt;/p&gt;

&lt;p&gt;As we dug in, the picture got clearer. The thermostat wasn't just making decisions that felt wrong; it was burning energy it didn't need to, in ways that were entirely predictable if you just looked outside. It became obvious there was an efficiency problem.&lt;/p&gt;

&lt;p&gt;So my advisor and I set out to teach the thermostat to look out the window.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem: your thermostat is wearing a blindfold
&lt;/h2&gt;

&lt;p&gt;A standard thermostat knows two things: what temperature it is inside, and what temperature you want it to be. That's it. No idea what's happening outside.&lt;/p&gt;

&lt;p&gt;Think of it like a driver who only watches the speedometer. Too fast, they brake. Too slow, they accelerate. They never look at the road — never notice they're going downhill and could just coast.&lt;/p&gt;

&lt;p&gt;Your thermostat is that driver. And it causes two real problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem 1: It runs when it doesn't need to
&lt;/h3&gt;

&lt;p&gt;On a mild evening when it's cooler outside than inside, your house will naturally drift toward your target temperature. Heat flows from warm to cool — the outdoors does the work for free.&lt;/p&gt;

&lt;p&gt;But your thermostat doesn't know that. So it fires up the A/C and races the weather to your setpoint, spending energy on something that was going to happen anyway.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem 2: It overshoots — and sometimes that's wasteful
&lt;/h3&gt;

&lt;p&gt;Thermostats don't stop exactly at your setpoint. They run a little past it, by design. If the compressor stopped the instant it hit your target, the house would drift past almost immediately and the compressor would kick right back on — and cycling a compressor too frequently is hard on the equipment. Like flooring it and braking over and over in stop-and-go traffic.&lt;/p&gt;

&lt;p&gt;So the thermostat builds in a buffer. But whether that overshoot is useful depends entirely on what the weather is doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cool outside?&lt;/strong&gt; The house won't warm back up quickly. That extra cooling just sits there — you're colder than you asked for, for no reason.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Warm outside?&lt;/strong&gt; The house will naturally drift back up, so the extra cool gives you a head start on the next cycle. That's actually efficient.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same behavior. Completely opposite outcomes depending on one thing: the outdoor temperature.&lt;/p&gt;




&lt;h2&gt;
  
  
  The fix: let physics do more of the work
&lt;/h2&gt;

&lt;p&gt;The solution isn't complicated. It's just about asking a question your thermostat never asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"What's the weather doing, and does that change what I should do right now?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I built two behaviors around that question.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behavior 1: Skip the run if the weather will handle it
&lt;/h3&gt;

&lt;p&gt;Imagine you need to slow down while driving. You &lt;em&gt;could&lt;/em&gt; brake — or you could just lift your foot and coast, if the road is sloping and there's room to spare.&lt;/p&gt;

&lt;p&gt;Same idea. If the house is already drifting toward my target on its own, there's no need to run the HVAC at all. Just wait.&lt;/p&gt;

&lt;p&gt;So I built logic that estimates: "based on how the house is moving right now, will it reach my setpoint on its own within 90 minutes?" If yes — and the outdoor temperature supports it — the system places a temporary hold and lets the house coast.&lt;/p&gt;

&lt;p&gt;The key detail: the moment the passive drift stalls or reverses, the hold is released and normal HVAC resumes. This isn't a bet left to play out unsupervised — it's actively monitored and cancelled the instant it starts losing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behavior 2: Stop at the setpoint — but only when it makes sense
&lt;/h3&gt;

&lt;p&gt;This one is subtler, and the more interesting idea.&lt;/p&gt;

&lt;p&gt;The thermostat's overshoot isn't always bad. The question is whether the outdoors will undo it for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cooling, and it's warm outside?&lt;/strong&gt; The outdoor air will slowly push the temperature back up to your setpoint. The overshoot is a gift — it delays the next A/C cycle. Let it happen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cooling, and it's cool outside?&lt;/strong&gt; Nothing's going to warm the house back up. The overshoot just means you're sitting in a room colder than you asked for. Cut it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rule in plain English: &lt;strong&gt;allow the overshoot when the weather will recover it; stop it when the weather won't.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  A real example from the build
&lt;/h2&gt;

&lt;p&gt;One evening mid-build, the house was in cooling mode. Indoor temp: 24.7°C, setpoint: 24.8°C — and the compressor was still running, pushing the house past what I'd asked for. Textbook overshoot.&lt;/p&gt;

&lt;p&gt;The system caught it. Outdoor forecast: 24–25°C — roughly the same as indoors, meaning the outdoor air wasn't going to push the temperature back up. The overshoot would just sit there as wasted overcooling. So the system placed a hold, cut the compressor, and let the house settle.&lt;/p&gt;

&lt;p&gt;A complete, observable cycle of the logic above: overshoot detected, outdoor temperature checked, decision made. A standard thermostat would have kept running and had no framework for deciding whether that was the right call. This one did.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this doesn't solve (and why that's fine)
&lt;/h2&gt;

&lt;p&gt;A few honest caveats:&lt;/p&gt;

&lt;p&gt;The passive drift rate — how fast the house moves on its own — takes a few days to learn, and it only measures cleanly when the HVAC isn't running. Early estimates are rough.&lt;/p&gt;

&lt;p&gt;The outdoor temperature source matters more than you'd think. During testing, my weather forecast and the thermostat's own weather feed disagreed by nearly 3°C — and disagreed on &lt;em&gt;direction&lt;/em&gt;, which would have flipped the decision entirely. Picking which reading to trust is a real call, not an afterthought.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it solved — and what it didn't
&lt;/h2&gt;

&lt;p&gt;A standard thermostat reacts to one thing: the gap between where the indoor temperature is and where you want it. Adding outdoor awareness makes it meaningfully smarter about when to run, when to stop, and when to just wait. The efficiency gains are real and observable.&lt;/p&gt;

&lt;p&gt;But here's what I kept coming back to: my original instinct wasn't really about efficiency. It was about the feeling of the HVAC running when the house already felt fine. And I've noticed something that efficiency alone doesn't explain — 23°C feels different depending on what's happening outside. It feels closer to warm on a 30° day and closer to cool on a 17° day, even with identical indoor air temperature. Hitting the setpoint doesn't always mean hitting comfort.&lt;/p&gt;

&lt;p&gt;That's not an efficiency problem. It's a measurement problem — the thermostat is tracking the wrong thing.&lt;/p&gt;

&lt;p&gt;In the next post, I'll dig into that: what the thermostat is missing, why outdoor conditions explain the gap, and a second attempt at building something that goes after the comfort problem more directly.&lt;/p&gt;

</description>
      <category>homeautomation</category>
      <category>iot</category>
      <category>smarthome</category>
    </item>
  </channel>
</rss>
