Local Thermostat Control in Home Assistant: The Z-Wave Build That Keeps Your Heat Off the Cloud Home Automation

Local Thermostat Control in Home Assistant: The Z-Wave Build That Keeps Your Heat Off the Cloud

by Joule P. Kraft · July 10, 2026

As an Amazon Associate I earn from qualifying purchases. No affiliate relationship influences my recommendations.

The first time my old smart thermostat locked me out of my own furnace, it was nine degrees outside and the vendor’s login service was having a bad morning. The app spun. The web dashboard spun. The thermostat on the wall showed the temperature and refused to let me change the schedule, because the schedule lived on a server three states away and that server was not answering the phone. I stood in the hallway in a coat, in my own house, waiting for a company I do not work for to let me turn up my heat.

That was the morning I decided the thermostat was going local.

This is the build log for replacing a cloud thermostat with a fully local one: a Z-Wave stat on the wall, Home Assistant making every decision, and not one heating choice that depends on somebody else’s uptime. It reuses the wiring already in the wall, it took an afternoon, and it has never once refused to let me into my own furnace since.

Step 0: Figure Out What Kind of Heat You Have

Before you buy anything, this is the decision that determines the whole build, and getting it wrong is how you buy the wrong thermostat or start a fire. There are two completely different worlds here.

  • Low-voltage (24V) forced-air systems. This is a central furnace, heat pump, or air handler with a thin bundle of thermostat wires (red, white, yellow, green, blue) landing on a small terminal block. The vast majority of US homes with central HVAC are this. These take a low-voltage smart thermostat like the Honeywell T6 Pro Z-Wave.
  • Line-voltage (120/240V) systems. This is electric baseboard, convectors, or fan-forced heaters wired directly to household mains. The wires are thick, there is no thin control bundle, and the existing thermostat is a chunky box that switches the full heating current. These need a line-voltage thermostat like the Zigbee Sinope TH1123ZB, and putting a 24V stat on one is a genuine fire hazard.

If you are not sure which you have, pull the existing thermostat off the wall and look. Thin low-current wires on screw terminals mean low voltage. Thick wires and a warning about high voltage mean line voltage. This one fact decides everything below, so settle it before you spend a dollar.

The Low-Voltage Build: Honeywell T6 Pro Z-Wave

For a central forced-air system, the Honeywell T6 Pro Z-Wave is my pick, and it is deliberately boring. It is a plain, reliable, wall-mounted programmable stat that speaks Z-Wave and nothing else. No WiFi, no app, no account, no cloud, which is exactly the point. It supports up to 3 heat / 2 cool on a heat pump or 2 heat / 2 cool on a conventional system, so it covers almost any residential setup, and it costs a fraction of a comparable Nest or Ecobee because you are not paying for a screen full of a company’s software.

The C-Wire Question

The one thing you must sort out first is the common wire, the C-wire. A line-powered thermostat like the T6 Pro needs continuous 24V power to run its radio and display, and it gets that from the C terminal. Old dumb thermostats did not need one because they were just a switch, so a lot of older homes have the wire bundle in the wall but no C connected.

Check your bundle. Pull the old stat and count the wires. If there is an unused wire tucked behind the plate (often blue), you likely have a spare you can land on C at both the thermostat and the furnace board. If every wire is used, an inexpensive add-a-wire or C-wire adapter at the furnace lets you get a common signal down the existing wires. Do not skip this and rely on power-stealing; a line-powered stat that is starved for power is the source of half the flaky-thermostat threads on r/homeassistant.

Wiring and Pairing

The wiring is a like-for-like swap. Photograph the old thermostat’s terminals before you touch anything, kill the power to the furnace at the breaker, then move each wire to the matching labeled terminal on the T6 Pro’s mount: R to R, W to W, Y to Y, G to G, C to C. Landing them one at a time against your photo is the whole job. Restore power, and the T6 boots.

Pairing to Home Assistant needs a Z-Wave coordinator. I use the Zooz ZST39 800-series stick, the same coordinator running my water shutoff valve build, plugged into the machine running the Z-Wave JS add-on. In Home Assistant, open Z-Wave JS, click add device, put the T6 Pro into inclusion from its menu, and it joins in under a minute. It shows up as a single climate entity with current temperature, setpoint, mode, and action, and from that moment every decision about your heat is made on your own hardware.

The Line-Voltage Build: Sinope Zigbee Thermostats

If Step 0 told you that you have electric baseboard or convector heat, the T6 Pro is the wrong device and you want a line-voltage stat that switches the full heating current safely. The Sinope TH1123ZB handles up to 3000W at 240V, and the Sinope TH1124ZB steps up to 4000W for bigger heaters. These are Zigbee, so they join a Zigbee coordinator through ZHA or Zigbee2MQTT rather than Z-Wave, and they show up as the same kind of climate entity once paired.

