Hayward AquaLogic / ProLogic automation

So I’ve read this entire thread, twice. Great work @swilson, @aming-miyembro, & everyone else! I’m quite excited to try this.

My question, though, is what if I ONLY have a Hayward chlorinator and nothing else? It’s just stand-alone, no pool controller. It’s a Hayward Swimpure Plus, which by all of my research is using the old Goldline board and AquaLogic protocol (though I’m not 100% sure yet, my hardware arrives later this week . . .)

Didn’t know if anyone had tried this with any stand-alone components, so any direction here is greatly appreciated. Thanks again!

1 Like

Same question here. I have Home Assistant already controlling most of my pool controls and monitoring return and supply temperatures etc. through a PLC. It would be nice to get the CL- levels from the chlorinator without having to purchase a ProLogic. Possible with the existing integration? Thanks for any replies!

I’m also just getting my ProLogic system set up and am running into issues when it comes to controlling the system. I can read the status of things like my filter pump and pool temp just fine. However any time I try to control anything like turn off my filter pump, it fails. HA actually denotes that the switch is “Read Only.” It complains that there’s no unique ID associated.

I’m using the PUSR USR-TCP232-302 for the connection to my ProLogic system and I’ve triple checked the wiring; it’s accurate. Using the USR-TCP232-Test-V1.3 utility, I’m able to successfully connect to the server and monitor the status. I’m also able to push the HEX code to turn the main filter ON and OFF. That tells me everything on the adapter and the panel are working just fine.

I’ve got the following in my configuration.yaml file and I can see the entities in HA.

aqualogic:
  host: 192.xxx.xxx.xxx
  port: 4328

sensor:
  - platform: aqualogic
    monitored_conditions:
      - air_temp
      - pool_temp
      - pool_chlorinator
      - salt_level
      - status

switch:
  - platform: aqualogic
    monitored_conditions:
      - lights
      - filter

Here’s how they show in HA:

When I click the gear for the filter, it tells me “This entity (‘switch.aqualogic_filter’) does not have a unique ID, therefore its settings cannot be managed from the UI. See the documentation for more detail.”

Any thoughts or suggestions on what I should be checking from here? Not sure if I missed something or what! Thanks in advance for any suggestions anyone can offer… I’m scratching my head here.

Any luck with this?

Yeah I’m still in the same boat. @aming-miyembro helped as far as they could but I cannot control switches still. I’m waiting for pool season to ramp back up for everyone else (those in the north or without heaters) and hopefully this thread will pick up again!

I was also in that boat until earlier this week! Maybe my experience will help others as I believe my main issue was related to my Home Assistant not using the AquaLogic custom component. I could be wrong, but it appears the key is the timing of enabling the custom component and the individual modifications to the configuration.yaml.

By the way, I have the Hayward Prologic PS-8 with Main Software Revision 4.10. My wireless remote battery won’t hold a charge which lead me here. I was actually considering the omni-pl retro fit upgrade but could not justify the cost.

Initially, I tried enabling the built in AquaLogic integration following the doc. This allowed me to read sensors and switch state changes when using the Hayward wireless remote/keypad. However, I was unable to toggle any of the switches via Home Assistant.

I enabled logging in the configuration.yaml, did a few tests by triggering a switch via Hayward remote/keypad and noticed the code being sent via the integration appeared to be missing some bits. This steered me down the Custom Component path thinking I needed to make some modifications to core.py mentioned by @aming-miyembro in post #326 above .

So, I proceeded to add the 2.6 Aqualogic code into the ‘Custom Components’ folder.
Ran some additional tests and noticed that if I made changes to core.py it was not getting picked up by Home Assistant as if it continued to run off of the built-in Aqualogic integration/code.

