Hi Steve, this is awesome and very helpful! In researching on the web if Hayward provided any type of API for interacting with the AquaConnect, I came across this post for interacting directly with the AquaConnect Bridge device.
I wanted to put out here some additional information that I was able to gather while reversing the AquaConnect website. In addition to controlling the device directly, I discovered that there is an XML SOAP web service available externally that is being used by the external website ‘aquaconnectweb.com’. Not sure if anyone has documented this or not, a quick google search didn’t show any hits.
At this url, https://www.aquaconnectweb.com/AqConSrv.asmx, there is a SOAP web service available to interact with the AquaConnect bridge over the internet. I found that only a couple of them are really worth while using but does provide some basic functionality over the web. The main three I’ve been testing with are:
-
ButtonPress
-
GetUnitButtonState
-
GetUnit
In order to interact with these calls you’ll need some basic information
UnitID
Account
Mac Address
UnitID can be found in the URL query string parameter once logged in the Aqua Connect Web
Account is a little more trick. Once logged in, navigate to the “Remote Control” tab. Right click on the page and View Source. In the html source search for ‘OnClickTerminalButtonPress’. This javascript function will have the form of ’
OnClickTerminalButtonPress(unit, commandRuleID, buttonNumber, account, accessLevel, buttonText)’ In there the 4th parameter is the account.
Mac Address can be found on either the device itself or on the "Pool Settings" tab on the Aqua Connect Web.
You for some of the web service calls like ButtonPress, a Command Rule ID, Button ID and Button Text is needed. These can be found on the ‘Remote Control’ tab by hovering over each of the different buttons.
ButtonPress seems to always return a value of ‘1’. I’m guessing it means successful.
GetUnitButtonState returns ‘1’ or ‘0’ if the button is on or off.
GetUnit returns an XML string with HTML embedded. This is a DIV section that contains the status panel. So if you want to get at current pool temp or which menu is selected. It’s not really the greatest for get info back since its in HTML.
Not sure if this is helpful to anyone or not but figured I’d put it out there. Remember, Steve’s code is interacting directly with the bridge on your network, this web service is going out to Haywards’ servers then back to your bridge device. So if your internet connection is down so will controlling your device via this service. Also this is a SOAP based web service so it’s XML based.
Scott