Implementation of Aqua Temp controlle

Im loving this! thank you!!
Is there a code that indicates flow?
When the filter pump is off the APP reports no flow.
Id love to be able to use this in HA.

1 Like

I’ve just noticed that the is fault attribute = true when flow is off and the fault
is_fault - true
fault - Flow Switch Prot.

Exactly. Glad you figured that out.

Hi,
I recognized, that I’M only able to control the device round about 24h. I think the access token is not longer valid and there is no relogin. Does anybody see the same issues? I’m also getting the below error message:
Expecting value: line 1 column 1 (char 0).

Nice work !

I will also use this insted of my dirty bash scripts .

Thanks

1 Like

Sorry to hear that. The issue seems to be caused by an erroneous server response. I’ve introduced a number of checks to the code. Please let me know if that helps.

It’s you who deserves most credit :+1:

This was great to find - I’ve got an Evoheat DHP-603R which uses the AquaTemp app and I’d worked through reverse engineering the whole process. The breakage around mid-July might have been my fault because I found out it was doing things over plain HTTP and raised a security alert with Evoheat and it was acknowledged and told it was being looked at…

… fast forward a few months and suddenly HTTPS appears :slight_smile:

I do find the cloud services notoriously flakey - right now it’s taking ~60s to login and retrieve the device info. It would be a whole heap nicer to do something without that dependency as it just doesn’t seem very robust…

@sickidolderivative it must be that time of year as I’ve also been working on this - I’ve created a separate comms module (pyaquatemp) with the intent of pushing this up to PyPi (per the HA Dev docs) and was then going to have a go at the Climate component… so maybe once I’m done with the pyaquatemp we could look to update your component to use it and ideally roll it back into HA Core?

Hi,I tried to implement the integration, but ran into problems. My error log look like this:

Logger: homeassistant.components.climate
Source: custom_components/aquatemp/climate.py:234
Integration: Climate (documentation, issues)
First occurred: 7:49:57 PM (1 occurrences)
Last logged: 7:49:57 PM

Error while setting up aquatemp platform for climate
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity_platform.py”, line 249, in _async_setup_platform
await asyncio.shield(task)
File “/usr/local/lib/python3.9/concurrent/futures/thread.py”, line 52, in run
result = self.fn(*self.args, **self.kwargs)
File “/config/custom_components/aquatemp/climate.py”, line 33, in setup_platform
add_entities([Aquatemp(config)])
File “/config/custom_components/aquatemp/climate.py”, line 63, in init
self.update()
File “/config/custom_components/aquatemp/climate.py”, line 234, in update
self._current_temperature = float(self.get_value(‘T02’))
TypeError: float() argument must be a string or a number, not ‘NoneType’

My config.yaml

climate:

  • platform: aquatemp
    name: aquatemp
    username: my_email_adr
    password: my_password
    min_temp: 20.0
    max_temp: 35.0
    temperature_unit: C

any tips ?

best regards

I’m installing a heat pump shortly and really do not wish to use the cloud server so I’ll fire up my trusty mitmproxy and start seeing what data is transferred but I wanted to see if your reverse engineered notes are to do with local control or cloud control before I start duplicating ground.

Ideally I’d like to go local and even if it means tricking it into connecting to my own instance.

Also do we know what controller it actually uses? Would be awesome if it was our trusty esp but I suspect this has already been checked?

@bundabrg I was reverse engineering the cloud protocol used by the app - @dst6se started down this path and posted some useful details:

It looks like it’s MQTT over HTTP using the Alibaba Cloud platform - this might be helpful if you’re trying to reverse engineer the protocol further:

I think the little box is a RS485 device. I think (when I get my heatpump installed) I might try and sniff the RS485 protocol which would then do away with the little Wi-Fi box.

I’m still trying to figure out which pump to get but will be getting one shortly. If its RS485 that will indeed be useful to know as it should be trivial to spec up a board with an ESP to communicate with that along with an rs485 3.3v TTL.

And I’m just astounded how all the pool equipment seem to use this awful alibaba cloud system. The aquatemp app is rated 1 on google as well.

The Evoheat units definitely are RS485. I approached Evoheat to try and get any specs on the protocol but had no success there. The wifi box is a generic RS485 to wifi thermostat/heat pump controller unit.

Reverse engineering RS485 sounds fun but beyond my skills - if you go down this path let me know as I’d be happy to junk mine and move to something ESP-based - just don’t know where to start! Most of what the app exposes is basically just the raw registers and values, so knowing what each of those map to is relatively straightforward - I’ve also got the installer login to the device itself which makes it easy to see what the “friendly” description is for the register values.

When I first got it the app itself was running HTTP (no HTTPS) which I raised with Evo - a few months later it was updated to use HTTPS instead…

I’ve got the Astral Viron EQ chlorinator + VSP – they supposedly support a ModBus-based protocol (the chlorinator to the pump is proprietary) – but that’s the extent of what I could find and no idea where to go from there to reverse engineer it. It has bluetooth as well which I contemplated running some captures to see if that was an easier option to control it…

They do offer a cloud/wifi solution (ConnectMyPool) but the components you need to do it are seriously expensive (and I would much rather a local control option than another expensive junk cloud controller) - then I could pull back the ORP and pH values from the probes as well rather than having to get within bluetooth range with my phone…

My heat pump arrived and I checked out the main board. It has a 2 pin RS485 header so that sounds like all these devices use a common protocol, likely ModBus. Here is the relevant manual pages:

I opted not to get the wifi module so will be going in a little blind but I’ll see what I can read when I get my rs485 connector.

Hi i have installed a heat pump from ITS , they make use of the aqua temp app.Does someone know what the parameter/engineering password is?Thanks in advance

For mine the code was 022. I don’t know if that’s the same for all units.

Can’t wait for the spring/summer to come to Sweden so I can try out this integration from @sickidolderivative. :slight_smile:
Have been using a HomeBridge plugin that works fine, but that only gives me HomeKit integration. Great work and thanks for sharing @sickidolderivative!

@ajmawer My pump also have 022 as password for the config…

Hi @sickidolderivative
First of all, many thanks for all your hard work! It’s working great and really appreciated!

Is there a way to see the Pool_Watt as mentioned on Danne’s script? I suppose that’s the energy consumption? Would be great to see the energy consumption of my pool heat pump.

Many thanks