Changes to ASEKO Pool Live and API that will affect the current integration

ASEKO Announcement Changes to “Pool Live” and “Pool Remote”
Aseko Asin

UPDATE 2024-09-25! The great creators of the HA Aseko Integration have done work to make it run with the new API so should be fine. As the manufacturer will produce a specific API for Smart Home systems around the beginning of 2025. There might be more upcoming updates to the integration but for now you should be able to run it with the basics as before without disruptions. All post below is if you have the knowledge and want to go further with moving it locally. Aseko won’t share any documentation so we’re trying to figure things out.

Note! After posting this it has come to my attention that there is an option to send the data locally to an own built Python app or using Node-Red. The downside is that you cut the data flow to the Aseko server meaning you won’t get any data for the official Website or the App. Plus its more work and I recommend that you have some good knowledge and understand what you’re dealing with. However in my case I prefer to have the data in HA as its accessible to all family members. What I will do when the HA integrations is back up and running… we will see. Hopefully this blogg will help you if you want to go down the same route. Good Luck!

Link to Integration Documentation

Dear fellow users of the Aseko Pool Dosing System and Home Assistant! And the great creator of the Integration. (Thanks by the way for creating this integration for us.)

How will ASEKOS changes affect our Smart Home setup when changes are made to their API, Web Interface and Apps?

In their message:
"We are pleased to inform you that during the week of September 10th to 15th, 2024, we will be releasing significant updates to the Aseko POOL Live and Aseko POOL Remote apps. These updates are essential for the continued use of ASEKO applications. **Without installing them, the apps will no longer be functional.

We will notify you by email on the day the updates are released on the App Store and Google Play."
end of message

STOP WORKING?!*
The engineering of the Aseko system seem to be changing totally meaning there might be issues with all non official created developments. The only way that have helped us smarthome users to integrate the Aseko sensors into our main platforms.
If there will be an easy way to change, upgrade the current app and get the sensor data is hard to say until we know what they’ve done… And it will be incredible sad if there isn’t a way to continue using this function.

An email sent to Aseko to get more information…
The answer:

  • “Unfortunately, the integration for smart home is not yet integrated. And the api end point which was previously used for open source integration will stop working.However, we will open an API endpoint for this propose and it should be available in the beginning of next year.”
    end of message

? Was there an open source integration? I did not know there was one! There is no documentation available, no guidelines on how to find out how to use this open source integration… strange. hmm

Great to hear that there will be an API endpoint… however it’s severals month away and they don’t seem to understand how important the smarthome community is. It doesn’t seem to be a priority.

Is there a way for us to put pressure on by creating a list with signed names from users telling them “we are important”? How many users of the app?

Would be good to get your opinions please

ASEKO UPDATE 10th SEPTEMBER 2024, 08:00 CET

This morning (European time) Aseko sent out the message:

  • Dear ASEKO app user, The update for the ASEKO POOL Live and POOL REMOTE apps will begin in one hour. During this time, the apps will be temporarily unavailable. We will notify you via email as soon as the update is finished and updated versions of applications are available on App Store and Google Play.
    Thank you for your understanding.

The Home Assistant Aseko Integration has gone Unavailable and has no contact to the cloud.

Will follow the development from this day and hope there won’t be any interruptions until they close down the old cloud servers. Or if this is actually the kill off on the integration until we have another solution.

Hmm, this is frustrating if there is no cloud API access for the foreseeable future, I only bought the Watersens system recently and one reason for picking it was that I could integrate with Home Assistant and build a pool dashboard!

I agree it is very frustrating. Perhaps we could request the developer to change this to a local integration? @milanmeu

The ASIN Aseko unit in my house is just a serial to TCP converter. (Designated K5 in my DHCP).
I was able to change the IP address it sends the serial data stream to my Node-red server. (username / password is admin/admin)

It sends some datagrams that are unencrypted and are reverse engineered.
The TCP packets > 27 bytes all contain the same information and is updated once every second.

Most are int16 numbers

I.e.

  • first 4 bytes are the serial number
  • 2 bytes starting from byte 14 are the pH value
  • 2 bytes starting from byte 20 are the cholorine value in mV
  • 2 bytes starting from byte 25 are the water temperature in °C
  • etc.

The only hiccup I can see for a possible home assistant integration is that you need to accept a tcp connection from the device. I don’t know if the core developers allow this and that a user of this integration would need to change some parameters in his Aseko unit.

