If you own a pool, do yourself a favor and check out the amazing project nodejs-PoolController. It allowed me to automate my pool (Hayward VS pump, Aquarite SWG, ColorLogic lights, and Hayward Heat Pump) on the cheap. My controller is basically a raspberry pi, dual rs485 hat, and a 4-relay module. I’m saving a ton in electricity by doing things like only ramping up the pump when the heater needs to run and creating a schedule for everything else.
I have created an integration to interact with nodejs-PoolController called njsPC-HA. It is installed via HACS after adding the url as a custom repository. I have released the initial release knowing I have to clean up some code, but I wanted to get it out there. The repository can be found here:
The heaters have a HVAC mode of AUTO always and are controlled through the preset modes so they can match up with njsPC. The colorshows for lights are found as effects for the light.
Thanks a bunch for setting this up! I did run into a few issues that required modifying some code:
Pool controller config or state may be a little unexpected. At one point, under temp/bodies it was reporting a “phantom” body without an ID. Another time, the spa body did not have “temp” assigned. And one last, under pumps, the flow was set to zero (I have no VF pumps), but the minFlow/maxFlow rates were not defined. I’d recommend including some key validation in places.
Had some issues with getting the climate entities to function. In async_set_hvac_mode it sends poolcontroller val 1 for off, and > 1 otherwise. I needed to decrement that to 0 for off, and 1 for heater.
@zzachattack2 Yeah, definitely need to add some key validation on it. It started out as just a project for my stuff then expanded from there.
Can you show your response from a GET request to http://<ipaddress>:4200/config/body/1/heatModes? That way I can see what your system is looking for. Thanks. Mine looks like this [{"val":1,"name":"off","desc":"Off"},{"val":9,"name":"heatpump","desc":"Heat Pump"}]
I am really interested in this. We have a pentair easytouch 4 (nothing fancy - we have lights, a pump and will get a heater next year). I have heard nightmares about the Screenlogic controls (especially on android) and performance. So controlling the lights, our variable pump speeds/schedule, seeing the temp, turning on the heater when we want…that’s about all I would ever want!
Do I need to be an expert coder for this to get it working (I last coded in fortran in grad school, so…)? How about making sure I get the right Pi and connect it properly? I don’t see the instructions for connections into the comms so I want to get it right and not mess up my system. Thank you big time in advance.
Lots of help here to get you going. With an ET4 you simply need a Raspberry Pi and an RS485 adapter. There are tons of articles in the Wiki for more advanced installs.
@Crewski Hi David, thank you so much for this component, I’m waiting for my new Aquarite+ and pump to be delivered so I can try to control them with nodejs-PC and your integration.
I was going to the MQTT autodiscovery route but it seemed too confusing and not very well maintained, luckily you chimed in that discussion and I found this.
Trying to keep this as simple as possible. I only need Aquarite to Home Assistant. Can I just connect from a Pi’s USB port to the Hayward using a USB to RS485 adapter?
Pretty much. My aquarite salt cell needs to be powered by a 10V (I forget what the actual range is), so keep that in mind as you’ll need something for that. I have mine powered with 12V. Also you’ll need to run nodejs-PoolController on the pi as this integration just talks to that.