Thinking this was a timing issue related to when you enable the custom component and modify the configuration.yaml…

  1. I removed the Aqualogic custom component and all reference to Aqualogic in the configuration.yaml.
  2. Restarted Home Assistant to get back to a clean environment (without starting any Aqualogic integration).
  3. Uploaded the Aqualogic 2.6 code into the /config/custom_components/aqualogic directory (with no configuration.yaml modifications)
  4. Restarted Home Assistant and checked the log to be certain it discovered the Aqualogic Custom Component.
  5. Modify the configuration.yaml to include the following:
    aqualogic:
    host: 192.xxx.xxx.xxx
    port: 4328
  6. Restarted Home Assistant. (assuming this would now force Home Assiatnt to use the custom component)
  7. Modify the configuration.yaml to include the standard sensors and a switch or two as a test. I have a pool light and use Aux 1 to trigger Pool mode as I have multiple actuators and valuves (Return, Suction, Valve 3) that need to turn. So just enabled the bare minimum here to elimiate any other potential conflicts.
  8. Restart Home Assistant again! After the restart, it felt like I made no progress. Still could not toggle a switch via Home Assistant. Noticed, my download of the Aqualogic 2.6 code did not include files switch.py and sensor.py.
  9. Found copies of switch.py and sensor.py and uploaded to the custom component folder. As a test, modified the friendly names for lights (i.e. Pool Light) and aux1 (Pool Party).
  10. Restarted Home Assistant
  11. Confirmed the new switch names appeared in Home Assistant but toggling them still did not work.
  12. Modified the custom core.py file to included changes mentioned by @aming-miyembro in post #326 above.
  13. Restarted Home Assistant and my switches started working and proceeded to add additional sensors and switches to handle Super Chlorinate and Heater.

I know this is a bit long winded and maybe the sequence or # of steps above can be reduced. Or maybe it won’t help you and I just got lucky.

In any case, I hope this helps others!

1 Like

Thank you! I’m out of town but going to try this when I get back. Are you using the wired USR-TCP232-304 RS485 interface or a Wi-Fi to RS485 converter like the EW11?

I’m using the USR-TCP232-304

1 Like

Thanks for the awesome write-up on all of this! I tried it out myself this weekend all to no-avail. While I hated to do it, I ended up giving in and just getting the OmniPL Retrofit kit this weekend and installed it on Sunday. In the end, it’s probably a better solution for me anyway and has a MUCH higher wife-acceptance-factor. Gotta admit, the OmniPL is a HUGE upgrade over the ProLogic… probably more-so that I even could have hoped to achieve with the HA integration.

1 Like

Update here. It seems a good chunk of my issues were coming from using a Wi-Fi to RS485 interface. I’ve since switched to the USR-TCP232-304 and all the switches work with the exception of heater_1. I can turn on/off the filter, lights, aux valves. I can also read all sensor values.

What’s more odd is that in the code shared by @aming-miyembro, ONLY heater_1 works but nothing else. So I’ve spent this weekend comparing differences between the two code bases, making changes, the testing again but to no avail.

I’m at a point I can read the switched state of heater_1 (but not switch it), read all sensors, switch/read filter, switch/read lights, and switch/read aux valves. It’s so close.

I’m bashing my head against the wall, I cannot figure out why the heater works with his code and not the current 2.6 release. :upside_down_face:

EDIT:

Praise the gods above I got my heater working. By using diff/compare in VS code I just looked for the differences between Aqualogic 2.6 and aming-miyembro’s code. Then I slowly merged them in line by line, restarting HA every change until switches broke. That helped me to isolate it down to a key frame send event as the culprit. After some more trial and error I got it working.

For any future readers, feel free to PM me for the custom_component directory. I can’t promise that the chlorinator will work as I don’t have one but I know for sure with the USR-TCP232-304 interface and my merged code I have filter, lights, heater, and aux valve 1 working reliably.

3 Likes

Hi everyone! :slight_smile:

I’m fairly new to Home Assistant, I’ve been doing alright in setting a few things up like Minimalist Lovelace UI, but never actually used Custom Components or went all the way in automating anything that requires some hardware.

Now, I’d love to get this working as it looks amazing! I have an AQL P-4, which I believe is compatible, and I’d love to hook it up to HA using the Remote Display port, would that be possible?

I’m planning on getting ethernet working in the pool shed using ethernet over power. Then from this thread, I believe the only hardware I need is something like a USR-TCP232–304, a 4-pin PCB terminal block (to connect to the board Remote Display) and some wire to connect these things together? Am I missing anything else, or is that it hardware-wise?

If someone is willing to send screenshots of how everything is plugged on their side, that would be much appreciated. I’d also appreciate some steps on how to get the libraries to work on Home Assistant!

Thank you

