Integrating SuperSauna / Infraplus Sauna or other JCKZ-03 controlled sauna

I reverse-engineered my SuperSauna infrared cabin (generic JCKZ-03 control box) and built a bridge that exposes it to Home Assistant over MQTT — no cloud, and the original touch panel keeps working exactly as before.

The panel talks to the power box over a 7-pin ribbon: 12 V power plus two 5 V UART lines at 9600 baud (one streaming status, one carrying button commands), all ASCII-framed. An Arduino UNO R4 WiFi taps four of those wires — 12 V and GND to power the board via the barrel jack, and the two data lines to RX/TX — reads live values and injects commands, then publishes everything via MQTT auto-discovery.

Entities that show up automatically (HA has no “sauna” domain, so it’s decomposed):

  • Temperature → sensor
  • Light → light
  • Power → switch
  • Setpoint → number
  • Timer → number

Everything but light state is read live from the sauna; broker credentials are set from a built-in web page (stored in EEPROM), so no hard-coding.

Full writeup — wiring by connector pin, the decoded protocol, BOM and the sketch:

Happy to answer questions if anyone has the same cabin or a JCKZ box — curious whether the protocol matches on other SuperSauna / rebranded units. (I also did nothing about controlling audio or speakers, I think this could be done relatively easy, but i have zero use for them)