Home Assistant · local control
Controlling a Smart Thermostat Without Its App
A Wi-Fi thermostat, controlled over my own network with Home Assistant instead of the maker's app and cloud account. Here's how I set it up and automated it.
My thermostat has Wi-Fi. I wanted to control it from my phone and set a schedule, so I installed the maker's app on Android and tried to add it. It failed: the app said the device was already registered to another account. That raised a better question. Did I need the maker's app and its cloud at all?
Later I asked Claude about it, and learned I didn't. The thermostat also speaks Apple HomeKit, which works over the local network, and you can reset just the HomeKit pairing from a menu on the device. That reset happens on the device itself; no account is involved. The plan: reset the pairing, then adopt the thermostat into something I run myself.
Getting it paired, then unpaired
I first set it up on an iPad, through Apple Home, to confirm it worked. It did. But Apple Home has a catch: once the thermostat is paired to Apple, nothing else can use it. When I removed it from Apple Home to free it up, it forgot my Wi-Fi and dropped back to its setup mode. I was stuck in a loop: paired meant locked to Apple, unpaired meant off my network.
The maker's app turned out to have exactly one use. Even though it still failed at the end with the "another account" error, it joined the thermostat to my Wi-Fi before that check ran. I let the app push the Wi-Fi settings, ignored the failure, and reset only the HomeKit pairing on the device. This time the Wi-Fi stuck, because it had come from the app and not from Apple. The thermostat was now on my network and unpaired, ready to adopt. After that one-time Wi-Fi setup, the app isn't needed for anything.
Onto my own system
I run Home Assistant on my computer. It's open-source, runs locally, and speaks HomeKit, so it found the thermostat right away. I entered the setup code from the screen and it was in. From then on the thermostat answered to my own machine, on my own network, with no outside account in the loop.
To use it from my phone and from the rest of the house, I shared it back out through Home Assistant's HomeKit bridge. That puts one control point in front of everything: Home Assistant itself on the computer, Apple Home on our Apple devices, and Google Home through Matter. The Google side is set up but not finished: Google needs a supported hub to add any Matter device, and I don't have one yet. Apple and the computer work today.
Automations, and the graph
With the thermostat under Home Assistant I could finally script it. The main rule is a check that runs every ten minutes: if the room has drifted well past a comfortable range and the system is in the wrong mode for it, switch modes. It only acts on a real drift, and it won't change modes more than once every half hour, so it never cycles the compressor. There is a night setback and a morning warm-up on a schedule too.
# every 10 min: only fix a wrong mode, with a 30-min anti-cycle guard
if room > 76 and not cooling and stable_for > 30 min: set cool, 73
if room < 64 and not heating and stable_for > 30 min: set heat, 68
One thing I added after the fact: the automation now backs off when a person changes the thermostat by hand. Home Assistant records who made each change (the automation, Apple Home, the app, or the wall unit), and if someone sets it themselves, the ten-minute rule leaves it alone for two hours instead of undoing their choice. A hard limit still applies underneath, so the AC never simply stops: if the room gets genuinely too hot or too cold, it steps back in no matter what.
Home Assistant logs the readings, and a note in my vault plots the readings: the room temperature, the setpoint, when it was heating or cooling, and the outdoor weather over the top. That's the panel on the right (behind the Graph button on a phone), built from a couple of real days of readings: a dial like the one in Home Assistant, a few stats, and the graph. Pick a range, or hover the graph to read any moment. It's the part I actually look at.
Does it save money?
It depends on how you use it, and the setpoint matters more than the automation. The savings come from not cooling an empty home and never running in the wrong mode. But if you use the new control to keep the place colder than before just because you can, you'll spend more, and that outweighs the savings. The short version: the thermostat is a tool; the setpoint is the bill.
What's next
This is the first device, not the whole house. Next are cheap local sensors: one per room so the system can follow the room you're in, and one on the patio door so it pauses instead of fighting an open door. After that, more of the house, all local, all answering to one hub.