Ok - I’ve tried a few different ways to get my spa pool into Home Assistant. Mainly because we sit it on 38 degrees C and turn it up to 40 for a soak. It would be super nice to be able to turn it up when away (or even when still in bed on a cold morning)
I tried implementing JShanks addins via an Elfin EW11A RS485 / Wifi bridge and couldn’t ever get it to work. It all looked good but it never populated the MQTT device.
Then I used another one here using an M5Stack esp32 with an RS485 module. It was fiddly to setup and programming it took a bit of work to get all the addons needed. Then first program I discovered I needed to change an MQTT setting and its hardcoded so had to reprogram it.
It worked ok for a week and then went offline in that it wasn’t talking to the Spa any more. I rebooted both the spa and the unit and it came back for a short time but soon stopped working. I suspect its an issue with the RS485 module as essentially it wasn’t getting any data at all but I plugged my EW11a back in hot and it was immediately receiving packets on the same plug. Also the CPU on the unit reported it was always at 65 degrees C which while in the “normal” range its the higher end so not confident that hardware would survive long term. I’ll reuse the ESP32 device for another project.
I created a PC based Python app (with Claude’s help as my python work is so spread out it takes me time to relearn what I knew) that received packets, got the current Temp, Target set temp and light and pump states etc. Then added the ability to dump packets with a keypress to turn lights on and off, pumps on and off and set the temperature to 38 or 40. I didn’t bother working out how to encode the Checksums on the packets right - I just captured the packets when pushing physical buttons to get the commands needed pre-done.
It worked like an absolute dream but being PC based I could do it in the house or remotely I could access the PC remotely and do it for my wife and daughter who use the Spa.
So next I figured that worked so simply and reliably could I do the same in Home Assistant. I used claude and it created me a custom integration that keeps a telnet session open to the EW11 and reads and decodes the needed buts from the status messages and sends the hex packets for Pump on and off, Lights and the two temperatures we use.
Its working like a dream and I have a Spa pool tab on my home assistant interface where I can see the temperature (and temp history), turn pumps and lights on and off and set the Temps I need.
If anyone is interested I can upload the integration. I’d suggest I also provide the Python app as its useful to monitor and display packets as you push buttons so you can get the specific codes you need as depending on your pumps blowers etc the codes will be different. Also I believe there are different “languages” or versions.
For a short while I actually just had buttons that launched a shell script that dumped the hex commands via telnet and that worked but it was a one way thing and I couldn’t see the current status that way.
You’ve probably switched off and stopped reading as I ramble but if anyone is like me and interested in this and failed at other attempts let me know and I’ll provide any help I can.