Hayward AquaLogic / ProLogic automation

The ‘040a’ packets appear to be display updates for a larger display (I only have the 2x16 character displays, so I don’t see these messages on my system). Don’t know about the ‘008c’ packets; my AquaLogic is really old so it is probably a newer message.

There is a command line tool in the aqualogic git repository that you can use to test. Clone the repository to your Pi, and then run ‘python3 aqualogic/cli.py localhost [port]’ where [port] is the port number of your ser2net instance. You can then send commands to toggle any of the States by typing in the state name, e.g. LIGHTS. If the state change was successful you should see it reflected in the States printout.

Hello All:
I’m stuck trying to get HA to talk back to my aqualogic controller. I have a new install of hassbian and added the aqualogic component. (This has been my dream for many years now, so I was so excited to see this finally come to fruition) For the RS485 link, I choose a USR-W610 wifi converter (amazon USR-WIFI232-610-Serial-802-11-Ethernet-Converter) as it’d be nearly impossible to run a wire between my controller and my pi. I have this working, talking to my network and communicating with HA. I can see the changes in HA immediately when I press a button on my aqualogic. I can also see the TXD light flash when I change the mode on a switch in HA. But it won’t change the aqualogic. I get a bad CRC message in my log, but that’s about it.

019-01-05 22:09:10 WARNING (Thread-16) [aqualogic.core] Bad CRC
2019-01-05 22:09:29 WARNING (Thread-16) [aqualogic.core] Bad CRC

I have literally gone thru the W610 settings and changed each one, rebooted the w610 and rebooted HA without success.

Any idea where to begin looking?

My w610 settings are below. I’m using it in ‘STAtion’ mode not ‘Access Point’ mode.

USR-W610

WI-FI Settings
Mode: STA Mode

Mode Selection: Working Mode Selection
STA Mode (station)
Data Transfer Mode: Transparent Mode