Wow, yes, good sleuthing. Yes, my unit is the same. I agree that is the easiest way and actually a local mode would be favourable rather than cloud based. Might even be possible to keep the cloud app working by forwarding the messages onto aseko, if that was desirable.

Most likely it would need some kind of server process that could act as a message forwarder, perhaps via MQTT protocol or modbus-over-tcp?

1 Like

@tipofthesowrd Frustrating is only the first name of it. I hate cloud solutions. So tired and done with it. All devices should be local at base and if anyone wants a cloud solution they should decided to use whatever is good for them.

How did you manage to change the IP address to where it sends the serial data-stream? Is there a more detailed guide on how to do what you have done?

Thanks

Hi there,

I have done some RS485 sniffing (Aseko has internal RS485 port as well) and you can find the RS485 datagram description ( i have found somewhere) below:

It looks that this is producer´s working document, the translation reflects the state of the document in 2020.

New external display:
the automate sends cca 1 x per 10 seconds data at speed 57600 bauds. The data consist in following bytes:
1th byte: 0ah
2th byte: type of automate lower 4 byte 0 - 3 bit

  • 0 bit ,1’ - Cl probe *
  • 1 bit ,1’ - Rx probe*
  • 2 bit ,1’ - without probe dose*
  • 3 bit ,1’ - without probe sanosil *
  • upper 4 byte 4 - 7 bit*
  • 4 bit ,1’ aqua NET*
  • 5 bit ,1’ salt*
  • 6 bit ,1’ home*
  • 7 bit ,1’ profi *

3rd byte: ph upper byte
4th byte: ph lower byte
*5th byte: Rx or Cl upper byte *
*6th byte: Rx or Cl lower byte *
7th byte: Rx or Cl upper byte
*8th byte: Rx or Cl lower byte *
9th byte: teplota upper byte
10th byte: teplota lower byte
11th byte: error_1 - 00h no error, >00h error
12-15. byte - serial number
16th byte 0xff hexa
17th byte required pH - 1 dec, place
18th byte required Cl or Rx - for Cl 1 dec. place, for Rx needs to be multiplied by 10
19th byte 0xff hexa
20th byte how many hours without filtration
21th byte hourly dosage ml/m3 per hour
22th byte states of pumps0 0.bit - pump pH, 1.bit - pump Cl
23th byte not for general use
24th byte display
25th byte not for general use
26th byte not for general use
27th byte: crc - aah xor 1th byte xor…xor 26th byte

every value sent as hexadecimal number
pH, Cl,temperature - sent with 2 digits
for measured values 0xff hexa - error value
the communication should look like this:
0A 41 03 CF 00 00 00 00 00 C0 00 00 00 00 01 00 46 00 19 05 03 08 FF 00 02 00 40

Unfortunatelly I haven’t found a way how to overwrite any parameters.
Maybe we could sniff datagrams when changing configuration at unit itself.
I am pretty sure it sends some datagrams, so we could reverse engineering the protocol itself.

I would preffer local communication as well.
Feel free to ask for any testing if needed.

That’s really helpful, thanks! I wonder how the app calculates the pH/chlorine consumption from this data?

I have done sniffing for one of RS485 ports, dedicated only for External Aseko Display (External Touch Display en - Aseko Pool Technology ) connection. There is no need for consumption data for the scenarion. we could try sniffing another RS485 port, as stated in the user manual (red marked one):

Using cheap RS485->TCP converter like elfin ew 11 we could create local TCP connection quite easily and it would not affect cloud connection using inbuilt Aseko K5 TCP converter.

This is just a question of navigating to the local IP address of your Aseko unit via a web browser, then it is quite easy to see where you would change ‘pool.aseko.com’ to a different daddress.

1 Like

Ah, I see. This is the Aseko Pool Controller you are using I think, rather than the dosing unit?

The information above seems to be correct. I quickly threw together a Node-Red to check the information. With the position of the serial number I quickly came up with the following:

My dosing unit connects to my node red:

The unit always sends two packets. One of 27 bytes, which corresponds with the datagram above, and one of 120 bytes.

With the serial number I was able to find out some information in the 120 bytes packet as well. Most is double information but I also found temperature in the 120 bytes packets. This is my buffer parsers for the 27 bytes packet

I have Asin Aqua Salt : ASIN AQUA Salt en - Aseko Pool Technology

@jmnemonicj Sorry have to edit my reply. Went through your posts and noticed that the image over the ports might be the controller and not the dosing unit?

However the dosing unit might also have an RS485 port. Or I’ll try your suggestion on picking up the data via the IP port into Node-Red.

