Implementation of Aqua Temp controlle

Hi. Would it be possible to implement a Aqua Temp controller? It’s widely used for controlling heat pumps (pools)

From the App Store description:
"Auqa Temp makes it possible for you to communicate with your heat pump pool heater easily from a local WiFi network(IEEE 802.11b/g standard WiFi network), or remotely over the Internet. Auqa Temp is compatible with heat pump pool heaters that must be with WiFi module that provided by the product suppliers.

With Auqa Temp you can:

  • be able to monitor the state of the heat pump pool heater, such as the available hot water volume, the current outlet water temperature, the current running mode, etc.

  • be able to set the state of the heat pump pool heater, such as ON/OFF setting, target water temperature setting, mode setting, timer setting, etc.

  • be informed of any failures of the heat pump pool heater.

  • be provided with considerate service that the suppliers will solve any detected problems of the units in the background before you ask for assistance."

The Aqua temp app uses a HF-LPT230 Low Power WiFi Module

I’m also very interested in this. I think there may be an API but also there’s a rs485. If anyone has any knowledge of this or how to get control that would be awesome.

If you would like to try my bash script the url is



1 Like

Nice work @dst6se

Has anyone tried http on port 80 on the local device (heat pump) IP address to see if it responds with any sort of portal as per the previously mentioned PDF?

There is mention of MQTT support within the device, so I wonder if it’s configured to a cloud MQTT service similar to Tuya.

Hi ! I made a tcpdump between the heatpump and internet , the heatpump are talking mqtt to the server !
So i dont thought that you could control the heatpump on port 80 !
The alternative would be to spoof the url the heatpump are talking to , so it will talk to your own mqtt server.
During my test, the heatpump connect to my mqtt without problem , but the the payload seems to be some binary code , so I didnt mange to decrypt the payload !
The url is “” port 1883

edit: I does not read the pdf before , you could connect to the webgui , with url
And you are able to upload fw etc.
So it may be possible to modify the firmware to do whatever you want .

Hi Danne,

I have implemented your bach script and most likely have got the scrips installed and seeing mqtt info. However, I cannot get any info and when running some of the parts (like ./heater info) it looks when analyzing it complains on either user id or pw (I get null as token) and the err msg from the json return stated that when decomposed the call and run one of the initializations.

Is it always the same url and API call for regardless the manufacturer of the heater i.e the vendor tailor its software to use the app and its API and the App using the same infrastructure etc?

I just need to make sure that my heat pump using the same infrastructure as your scripts intends to use. In any case, very neat piece of software and would help me very much to integrate the heater pump.


Hi !

If you are using the aquatemp app , the URL should be the same , and not complain about id or pw.

If you try to send the following sting , and replace useremail and password with yours !

curl -s -H "Content-Type: application/json; charset=utf-8" -X POST -d '{"user_name":"[email protected]","password":"password","type":"2"}'

Does it work ?

if it works, are you sure that you are using TAB in the settings file , and not spaces , between

username [email protected]
password 12345678

and you have installed the jq command to parse json ?



Manny Thanks for some guidance. I tried your curl snip, and that worked, then I could continue the setup and actually moved the instal to an debian vm I had instead of my rpi tryout bench. After move and new install everything works as a sharm. There is some warnings in systemctl services complaining of the path, but seams to work anyway.

Big thanks for the package and help, very much appreciated :slight_smile:

Perfect , glad I could help !

I have no knowledge of how/what a bash script is or how to set it up. I am very keen to get my heatpump through to HA.
I tried simply to run the curl command and got the following Json error:

Would anyone be prepared to help me to implement this with baby steps? thanks in advance.


Seems API is down

[email protected]:~# curl -s -H "Content-Type: application/json; charset=utf-8" -X POST -d '{"user_name":"[email protected]","password":"password","type":"2"}'
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
[email protected]:~#

anybody expireincing same thing?


Yes, I had the same issue.
I resolved it after changing to this URL:

Hi , strange , still work for me with https !
The orginal url is the one you mention , but it also works with https , so i change it to https !
The password is sent with cleartext if you are using http , the application do some hash on your password before sending it with http ! , not secure , but better than non hash !

Hi Danne,

can I use your script when I am running the HA with Home Assistant Core and OS? What do I need to do in order to install the script in that case? Have tried to access the Pi-prompt through SSH to execute your commands/scripts but have not been successful. Is there any easier way to use the scripts to access the Aqua Temp data in HA?


I forked Danne’s shell script into HA native custom climate entity. It allows controlling heat pump’s temperature, HVAC mode and fan speed without the complexity of linux services and MQTT.

1 Like

Just installed the component. Works flawlessly from the start, many thanks for your work.
One thing I cannot find is the outlet temperature. Is it something that I missed in my setup or it is currently not available as attribute?

Thanks, glad to hear it works fine. The outlet temperature is available as the „T03” code in the entity attributes.

Ok, got it.
I wanted to template a sensor reading this value but as it is a level lower as standard attribute (eg. ambient temp) I just can’t get it to work.
Any help how to do it would be appreciated.

That’s indeed tricky, as you need to use a loop to find it. I’ve added the outlet_temperature attribute to github code, so that should be much easier now. Here’s the template code in case anyone wanted to use the hard way :slight_smile:

{% for code in state_attr('climate.heatpump','codes') %}
{% if code['code'] == 'T03' %}
{{ code['value'] }}
{% endif %}
{% endfor %}
1 Like

You’re the man:)
I’ve used the new version from github, but also learned the hard way. Never know when this skill may become useful:)
Thanks again.

1 Like