Posted in

Making My Sauna Smarter with Home Assistant

I’ve got a rule in my house: if I buy something new, I at least think about how I can make it “smart” and connect it to Home Assistant. Sometimes that means picking products with built-in integrations. Other times, it’s about getting creative and finding indirect ways to sense and automate.

My latest challenge? An infrared sauna. They’re not exactly known for smart features, but that wasn’t going to stop me. Instead of rewiring or hacking it apart, I found a safe, simple way to detect when it’s on and use that to trigger automations around the house.

The Goal

I didn’t want to modify the sauna’s internal electronics. No automatic start or stop, no automatic music playing. Aside from the safety concerns, it didn’t add much value for me.

But I did want to know when the sauna is on or off and use that to trigger other smart home actions, like adjusting lights or room settings.

First Ideas (and Why I Rejected Them)

1. Smart plug with energy monitoring
This could have worked: measure the sauna’s power draw and trigger automations. But because saunas consume a lot of power, I wasn’t comfortable putting one on a smart plug. Even if technically it could handle it.

2. Inside temperature sensor
Another idea was to put a Zigbee temperature sensor inside the sauna. The problem?

  • Not sure if it would survive the heat.
  • High temps drain batteries very quickly.

So, no luck there.

The Solution

While inspecting the sauna, I noticed a ventilation shaft at the top. Perfect spot!

I placed an Aqara temperature sensor just outside the vent. This way:

  • I could detect heat escaping without exposing the sensor to extreme sauna temperatures.
  • When the sauna turned on, the vent’s temperature quickly rose.
  • When it turned off, it dropped just as fast.

This is what Aqara says about their update frequency:

If the temperature, humidity and atmospheric pressure vary only a bit, data will be reported once an hour.
If the temperature variation exceeds 0.5℃ (1℉), the humidity variation exceeds 6% and the atmospheric pressure is no less than 25hPa, data will be reported instantly.

That means: when the sauna is heating, I get frequent updates — perfect for detecting state changes.

Step 1: Trend Sensors

I wanted to detect whether the sauna was heating up or cooling down.
For that, I used Home Assistant’s trend sensor platform.

- platform: trend
  sensors:
    sauna_heating_up:
      entity_id: sensor.sauna_temperature
      min_gradient: 0.008
      sample_duration: 300
      max_samples: 20  
    sauna_cooling_down:
      entity_id: sensor.sauna_temperature
      min_gradient: -0.005
      sample_duration: 300
      max_samples: 20  

These values came from analyzing my temperature graphs. ChatGPT actually helped me pick the gradients after I showed it my sauna’s heating curve.

Step 2: Sauna Mode (input_boolean)

I created an input_boolean called sauna_mode. This allows me to override it manually if needed.

  • When cooling down → turn it off
  • When heating up → turn it on
- id: sauna_heating_up
  alias: "Sauna: Heating up"
  trigger:
    - platform: state
      entity_id: binary_sensor.sauna_heating_up
      to: "on"
  condition:
    condition: state
    entity_id: input_boolean.sauna_mode
    state: 'off'
  action:
    - service: input_boolean.turn_on
      target:
        entity_id: input_boolean.sauna_mode

- id: sauna_cooling_down
  alias: "Sauna: Cooling down"
  trigger:
    - platform: state
      entity_id: binary_sensor.sauna_cooling_down
      to: "on"
  condition:
    condition: state
    entity_id: input_boolean.sauna_mode
    state: 'on'
  action:
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.sauna_mode

Step 3: Sauna Mode Automations

Once I have sauna_mode toggling automatically, I can make it do anything.

For example:

  • Turn on a light when the sauna is on.
  • Turn off the light when the sauna is off.
  • Additionally, turn off sauna mode whenever turned on for over an hour.
- id: sauna_mode_on
  alias: "Sauna: Mode on"
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: input_boolean.sauna_mode
    to: 'on'
  action:
    - service: light.turn_on
      data:
        entity_id: light.attic
        brightness: 78

- id: sauna_mode_off
  alias: "Sauna: Mode off"
  initial_state: 'on'
  trigger:
    - platform: state
      entity_id: input_boolean.sauna_mode
      to: 'on'
      for:
        hours: 1
    - platform: state
      entity_id: input_boolean.sauna_mode
      to: 'off'
  action:
    - service: input_boolean.turn_off
      data:
        entity_id: input_boolean.sauna_mode    
    - service: light.turn_off
      data:
        entity_id: light.attic

Final Thoughts

This project shows that you don’t always need to hack into a device to make it “smart.”
By using indirect signals (like heat escaping from a vent), you can detect states and create useful automations without voiding warranties or risking safety.

Now, every time the sauna turns on, the attic light sets the mood and Home Assistant quietly tracks it all in the background. And since the sauna has a built-in Bluetooth radio, I’m already thinking about the next step: automatically playing music when it starts heating up.

But that’s a project for another day… and maybe another article.

Leave a Reply

Your email address will not be published. Required fields are marked *