Hey there. I’m out traveling now but can assist when I get back if you still need it. Here you can find the details about hookup information and where the RS485 bus is.

The 4 pin phoenix connector should be in your controller already, it’s on the top left. Definitely get the USR-TCP232–304, it’s all you need hardware wise. RS485 is rated to go 100 meters over CAT6 cable so you could leave the USR-TCP232–304 in your network closet if you want.

As far as the custom components build, it was the only way for me to get everything working with the heater but if you don’t have a heater you can use the native aqualogic interface.

Feel free to reach out if you have any questions or need the custom_components version!

Hey @adamgranted, I would definitely appreciate some help when you get back!

Looking at the documentation you’ve linked, I believe it’s showing the Local Display pin, while I would be using the Remote Display ones, so not exactly the same. It appears that my PCB Terminal Block does not have a 4-pin connection (see attached screenshot), so I will need to add one.

Regarding the USR-TCP232-304, you mentioned it’s rated for 100 meters over CAT6, but I plan to use Ethernet over Power, which means I’ll use a Powerline Network Adapter to connect from my router to the pool shed and then connect the USR-TCP232-304 to the power line. Do you think there would be any issues with this setup?

I also have a heater, but I don’t think it’s currently controlled by the AquaLogic Board. Would it be possible to look into this and see if we can control it through the board?

Thank you.

Do you have the ethernet over power working reliably for other things? I’ve found them to be very finicky, especially if the receivers happen to be connected to circuits on opposite sides of your panel. Given that most of us (all?) seem to have issues with getting quick response from switches, this may make it worse.

You are definitely missing that screw block - odd it’s not there - it looks like you’re missing your heater block one as well. Per your heater, you should check if it can be controlled by a simple low voltage line. If so, the board should be fine controlling it as it’s just a relay. The board doesn’t ‘set’ the temperature of the heater directly, it just cycles it on and off based on the water temperature

On that note, has anyone been able to get a better response from the switches - mine, especially lights, can take a good number of tries before it actually flips.

The ethernet over power may introduce latency issues but you could give it a shot first? If you do have issues I’d recommend pulling a long ethernet patch cable across the ground to your pool shed to help isolate changed conditions. You don’t want to be diagnosing switch issues with the integration that may be caused by latency issues with ethernet over powerline.

As far as the connector, you’re definitely missing it. That’s a Phoenix connector but you’ll need to measure the pin pitch (spacing between each pin). Here’s a 5mm pitch version as an example, should get you going in the right direction: Phoenix Type Connector 4-Pole 5mm Pitch 4-Pack

I had this issue when using a Wifi to RS485 adapter. Since switching to the USR-TCP232–304, connected through hard-wired twisted pair conductors, switches are now instantaneous.

Hello everyone! I wanted to express my gratitude for this amazing addon that I’ve been using for quite some time now. It has truly been a game-changer. I would like to extend my heartfelt thanks to each and every person involved in creating this exceptional piece of code. Especialy @swilson

In return, I wanted to contribute by sharing an exciting project I’ve been working on using the esp8266. My aim is to establish a direct interface with the Aqualogic system. However, I have encountered some challenges when it comes to sending codes back to the controller.

I would greatly appreciate any assistance or guidance in resolving this issue. Together, we can overcome this hurdle and further enhance the capabilities of the Aqualogic system. Thank you in advance for your support!

My project is on GitHub - stoehrmark/aqualogic-esp8266: An esp8266 serial device to interface with a Hayward ProLogic pool automation system


Odd. I’ve always been hardwired not WiFi. What repo are you using?

If your refering to my post. This is a hard wired RS485 adaptor to a esp8266 hosing a local web interface. The basic buttons work some of the time. I believe there is a timing issue sending the commands. Still looking into that. The menu buttons are not working at all yet. I built a custom code. The repo is on GitHub the link is in my last post.

I tried the WiFi route first to save the wire pulling but found it introduced too many timing issues. Even after hardwiring it I still had heater issues which led me to using my own code base.

I haven’t put it on Github since I’m not a dev… I just brute forced it with trial and error till I got it working. I have filter, lights, heater, and aux_1 working reliably (which is all I needed). I did test aux_2 yesterday and found the switch commands to be intermittent.

I can fork the repo and put it on Github if you want to try it out? Or just share the custom_components as a zip.