Implementation of Aqua Temp controller

I have an iStore too and was wondering that RS485 or similar would work with some of the older ESP32 boards I have lying around (and off battery). I can’t see why not.

I’m guessing that when the iStore wifi module comes out it will be Tuya - and this looks a lot more attractive.

Is the 5th wire there underneath your thumb (yellow with green stripe) the ground/earth wire for the connection?

Hi, I cant seem to login to the HA component. All fine through the app. I logout of the app but now cant get HA to login. Seems it suddenly does’nt like the credentials. Log below

Log details (ERROR)

This error originated from a custom integration.

Logger: custom_components.aqua_temp.managers.aqua_temp_api
Source: custom_components/aqua_temp/managers/aqua_temp_api.py:110
integration: Aqua Temp (documentation, issues)
First occurred: 12:20:08 (3 occurrences)
Last logged: 12:36:49

Failed to login, Please update credentials and try again

Yes 5th cable is earth. can use it to ground the enclose you put the ESP32 device in if you would like. Not needed for communication

1 Like

Thanks

I’m not having much luck. I am assuming because the Evoheat and iStore are basically the same system (same manufacturer - rebranded) that the MODBUS settings would be the same - but I am getting the message that implies the “99”

`modbus_controller:

id: device_addr_1
address: 99
modbus_id: hws_modbus
setup_priority: -10`

might be wrong for my unit because it tells me it is off-line.

I don’t know anything about MODBUS so have no way of identifying the controller address

OK - I’m a dummy.

The issue was a dry connection for ground on the RS485 board. I now have data rolling in from my iStore 270L via an EZSBC ESP32 board. I’m getting power from the 12 volt line and use a buck converter to drop it to 5V for the ESP32.

Thanks to @epayne787 - I just followed his code and it is working for the iStore, although I do get constant CRC errors in the log:

[13:10:17][W][modbus:126]: Modbus CRC Check failed! C071!=00
[13:10:20][W][modbus:126]: Modbus CRC Check failed! C099!=B4
[13:10:20][W][modbus:126]: Modbus CRC Check failed! C071!=00

I gather that could be caused by a range of things including the cable. For now I will ignore it and come back later.

Thank you again to @epayne787

1 Like

Hi, Im having no success with the original implementation and would love to try the RS-485 Route. Are there any instructions, parts needed, etc.
There seem to be links but those are broken, not sure if they contain instructions. Any help much appreciated.
Thanks

I was not involved in the original part of this thread, but it seems a lot of heat pumps (AC, HWS and pool heaters) use an almost identical control board (HW211), so what @epayne787 outlined using an RS485 board with an ESP32 development board (or Atom format) will be a good basis.

ESPHome outlines the basics, but there are plenty of tutorials on hardware if you search:

The issue will be what set-up your control board has been given by the manufacturer. You need to know the controller address (99 in my case) and the address of each of the sensors (eg 2021 for the temperature at the top of the tank) If your manufacturer has taken the cookie cutter approach, all of the code above could work.

Just be aware that Modbus is used to control the equipment, so if you mess it up you could be altering settings including critical items, so use with care.

Based on the code posted by @epayne787 I have my system working pretty well but I wanted to have information on the compressor status so I could see when the HWS was heating and so could calculate energy used based off the running time.

The spreadsheet posted earlier showed that bit8 at address 2050 identified whether the compressor was running, but I had trouble collecting the status. I not understand the bitmask formatting. Out of desperation I tried AI - Microsoft’s CoPilot. It wasn’t quite right - it offered input_type rather than “register_type” but that was easily fixed - and it works. Here’s the code:

binary_sensor:
  - platform: modbus_controller
    modbus_controller_id: device_addr_1
    id: compressor_status
    address: 2050
    register_type: holding
    bitmask: 0x0100
    name: "Compressor Status"

Explanation:

  • address: 2050 → This matches the register address from your image.
  • bitmask: 0x0100 → This isolates bit8 (since 0x0100 in hexadecimal corresponds to 0000000100000000 in binary).
  • input_type: holding → Ensures the correct register type is used.