AP Interface Setting (not Used)
Wireless Network
Network Mode: 11b/g mixed mode
Network Name: blank
BSSID: [default]
Frequency: Autoselect
USR-WIFI232-AP
Security mode: disable
Lan Setup
IP Address (Default DHCP Gateway: blank
Subnet Mask: blank
DHCP: disable

STA Interface Settings
STA Interface Parameters
AP’s SSID: [my wifi name]
Security mode: [my wifi mode]
AP+STA: off
WAN Connection Type: DHCP (auto config)
Hostname: USR-W610_xxxx

Application Setting
Uart setting
Baudrate: 19200
Data bits: 8
Parity: none
Stop: 2
Flow control: Disable
485 mode: Enable
Baudrate adaptive: Disable
Uart AutoFrame: Disable
Registered Package setting: off
Custom heartbeat packet setting: off
Socket Distribution setting: off
Modbus Polling: off
httpdclient Mode setting: long
Network A Setting
Mode: Server
Protocol: TCP
Port: 8899
Server Address: 192.168.1.78
Max TCP: 24
TCP Timeout: 0
TCP connection password authentication: disable
Socket B Setting
Open Socket B function: off
Protocol: TCP
Port: 18899
Server Address: 10.10.100.100
TCP: Timeout: 0
Ethernet Port settings
Ethernet Setting
Open the ethernet: disable
Set Ethernet work mode: LAN port
Ethernet mode: n

One other thing before I forget, my Aux 3 (Valve 3-Solar) and Aux 4 (Value 4-Waterfall) don’t work. I think this is a mapping issue with my aqualogic, but if anyone has solved this, I’d be very grateful!
Thanks - Rob

Your settings look ok to me. I notice the USR-W610 doesn’t have a ground connector for RS-485; the signals are differential but I still wonder if that might be the issue? My USR-TCP232-304 has a reference ground and I’ve got it hooked up. You could try attaching the ground from the AquaLogic to the RS-232 ground in the D-Sub connector and see if that makes a difference.

I added a ground wire but that didn’t help. I believe it’s a latency issue in using WiFi. Using the USR-TCP232-Test RS232 to Ethernet converter tester http://www.usriot.com/support/downloads/usr-tcp-test-testing-software.html, I sent the lights on/off code repeatedly every 900ms or so, and got the lights to turn on/off every few seconds. It seemed to collide about 9 out of 10 times. Following this, I clicked the lights on/off switch in HA repeatedly. I was able to toggle the lights about every 20-30 clicks, so this is telling me that it’s probably a latency issue with the RS485 WiFi converter. I ordered the non-WiFi version (USR-TCP232-304) and if that works, I’ll have to scramble into the attic and do some wire pulling.

I also tried disconnecting my existing aqualogic wireless remote, but that seemed to have no effect. (Just trying to document everything for next person)

Thanks for the assistance. One last thing: Any plans on turning on the rest of the aqualogic features (e.g. mode switch, valves, super chlorinate, etc)? I see that you decoded most of these in your interface, they just aren’t part of the aqualogic component.

1 Like

Unfortunately I only have the basic Aqualogic control, which doesn’t have buttons for any of the other features. So I have no way to reverse engineer what key events to send to toggle them (assuming they can be toggled by a keypress).

Hello, this code is a great addition. I love that is can now add my pool to my HA. Excellent work. Thank You!!

I have a Hayward ProLogic with 8 control buttons (Relays), Hayward EcoStar® variable-speed pump, Hayward Heater and now a USR-TCP232-304 to link it all together with 3 wires. (A B Ground)

I can see the sensor values that pertain to my install (no spa) but I am having problems. I cannot control items with HA I get a Bad CRC frequently in the HA log. I don’t know where to go from here. Any input would be amazing. Thanks

1 Like

Just another note the toggle switches in HA change with the change of the Hayward control panel. But sadly no control from HA to Hayward

Here is a dump pf the rs485 data

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 57 00 9E 10 03 44 E0
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 02 28 00 00 00 20 00 00 00 00 5D 10 03 10 02 01 03 20 20 20 20 20 20 48 65 61 74 65 72 31 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6F 20 43 6F 6E 74 72 6F 6C 20 20 20 20 00 09 DA 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
00 E0 18 00 E6 00 18 1E E0 1E
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 57 00 9E 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 02 28 00 00 00 20 00 00 00 00 5D 10 03 10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
00 E0 18 00 E6 00 18 1E E0 1E
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 57 00 9E 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 02 28 00 00 00 20 00 00 00 00 5D 10 03 10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03

There is some weird data on the bus (00 E0 18 00 E6 00 18 1E E0 1E), but it should get ignored because it isn’t framed correctly. Do you see multiple retries in the log when you try to toggle a switch from HA?

Here below is another run of the HEX from my controller
I removed all the 10 02 01 01 00 14 10 03 to make it shorter for the post here
Just after starting the recording of the HEX I toggled the pool light in HA but nothing no lights.

I did do some testing with USR-TCP232-Test V1.4.exe and if I keep sending over and over the below HEX The pool light will turn on and off.

(This hex I found in the comments at http://www.desert-home.com/p/swimming-pool.html#Protocol)
Lights
10 2 0 5 20 0 20 0 7F 0 D6 10 3 On
10 2 0 5 0 20 0 20 7F 0 D6 10 3 Off

I think its some type of timing issue? I’m certainly a rookie at RS485

HEX
10 02 01 03 20 20 20 20 20 20 20 20 46 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 6F 75 70 20 41 63 74 69 76 65 20 20 20 20 00 08 D4 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 20 20 46 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 6F 75 70 20 41 63 74 69 76 65 20 20 20 20 00 08 D4 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 20 20 46 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 6F 75 70 20 41 63 74 69 76 65 20 20 20 20 00 08 D4 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 20 20 20 46 72 69 64 61 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 39 BA 30 38 41 20 20 20 20 20 20 20 00 07 B1 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 20 46 72 69 64 61 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 39 BA 30 38 41 20 20 20 20 20 20 20 00 07 B1 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 20 46 72 69 64 61 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 39 BA 30 38 41 20 20 20 20 20 20 20 00 07 B1 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 50 6F 6F 6C 20 54 65 6D 70 20 20 38 32 5F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 07 D5 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 50 6F 6F 6C 20 54 65 6D 70 20 20 38 32 5F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 07 D5 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 50 6F 6F 6C 20 54 65 6D 70 20 20 38 32 5F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 07 D5 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 41 69 72 20 54 65 6D 70 20 20 20 36 34 5F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 07 77 10 03

10 02 0C 01 00 28 00 47 10 03 10 20 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 2C 20 00 00 20 00 00 00 00 81 10 03

10 02 01 02 2C 20 00 00 20 00 00 00 00 81 10 03 10 02 01 03 20 20 41 69 72 20 54 65 6D 70 20 20 20 36 34 5F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 07 77 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 41 69 72 20 54 65 6D 70 20 20 20 36 34 5F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 07 77 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 50 6F 6F 6C 20 43 68 6C 6F 72 69 6E 61 74 6F 72 20 20 20 20 20 20 20 20 20 20 31 35 25 20 20 20 20 20 20 20 20 20 00 09 80 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 50 6F 6F 6C 20 43 68 6C 6F 72 69 6E 61 74 6F 72 20 20 20 20 20 20 20 20 20 20 31 35 25 20 20 20 20 20 20 20 20 20 00 09 80 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 50 6F 6F 6C 20 43 68 6C 6F 72 69 6E 61 74 6F 72 20 20 20 20 20 20 20 20 20 20 31 35 25 20 20 20 20 20 20 20 20 20 00 09 80 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 20 53 61 6C 74 20 4C 65 76 65 6C 20 20 20 20 20 20 20 20 20 20 20 33 36 30 30 20 50 50 4D 20 20 20 20 20 20 00 08 58 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 53 61 6C 74 20 4C 65 76 65 6C 20 20 20 20 20 20 20 20 20 20 20 33 36 30 30 20 50 50 4D 20 20 20 20 20 20 00 08 58 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 04 07 00 1D 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 53 61 6C 74 20 4C 65 76 65 6C 20 20 20 20 20 20 20 20 20 20 20 33 36 30 30 20 50 50 4D 20 20 20 20 20 20 00 08 58 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 46 61 6E 20 20 20 20 2D 43 6F 75 6E 74 44 6E 20 20 20 20 32 BA 34 37 20 72 65 6D 61 69 6E 69 6E 67 20 20 20 00 0B 24 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 46 61 6E 20 20 20 20 2D 43 6F 75 6E 74 44 6E 20 20 20 20 32 BA 34 37 20 72 65 6D 61 69 6E 69 6E 67 20 20 20 00 0B 24 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 46 61 6E 20 20 20 20 2D 43 6F 75 6E 74 44 6E 20 20 20 20 32 BA 34 37 20 72 65 6D 61 69 6E 69 6E 67 20 20 20 00 0B 24 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 20 20 48 65 61 74 65 72 31 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6F 20 43 6F 6E 74 72 6F 6C 20 20 20 20 00 09 DA 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 48 65 61 74 65 72 31 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6F 20 43 6F 6E 74 72 6F 6C 20 20 20 20 00 09 DA 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 48 65 61 74 65 72 31 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6F 20 43 6F 6E 74 72 6F 6C 20 20 20 20 00 09 DA 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 20 20 20 20 46 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 6F 75 70 20 41 63 74 69 76 65 20 20 20 20 00 08 D4 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 20 20 46 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 6F 75 70 20 41 63 74 69 76 65 20 20 20 20 00 08 D4 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 20 20 20 20 46 61 6E 20 20 20 20 20 20 20 20 20 20 20 20 20 47 72 6F 75 70 20 41 63 74 69 76 65 20 20 20 20 00 08 D4 10 03

00 E0 18 00 E6 00 18 1E E0 1E

10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03

10 02 0C 01 00 28 00 47 10 03 10 02 00 0C 00 00 28 01 51 00 98 10 03

10 02 01 02 28 20 00 00 20 00 00 00 00 7D 10 03 10 02 01 03 20 20 20 20 46 69 6C 74 65 72 20 53 70 65 65 64 20 20 20 20 20 20 20 20 20 20 20 20 34 30 25 20 20 20 20 20 20 20 20 20 00 08 36 10 03

I often get an error in HA history “Pool Bridge Comm” that may be the 00 E0 18 00 E6 00 18 1E E0 1E. Hayward has that error in their manual I am gong to look at the wireing again.
Maybe you can help. Currently I have my pump and the rs485 adaptor connected to the main Hayward prologic board at the remote display connector. The Ethernet rs485 adaptor is connected A B Ground. And the pump is just A B. Maybe I should add ground to the pump. Does that sound correct?

The plug on the main prologic board from top to bottom is marked Red = 12 v? Not used. Black = A. Yellow = B. Green = ground.

Thanks in advance for any help

Do you get the error when you try to send a command from HA, or does it just happen randomly? IIRC my Tristar VS is just connected with two wires (it’s -10 Celsius here so I’m not going out to the pool shed to double check :slight_smile:).

Note the aqualogic code uses the 00 03 command to toggle switches as that’s what my system uses; it is pretty old though so the protocol may have changed. You may want to capture the log while toggling the lights from the main control panel. That should show you what toggle command your system is using.

The 00 E0 18 00 E6 00 18 1E E0 1E is constant without any HA commands sent. Strange?

Here is so far what I was able to get out of the RS485 test software. I was able to send all the HEX below back with the test software to the system to make each button turn on and off. I had to send it back constantly, clicking many times and after a while, it would switch.

Filter 10 02 00 02 80 00 00 00 80 00 00 00 01 14 10 03
Lights 10 02 00 02 00 01 00 00 00 01 00 00 00 16 10 03
Heater 1 10 02 00 02 00 00 04 00 00 00 04 00 00 1C 10 03
Valve 3 10 02 00 02 00 00 01 00 00 00 01 00 00 16 10 03
Valve 4 10 02 00 02 00 00 02 00 00 00 02 00 00 18 10 03
AUX 1 10 02 00 02 00 02 00 00 00 02 00 00 00 18 10 03
AUX 2 10 02 00 02 00 04 00 00 00 04 00 00 00 1C 10 03
AUX 3 10 02 00 02 00 08 00 00 00 08 00 00 00 24 10 03
AUX 4 10 02 00 02 00 10 00 00 00 00 10 00 00 00 00 34 10 03
AUX 5 10 02 00 02 00 20 00 00 00 20 00 00 00 54 10 03
AUX 6 10 02 00 02 00 40 00 00 00 40 00 00 00 94 10 03
Left Arrow 10 02 00 02 04 00 00 00 04 00 00 00 00 1C 10 03
Right Arrow 10 02 00 02 01 00 00 00 01 00 00 00 00 16 10 03
Menu 10 02 00 02 02 00 00 00 02 00 00 00 00 18 10 03

Also here are my firmware versions.
Filter VSC Software r1.13
Filter Bridge Software r2.70
Display Software Local-08 r4.00
Main Software Revision 4.1

Oops didn’t post all the buttons

Service
10 02 00 02 08 00 00 00 08 00 00 00 00 24 10 03
Pool Spa Spillover (could not test this one)
10 02 00 02 40 00 00 00 40 00 00 00 00 94 10 03
Filter
10 02 00 02 80 00 00 00 80 00 00 00 01 14 10 03
Lights
10 02 00 02 00 01 00 00 00 01 00 00 00 16 10 03
Heater 1
10 02 00 02 00 00 04 00 00 00 04 00 00 1C 10 03
Valve 3
10 02 00 02 00 00 01 00 00 00 01 00 00 16 10 03
Valve 4
10 02 00 02 00 00 02 00 00 00 02 00 00 18 10 03
AUX 1
10 02 00 02 00 02 00 00 00 02 00 00 00 18 10 03
AUX 2
10 02 00 02 00 04 00 00 00 04 00 00 00 1C 10 03
AUX 3
10 02 00 02 00 08 00 00 00 08 00 00 00 24 10 03
AUX 4
10 02 00 02 00 10 00 00 00 00 10 00 00 00 00 34 10 03
AUX 5
10 02 00 02 00 20 00 00 00 20 00 00 00 54 10 03
AUX 6
10 02 00 02 00 40 00 00 00 40 00 00 00 94 10 03
L Arrow
10 02 00 02 04 00 00 00 04 00 00 00 00 1C 10 03
R Arrow
10 02 00 02 01 00 00 00 01 00 00 00 00 16 10 03
Plus
10 02 00 02 20 00 00 00 20 00 00 00 00 54 10 03
Minus
10 02 00 02 10 00 00 00 00 10 00 00 00 00 00 34 10 03
Menu
10 02 00 02 02 00 00 00 02 00 00 00 00 18 10 03

So, unfortunately, I am stuck with seeing the output in HA but no control. I have looked at core.py but I am not a python guy so it is hard to follow.

Thank you for all your work on this code. At least I’m half way there.

Another Idea
It would be awesome to add control of the heater Off/Auto and maybe ability to change temperature. When there is a power failure the controller always defaults the heater to OFF. This could allow HA to switch it back into auto mode.

Interesting that your control panel uses 00 02 to send commands. Will try that on my system at some point. If you change:

FRAME_TYPE_KEY_EVENT = b'\x00\x03'

to

FRAME_TYPE_KEY_EVENT = b'\x00\x02'

it will use those commands instead. The issue with the heater is there is no simple command that can be issued to alter it; everything is done by navigating through the menus, which would be complicated (though not impossible) to automate.

That awesome i will try that.
But sorry i’m a rookie when it comes to this. I was looking for core.py on my Pi and can’t find it. Is that a file that was compiled. (don’t even know if that makes sense) Is it in another file? Thanks for your help.

So I moved the 3 aqualogic.py files to custom_components so I can play with them for my needs. I’m going to try to add the heater to the mix. In that folder they are working as expected. But can’t figure out where or how to move the core.py file. Any insight on how to do this would be greatly appreciated. Thanks

So i finally wrapped my head around where the files are located.
/srv/homeassistant/lib/python3.5/site-packages/aqualogic

I have now edited the core.py file but still are having problems. My HEX to turn on AUX1 is the following

10 02 00 02 00 02 00 00 00 02 00 00 00 18 10 03

So i changed the FRAME_TYPE_KEY_EVENT to 00 02. That’s no problem.
But I also need the 00 00 after tIe 00 02 so i added FRAME_TYPE_KEY_EVENT2
This works and will turn AUX1 ON but now HA does not see that the button is on and cannot turn it OFF
So I need to add something to remove the extra 00 00 for the code to see the status

I add this to core.py

FRAME_TYPE_KEY_EVENT = b’\x00\x02’
#FRAME_TYPE_KEY_EVENT = b’\x00\x03’
FRAME_TYPE_KEY_EVENT2 = b’\x00\x00’
and
self._append_data(frame, self.FRAME_TYPE_KEY_EVENT)
self._append_data(frame, key.value.to_bytes(2, byteorder=‘big’))
self._append_data(frame, self.FRAME_TYPE_KEY_EVENT2)
self._append_data(frame, key.value.to_bytes(2, byteorder=‘big’))
self._append_data(frame, self.FRAME_TYPE_KEY_EVENT2)

My aqualogic is turned off for the winter so I won’t be able to look into this for a while.