Two honest warnings on line voltage. First, this is mains wiring, not thin 24V control wire, so if you are not comfortable working inside a 240V circuit, this is the point to call an electrician; there is no shame in it and a mistake here is dangerous. Second, match the wattage to the heater. A 3000W stat on a 4000W baseboard load will cook itself, so read the rating stamped on the heater and pick the TH1124ZB if you are near or above 3000W.

Home Assistant Is Where It Gets Good

Once the thermostat is a local climate entity, the payoff is that Home Assistant, not a vendor, runs your comfort. Everything below lives in your own automations.yaml and keeps working with the internet unplugged.

automation:
  - alias: "Night setback"
    trigger:
      - platform: time
        at: "22:30:00"
    action:
      - service: climate.set_temperature
        target:
          entity_id: climate.hallway
        data:
          temperature: 62
  - alias: "Warm up before the alarm"
    trigger:
      - platform: time
        at: "06:15:00"
    action:
      - service: climate.set_temperature
        target:
          entity_id: climate.hallway
        data:
          temperature: 69

That is the boring core, a schedule that runs locally. The interesting part is that a local climate entity composes with every other local sensor you own. Tie the setback to a presence sensor so the heat drops when the house is actually empty rather than on a guessed geofence. Have a window or door sensor pause the heat if someone opens up to air out a room. Let a real thermometer in a cold back bedroom, not the one spot the thermostat happens to hang, drive a helper that nudges the setpoint. None of this needs a subscription tier, and none of it phones home. It is the same philosophy behind my local sprinkler build: the decision that controls a thing in your house should be made in your house.

The Honest Easy-Path Alternatives

I will not pretend the local build is for everyone. If you want to hang a thermostat, tap through a friendly app, and never think about coordinators or C-wires, a Nest or Ecobee is genuinely good hardware and I am not going to insult you for buying one. The trade you are making is control ownership: the schedule, the geofencing, and the remote control all live on the manufacturer’s server, and both have had outages that briefly left owners unable to adjust their heat. That is the exact failure that sent me down this path, so I would not choose it, but it is a legitimate call if convenience matters more to you than autonomy.

The middle path worth knowing about: Ecobee and the newer Nest both expose to Home Assistant, so you can get local-ish automation on top of cloud hardware. It is better than nothing, but the core decisions still round-trip through a server, so it is not the same guarantee as a Z-Wave stat that has no cloud at all. If you want the heat to be truly yours, the local build is the only one that gets you there.

The Bottom Line

Replacing a cloud thermostat with a local Z-Wave one took an afternoon and it fixed the single thing that made me distrust smart-home heat: nothing outside my house can take my furnace offline anymore. For central forced-air, the Honeywell T6 Pro Z-Wave plus a Zooz ZST39 coordinator is the whole build. For electric baseboard, the Sinope TH1123ZB or TH1124ZB is the line-voltage answer. Sort out the C-wire, settle low voltage versus line voltage before you buy, and let Home Assistant run the schedule. Do that, and the next time a vendor’s login server has a bad morning, you will not even notice, because your heat never depended on it.

Frequently Asked Questions

Does a Z-Wave thermostat work with Home Assistant without a cloud account?+
Yes. A Z-Wave thermostat like the Honeywell T6 Pro Z-Wave joins your local Z-Wave JS network through a USB coordinator and shows up as a climate entity. There is no manufacturer app, no account, and no internet round trip to change the temperature. The heat keeps working even if your internet is down.
Do I need a C-wire for a smart thermostat?+
A line-powered Z-Wave thermostat like the T6 Pro needs a common (C) wire to run without draining batteries or power-stealing. Most low-voltage HVAC systems have a spare wire in the bundle you can repurpose, or you can add an add-a-wire adapter at the furnace board. Battery-only Z-Wave stats exist but line power is more reliable for daily automations.
What Z-Wave coordinator should I use with Home Assistant?+
The Zooz ZST39 800-series stick is the current default. It runs the Z-Wave JS add-on, supports Z-Wave Long Range, and pairs a thermostat in under a minute. It is the same coordinator I use in my water shutoff build.
Can I control an electric baseboard heater with Home Assistant?+
Yes, but not with a low-voltage stat. Baseboard and convector heaters are line-voltage (120/240V), so you need a line-voltage smart thermostat like the Zigbee Sinope TH1123ZB (3000W) or the TH1124ZB (4000W). Never wire a 24V thermostat to a 240V baseboard circuit.
Is a local thermostat better than a Nest or Ecobee?+
For control ownership, yes. A Nest or Ecobee is genuinely good hardware, but the schedule, geofencing, and remote control all live on someone else's server, and both have had cloud outages that left users unable to adjust their heat. A local Z-Wave stat keeps every decision on your own hub, so nothing outside your house can take your thermostat offline.