Implementation of Aqua Temp controller

I’ve got esphome and a TTL-to-RS485 adaptor hooked up to the RS485 port on my EVO270-1. I’m currently mucking about with modbus, trying to talk to the heat pump controller as if I were the wifi dongle. Using the control panel I’ve set parameter H30 (Unit address) to 50, but I’m unable to talk to the controller via RS485. I put a logic analyser on the bus and could only see my transmissions, no response from the controller. I do see a blip to ground every 650ms or so.

I’ve tried with/without a termination resistor, with/without flow control, and a couple dozen other variations of wiring and baud rate, with no success. If I had one of the wifi controllers I could sniff the comms, but they ain’t cheap.

Can anyone advise if it is possible to have two logins. One for the app and one for the integration. I have setup two different logins but they both work only on the app.
If i dont login to the app i can use either on the integration.
Im sure i previously had this working perhaps something changed. Thanks for advice.

1 Like

I was also wondering this. Because if I use the app it seems ok, then in HA it will either stay or disappear. I was thinking it may not like multiple logins?

I suspect the hosting service is really poor. The login process and sharing confuses itself.

I may be late to the party, but would like to enquire if someone could please assist me.

I have a generic china heatpump, with s Chiller-300 controller, which also has RS485. Has someone maybe been able to hack the modbus of this Chiller-300 controller?

It is paired with the AquaTemp WiFi module (white plug 3-pin) however, I cannot seem to get it working correctly, constantly have the flashing RS485 communication error light.

Next best idea was to go direct and use modbus and a Pi to control the unit.

Any info will be appreciated.

Hello

Can someone confirm that this works in 2025 - controlling Aqua Temp wifi module / app from HA ?

I can confirm it works.

I’m not sure if anyone has seen this but someone else is doing Modbus on a heat pump via node red and a small RS485 to ethernet controller - no aquatemp controller if I read it correctly.
I was looking at it and thinking I could maybe wire the ethernet controller the same way and then trying via home assistant modbus integration from that point. I’ve not got time to play around with it now, but posting this here in-case it helps move anyone else forward in the mean-time.

Aquatemp / https://heatpumps4pools

any luck with this? I am trying the same

Hello
I install this component with my water pool heating with succes, but

I have 161 entities some are easy to understand but
I search the entitie with the possibilité to have the Error code E03, when i have not the sufficient flow rate

My pump is a IR75 INV

Thank’s for your help

Hi, I have always had the same issue.

I thought I might trying a constant ping to the device as a means of ‘keep-alive’ I will report back. 12 hrs and so far so good. It usually disconnects after 24/48hrs and I need to power cycle.

Hello
I have the same issue with disconnection off thé wifi, on ha and in the official app
What is your solution with ping?
You ping the ip adress of the heat pump.
Every x minutes?
Thank s for tour help

Here’s as far as I got: GitHub - tjhowse/evoheat_modbus

The modbus messages come through with a brief gap between long messages, which breaks most modbus implementations.

Modbus map for the EVO270-1 HW211 board.

Could you repost please? File is unavailable.

Is this map for Modbus communications between the wifi unit and the HW211 board?

1 Like

It is the modbus map of the hw211, i used an atom s3 lite esp32 with an rs485 to read the modbus variables to home assistant, works well

So you are using this RS-485 interface on the HW211? If so can you share more info about your setup, please? I am very interested in getting full control of this HWS.

Yes, those 3 pins and the red for 12V as seen in picture below. Code below is reading the simple temperatures but using the modbus map full control can be achieved.

esphome:
name: esphome-web-xxxx
friendly_name: ESP32 Atom S3 Lite HWS
min_version: 2024.11.0
name_add_mac_suffix: false

esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf

Enable Home Assistant API

api:
encryption:
key: !secret hws_encryption

Allow Over-The-Air updates

ota:

  • platform: esphome

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
use_address: !secret hws_ip_address

Enable Web server.

web_server:
port: 80

RS485 UART Configuration

uart:
id: uart_bus
rx_pin: GPIO5
tx_pin: GPIO6
baud_rate: 9600
data_bits: 8
parity: NONE
stop_bits: 1
rx_buffer_size: 256

Add the Modbus controller

modbus:
id: hws_modbus
uart_id: uart_bus

Sensors and controls for your hot water system

modbus_controller:

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

sensor:

  • platform: wifi_signal
    name: “WiFi Signal db”
    update_interval: 60s
    entity_category: “diagnostic”
  • platform: modbus_controller
    modbus_controller_id: device_addr_1
    name: “Ambient Temperature”
    id: ambient_temp
    register_type: holding
    address: 2019
    value_type: U_WORD
    unit_of_measurement: “°C”
    accuracy_decimals: 1
    filters:
    • lambda: return (x-60)*0.5;
  • platform: modbus_controller
    modbus_controller_id: device_addr_1
    name: “Bottom Tank Temperature”
    id: bottom_tank_temp
    register_type: holding
    address: 2020
    value_type: U_WORD
    unit_of_measurement: “°C”
    accuracy_decimals: 1
    filters:
    • lambda: return (x-60)*0.5;
  • platform: modbus_controller
    modbus_controller_id: device_addr_1
    name: “Top Tank Temperature”
    id: top_tank_temp
    register_type: holding
    address: 2021
    value_type: U_WORD
    unit_of_measurement: “°C”
    accuracy_decimals: 1
    filters:
    • lambda: return (x-60)*0.5;
  • platform: modbus_controller
    modbus_controller_id: device_addr_1
    name: “Coil Temperature”
    id: coil_temp
    register_type: holding
    address: 2022
    value_type: U_WORD
    unit_of_measurement: “°C”
    accuracy_decimals: 1
    filters:
    • lambda: return (x-60)*0.5;
  • platform: modbus_controller
    modbus_controller_id: device_addr_1
    name: “Suction Temperature”
    id: suction_temp
    register_type: holding
    address: 2023
    value_type: U_WORD
    unit_of_measurement: “°C”
    accuracy_decimals: 1
    filters:
    • lambda: return (x-60)*0.5;
1 Like