Integration with Sunlighten Sauna

I just did my first project with esphome, a TH humidity sensor, and it was so easy. I’m thinking about my next project and this would be a great way to make my Sunlighten Sauna smart. Unfortunately I can’t find any information online about how I could wire in a esp32. I even took pictures of the electronics of the sauna to find model numbers and come up with no Google results.
SPBCH-MWD-1909-V1
SICPCH-MWD-1909-V1

Any guidance towards how I could accomplish this would be greatly appreciated.

Thanks
CJ

4 Likes

I would love the same!

Any progress here ?

Well I finally took on the challenge of creating something. It’s not pretty but it does work to control the basics. I built an esp32 that wires to the control panel so you can do virtual button presses to turn on the sauna. I’m also monitoring the led status to tell whether it’s on or not. I used optocouplers to keep the electrical circuits completely isolated. I built my esp32 code and wiring to also control the time/temp up/down buttons but I never figured out a way to read the values from the 7-segment displays. It took me a lot longer than I want to admit but I learned a lot in the process. Ideally the cleaner way of creating an integration would be to tap into the wires from the control panel up to the main board on top. I don’t even know where to start with reverse engineering that but if anyone has any pointers I’m always open to learn and share.

Here is a picture of the wiring on the esp32 end. I don’t have time to do a full write-up of my adventure but feel free to ask any questions

esphome:
  name: sauna-control
  friendly_name: sauna-control

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxx"

ota:
  password: "xxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.x.x
    gateway: 192.168.x.x
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sauna-Control Fallback Hotspot"
    password: "xxxxxxxxxxx"

captive_portal:

switch:
  - platform: gpio
    name: "Main Power"
    id: main_power
    pin: 13
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: main_power
  - platform: gpio
    name: "Full Spectrum Power"
    id: full_spectrum_power
    pin: 14
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: full_spectrum_power
  - platform: gpio
    name: "Timer Increase"
    id: timer_increase
    pin: 16
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: timer_increase
  - platform: gpio
    name: "Timer Decrease"
    id: timer_decrease
    pin: 17
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: timer_decrease
  - platform: gpio
    name: "Temperature Increase"
    id: temperature_increase
    pin: 18
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: temperature_increase
  - platform: gpio
    name: "Temperature Decrease"
    id: temperature_decrease
    pin: 19
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: temperature_decrease
  - platform: gpio
    name: "Door Light"
    id: door_light
    pin: 25
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: door_light
  - platform: gpio
    name: "Interior Light"
    id: interior_light
    pin: 26
    inverted: no
    on_turn_on:
    - delay: 150ms
    - switch.turn_off: interior_light

binary_sensor:
  - platform: gpio
    pin:
      number: 27
      mode:
        input: true
        pulldown: true
    filters:
      - delayed_on: 10ms
    name: "Main Power Status"
    id: main_power_status
  - platform: gpio
    pin:
      number: 32
      mode:
        input: true
        pulldown: true
    filters:
      - delayed_on: 10ms
    name: "Full Spectrum Power Status"
    id: full_spectrum_power_status
    ```

Now that sunlighten has an app and cloud service for remote use, any chance to integrate this with home assistant?