It is very little info or blogs on this product online. I am very grateful that you are sharing your knowledge with us. BIG Thank you. I am getting to work ASAP. :smile:

Hi, Asin Aqua Salt is controller and dosing unit all in one, plz check: Changes to ASEKO Pool Live and API that will affect the current integration - #13 by jmnemonicj

The image I posted is internal diagram from user guide (Aseko - Files ), just for purpose we can make local serial RS485 connection for sniffing the comm protocol.

My first step…

Weird that I never thought that this Aseko device would have a web UI. :lying_face: never crossed my mind. Pretty stupid.
@tipofthesowrd Thanks for knocking on my head and bringing this option to my attention. Now it’s a completely new ballgame. :thinking:

(Device is Aseko, Asin Net)
First step, get the data flow into Home Assistant via Node-Red (creating MQTT sensors) to monitor the current data from the Aseko Asin sensors.

This is what I’ve done:
In the Aseko Web UI: Changed the Aseko Local IP settings from DHCP to a static IP (to keep all comms steady)
In the Aseko Web UI: Changed the Aseko setting for Serial Port “Remote Server Adds” to my HA server (with Node-Red) IP address.

In NODE-RED:
Screenshot 2024-09-11 at 15.02.12

In Node-red the “TCP-IN” Node is Listening to the default port 47524 (stream of Buffer). I am getting data almost every second.

Screenshot 2024-09-11 at 15.02.28

Tried to identify where the correct data is in the Buffer. First used what was posted but got the wrong data. Spent some time going through the Buffer to parse. So I am starting with the main sensors for my first version. This is what I found. (Only receiving the 120 bytes packet, haven’t seen 27… yet).

In my function node:

const buffer = msg.payload;
const serialNumber = buffer.readUInt32BE(0);
const pH = buffer.readUInt16BE(14) / 100.0;
const redox = buffer.readUInt16BE(16);
const temperature = buffer.readUInt16BE(25) / 10.0;

msg.payload = {
    serialNumber: serialNumber,
    pH: pH,
    redox: redox,
    temperature: temperature
};

Next I’ll try to see what else I can find.
Anyone that manage to identify the data in the Buffer… please share so we can create an overview table for everyone who wants to go down this route.

Prio now is to find and parse the state of water flow to the probes.

From the Aseko Asin NET model. (If streams are different.)

Finding the data for Status of “Water Flow” to the probes.

My re-search and dig for the correct part to parse.
So how is it presented. As boolean or text. In the HA integration it turns up as “OK”. And the ASCII values are O=0x4F, K = 0x4B

If Boolean Flags? Looking at the offsets 6-9, 18-19, 22-23, etc. (Multiple occurrences of 0xFF) Could 255 be true as in Active?

or… Potential Text for Status (“OK”): Offsets 23-24 (0x50 0x58)**
The hex values 0x50 and 0x58 are not directly “OK” in ASCII (0x4F 0x4B for “OK”)

Anyone else having a thought?

> EDIT 15 SEP 2024
Haven’t figured out the “Water Flow”… need more time for that…

Listening to the streams coming out from the TCP port I got errors in Node-Red so I setup a switch to filter the different packages that seem to be sent out. Confirming what has been identified in previous posts in this thread there are different sizes on these packages.

  • First and most common 120. (Using, is where I get my data for the common sensors inc Redox. Works ok from what I can see without a deep dive into it.)
  • Second there is a 14
  • Third a 128 sized package
  • Then 106 sized starts to pop up
  • Later a 112 sized

So would be interesting what the different ones are containing and what function.

Hi All

In the link you will find a dump with several transfers via TCP. Unfortunately, I can neither recognize the serial number (110157093) nor pool values. Does anyone know how this is coded exactly? is the data processed in binary form? Thank you

Hi, adding my 2 cents, I found the following:
offset 20 might be Salinity * 10
offset 73 pool volume?
offset 74-75 startup delay in seconds? - in my case app shows 8 minutes, that’s 480 seconds, that’s 1 and 224 on 74-75

EDIT:
20 is definitely Salinity * 10
46-51 is date and time (YY MO DD HH MM SS)
the same data again on 86-91
68 Backwash every N days
69 Backwash starts at HH
70 Backwash starts at MM
71 Backwash takes N * 10 secs

1 Like

Hello everyone, there is information also here “Add support for ASIN AQUA Home after major update. · Issue #125657 · home-assistant/core · GitHub” and milanmeu is already on the subject. Have a nice evening.