This setup will allow ESPHome to monitor the compressor’s status and integrate it into Home Assistant or other automation systems.

Created repository with the current yaml version and project files so that it improved.

1 Like

Great work here.

This will also work with an iStore 270L (and probably 180L) because they use the same control board. I have the first version of the yaml posted by @epayne787 connected to my iStore and it just works. No need for the Tuya servers.

There are a couple of other rebranded versions of this heat pump, so there is a good chance it will work there as well.

Hi, I have purchased the suggested hardware and had a response from the Heater manufacturer that simply says the Modbus this project is based on is identical to their product (my Heat Pump) which is a 2020 Norsup P24 originally mentioned in this thread using the Aquatemp connection.
My question therefore which I appreciate is answered above (albeit not absolutely clear in my mind) - Assuming I do away with the Aquatemp Wifi box, can I use the connection cables that originally went to that (pic below) to connect to the RS485? Thanks everyone

An Update on trying to connect to my Nordsup. I purchased the Atom S3 Lite and the RS485. Using the wires that were wired to the WIFI module, I wired yellow to B and White to A, I powered the Atom directly with USB (rather than using the 12v supply with a buck converter) Therefore Red, Black & Yellow/Green (Earth) not used.
I get nothing through.
Not sure what I am doing wrong. One thing however, the 485 actually says 12v on the power connection, yet Steve already said he dropped the power down to 5v with a buck converter and I assumed these ESP’s only work at 5v, yet EPayne has no mention (that I saw) of reducing voltage?
Appreciate any help.

Hey @davidtja, If you have the same gear as @epayne787, why would you not just use the 12V coming off the unit? Check between the red and black with a multimeter and make sure it’s 12V, and just wire it up. I followed what epayne787 did, and it works a treat.

Thanks for advice. I did as you suggested and it seemed to power the Atom up but sadly no data. I am not sure if @epayne787 has the same heat pump as me all I am going by is a response from the manufacturer that said the Modbus pdf he published was identical. Unfortunately I cant tell as circuit diagram is pretty destroyed - I have included images in case anyone can give me a steer. Thanks for your input.


WOAL WOAL WOAL!!! NO WAY YOU GOT IT WORKING??? Omg this would be a massive breakthrough, I got my in Feb 2025 and still working to get RS485 going, Can you assistant me with wiring and do I have to use the Atom lite I have one but I can use my RS485 to TTL and ESP32 etc

No you don’t have to use the Atom. I have a standalone RS485 board and a basic ESP32 (my brand is the EZSBC but anything that works with ESPHome should work)

The power from the HWS is 12v, so you need something like a buck converter to bring it down to 5v or just under (the ESP32 dev boards can’t handle 12v like the Atom set-up that is shown.)

If you follow the colours on @epayne787 pics you will see which wire goes to which terminal on the RS485, then it’s a matter of deciding which GPIOs to use on your ESPHome code.

The pic is my finished product (RS485 board is hidden but you can see the wires going to it top left.) I have tidied it up since then

Fancy!!! Does your RS485 have the DI RI etc ports on it?

I just get confused because I read so many different guides and support posts and every single one says swap them over etc.

I nearly got everything, I’m using a USB stepdown 12v to 5v USB to power the ESP32 and the 5v pin from the ESP32 powers the RS485.

I also have BULK buck converts as well but USB 5v is a cleaner setup for me. Not important but I have almost the exact same ESP32 as you.

My tools
RS485 to TTL
ESP32 Expressif
12v USB adaptor which is getting powered from the 2 pins from the HWS 12v+ | B | A | GND

This is the one I’m using, but anything like this one will do - you can get them with pins already soldered in. (The terminal next to B- is ground - you might not have to connect that because the black wire is also ground, but if yu are not using the HWS 12v you will need that connected)

eBay - RS485

Just follow the colours used by @epayne787 to match the terminals. My plug is here and I just fitted some terminals using wire from Jaycar.

Ok but to my normal confusion state again. Where did that plug terminal come from that you are holding??

I assume you are connecting it to the Topband mainboard’s RS485 pins which is the 12v GND A and B?