Guides

Home Assistant Sauna Automation - The Full Build Walkthrough

If you’ve already read our intro on building a sauna dashboard in Home Assistant, you know the basic idea: pull temperature, humidity, and heater status into one screen. This post is the next step. It’s the actual build, wiring choices included, so you can go from “I can see the temperature” to “the sauna heats itself before I get home and shuts off if something goes wrong.”

I’ll be upfront: this involves working near a high current heating circuit. If the phrase “3 phase contactor” means nothing to you, that’s fine, but hire an electrician for the wiring part. Home Assistant handles the logic. It should never be your only line of defense against overheating.

What you’re actually building

Three things, stacked on top of each other:

  1. A way to read temperature (and usually humidity) inside the sauna room.
  2. A way to switch the heater on and off from Home Assistant.
  3. Automations that use #1 to control #2, plus a hard safety cutoff that doesn’t depend on any of it working correctly.

How you fill in #1 and #2 depends heavily on what heater you already own.

Path one: your heater already talks WiFi

Some newer heaters, Harvia’s Xenio WiFi line being the most common example, ship with their own app and cloud connection. There are community built Home Assistant integrations (installed through HACS) that talk to the manufacturer’s cloud API and expose the heater as entities: power switch, target temperature, current temperature, timer state.

This is the easy path. You’re not touching any wiring. You install the integration, authenticate, and you get native entities you can drop straight into automations and dashboards. The catch is you’re depending on the manufacturer’s cloud staying up and the community integration staying maintained, since these aren’t official Home Assistant integrations. Check the project’s issue tracker before committing, because these small maintainer projects can go quiet.

Path two: retrofit a relay onto an existing heater

Most sauna heaters, especially older Finnish ones, are dumb: a mechanical thermostat and a timer, no networking at all. For these, people commonly retrofit a smart relay onto the control circuit rather than the heater’s main power line.

The important distinction: your heater’s contactor is switching several kilowatts, usually across three phases. A consumer smart plug isn’t rated for that and shouldn’t be anywhere near it. What actually works is using a smart relay (a Shelly 1 or similar) to switch the low voltage control signal that already triggers your heater’s own contactor, the same signal the mechanical timer used to provide. You’re replacing the timer’s dumb switch with a smart one, not rewiring the heater itself. If your setup doesn’t have that kind of control loop already, this is where you bring in an electrician rather than improvising.

Done this way, you get a simple on/off entity in Home Assistant, plus power monitoring if your relay supports it, without touching the heater’s actual power wiring.

Path three: DIY with ESPHome

If you want more control (multiple temperature zones, PID style heating curves, your own logic on the device itself) people build custom controllers around an ESP8266 or ESP32 running ESPHome. The usual parts list is a DS18B20 waterproof temperature probe (sometimes two or three, mounted at bench height and near the ceiling since sauna rooms stratify hard), and a solid state relay to do the actual switching, since mechanical relays wear out fast under constant cycling and can arc.

ESPHome’s appeal here is that you write YAML, not firmware. It compiles the sensor and relay logic for you and connects straight into Home Assistant with no extra bridge needed. It’s a genuinely good fit for this kind of project, which is part of why it shows up in nearly every DIY sauna controller writeup you’ll find.

The nonnegotiable part of any DIY build: put a physical thermal fuse or thermal cutout in the circuit, wired independently of the ESP32 and independently of Home Assistant. If your controller freezes, or your WiFi drops and an automation gets stuck, or you push a bad config at 11pm, the thermal fuse is what keeps the room from overheating. Software safety checks are a nice second layer. They are not a substitute for a hardware one.

Automations worth building once the hardware’s in

With sensors and a switch in place, here’s what’s actually useful, not gimmicky:

  • Scheduled preheat. Trigger the heater 30 to 45 minutes before your usual sauna time so it’s at temperature (commonly 80 to 90°C / 176 to 194°F for a Finnish sauna) when you walk in, instead of running it constantly on a dumb timer.
  • Max runtime cutoff. An automation that force-switches the heater off after a fixed run time, say 2 to 3 hours, regardless of what else is happening. This catches the case where you forget it’s on.
  • Temperature overshoot alarm. If the room reads meaningfully hotter than your setpoint (a margin of 10 to 15°C over target is a reasonable trigger), send a notification and cut power. This is a second software layer on top of the thermal fuse, not a replacement for it.
  • Door or presence based shutoff. If you’ve got a door sensor or use presence detection, auto-shutoff after the room’s been empty and cooling for a while saves on electricity without you having to remember.
  • Humidity logging, if you’re chasing löyly. Not essential, but if you’re experimenting with different rock loads or water dosing, logging humidity alongside temperature gives you actual data instead of guesswork.

The honest caveats

This is not a weekend project if you’re starting from a dumb heater and no electrical background. The temperature and dashboard side is approachable. The switching side, if you’re not using a manufacturer’s native WiFi controller, touches your home’s electrical panel and a heating circuit that pulls serious current. Get it wrong and you’re looking at a fire risk, not just a broken smart home integration.

It can also void your heater’s warranty depending on manufacturer and country, so check that before you open the control box. And if you’re renting, or the sauna is shared with people who don’t want to debug a stuck automation before they can turn the heat on, weigh that against the convenience.

None of this is a reason to skip it. It’s a reason to sequence it correctly: dashboard and monitoring first (covered in the intro post), safety hardware second, smart switching last, and only after the thermal fuse is in and independently tested.

Takeaway

The dashboard gets you visibility. This build gets you control, and it’s genuinely satisfying to walk into a sauna that’s already at temperature because Home Assistant started it while you were still finishing dinner. Just don’t skip the thermal fuse to get there faster. That one part is what keeps a smart sauna from becoming a cautionary tale.