Aquarite Pool

I’ve been working on getting this exact same SWG integrated into my Home Assistant. I’m not there yet, but my research shows that once you supply 10v to the terminal next to the RS485, it will activate that communication. Then it should be possible to interface with it over that. One of the other pool projects outlines the protocol to use. I think it can be relayed over MQTT.

I didn’t realize that we needed to feed the 10v for it to work. I thought that was just a 10v output.
So the connections would look something like this?

Do you think the protocol for our Aquarite is Modbus and the integration shown above will work?

So,
I tried to plug it the way I just shown above.
I’m not getting any info on the device:
tasmota
Am I missing something here maybe in the firmware?
This is what I’ve done:

1 - installed tasmota lite on the esp8266
2-in tasmocompiler used these settings:

3 - in tasmo compiler added those lines under custom parameters:

#ifndef USE_NEOPOOL
#define USE_NEOPOOL                       // Add support for Sugar Valley NeoPool Controller - also known under brands Hidrolife, Aquascenic, Oxilife, Bionet, Hidroniser, UVScenic, Station, Brilix, Bayrol and Hay (+6k flash, +60 mem)
#endif

4- compiled the firmware
5- Upgraded the firmware I’ve created (tasmota.bin.gz) under tasmota firmware upgrade on the device.
6- set the neopool pins NeopoolRx and NeopoolTx under configure module and set it to generic.
7- Configured username, password and address under mqtt.

Am I missing something?
Help would be appreciated.
Oh and btw, I’m only doing all that just to be able to read my salt concentration in home assistant. I don’t need to control stuff on the Aquartie. So if somebody have a better approach to this please let me know. :slight_smile:

1 Like

Maybe try ticking the box for the ‘Modbus Bridge’?

I tried but unfortunately it didn’t work…same results.
Regardless if it works or not, should I be getting at least the fields but without the data?
Like, I should get “Aquarite Voltage: 0 or N/A?” or those fields are populated automatically when the data is flowing?
ref from somebody else.

right now even with modbus checked in the firmware, I’m not getting anything.
image

I’m not too familiar with Tasmota and I just want to make sure I’m not doing something wrong in the process.

That screenshot looks to be from NeoPool - I think there are a few more steps to configure that. As seen here: Sugar Valley NeoPool Controller - Tasmota

Hi,

Can u share your custom component?

I also have the same SWG but I didn’t know I had to feed it voltage. I’ll try that today and see if I get any communications.

I’m really curious to see if you can make it work.

Have you checked your connectivity ? nothing being display is in general due to failty cable; etc…

Note your Hayward TX is connected to RX on your board and Hayward RX to TX on the board; double check it.

Back to enable more commands from HA to Tasmota

Example with MQTT, list of command can be found at Sugar Valley NeoPool Controller - Tasmota

Replace “poolwatch” with whatever topic you have defined in Tasmota for MQTT

input_number:
  set_poolwatch_phmin:
    name: pHMin
    initial: 7.0
    min: 0
    max: 14
    step: 0.1
    mode: slider
  set_poolwatch_phmax:
    name: pHMax
    initial: 8.0
    min: 0
    max: 14
    step: 0.1
    mode: slider
  set_poolwatch_redox:
    name: Redox
    initial: 700
    min: 300
    max: 800
    step: 5
    mode: slider
  set_poolwatch_hydrolysis:
    name: Hydrolysis
    initial: 10
    min: 0
    max: 30
    step: 1
    mode: slider

automation:
  - alias: pHMin slider moved in GUI
    trigger:
      platform: state
      entity_id: input_number.set_poolwatch_phmin
    action:
      service: mqtt.publish
      data_template:
        topic: cmnd/poolwatch/NPpHMin
        retain: false
        payload: "{{ states('input_number.set_poolwatch_phmin') | float }}"

  - alias: pHMax slider moved in GUI
    trigger:
      platform: state
      entity_id: input_number.set_poolwatch_phmax
    action:
      service: mqtt.publish
      data_template:
        topic: cmnd/poolwatch/NPpHMax
        retain: false
        payload: "{{ states('input_number.set_poolwatch_phmax') | float }}"

  - alias: Redox slider moved in GUI
    trigger:
      platform: state
      entity_id: input_number.set_poolwatch_redox
    action:
      service: mqtt.publish
      data_template:
        topic: cmnd/poolwatch/NPRedox
        retain: false
        payload: "{{ states('input_number.set_poolwatch_redox') | int }}"

  - alias: Hydrolysis slider moved in GUI
    trigger:
      platform: state
      entity_id: input_number.set_poolwatch_hydrolysis
    action:
      service: mqtt.publish
      data_template:
        topic: cmnd/poolwatch/NPHydrolysis
        retain: false
        payload: "{{ states('input_number.set_poolwatch_hydrolysis') | int }}"

mqtt:
  switch:
    - unique_id: poolpump_switch
      name: "Pool Pump Switch"
      command_topic: "cmnd/poolwatch/NPFiltration"
      payload_on: "1"
      payload_off: "0"

    - unique_id: pool_lights
      name: "Pool Lights"
      command_topic: "cmnd/poolwatch/NPLight"
      payload_on: "1"
      payload_off: "0"

  select:
    - unique_id: poolpump_mode
      name: "Pool Pump Mode"  
      command_topic: "cmnd/poolwatch/NPFiltrationMode"
      command_template: >- 
        {% set values = { 'Manual':'0', 'Auto':'1', 'Heating':'2', 'Smart':'3', 'Intelligent':'4' } %}
        {{ values[value] if value in values.keys() else '0' }}
      value_template: >- 
        {% set values = { '0':'Manual', '1':'Auto', '2':'Heating', '3':'Smart', '4':'Intelligent' } %}
        {{ values[value] if value in values.keys() else 'Error' }}
      options:
        - Manual
        - Auto
        - Heating
        - Smart
        - Intelligent

I did checked it and all my connections are good.
I even tried to invert them just in case, but that didn’t help.

I will try switching the rs485 see it that could be the issue.

I would have really liked to see if either thatkide or trky was getting it to work since they have the same controller as mine but I haven’t heard from them.

I’ll try to switch the rs485 and report back.

Thanks for your help

Made some progress on the pool automation.
Still a lot to do and debug, any help is welcome :slight_smile:

fdebrus/NeopoolHomeAssistant (github.com)

1 Like

Thanks you very much for your work !
I’m gonna try soon on my Aquarite+

Thank you very much to share it like this!

Thanks for your posts and work. I’m still undecided between Tasmota NeoPool and GitHub - Crewski/njsPC-HA: Home Assistant integration for nodejs-PoolController.

I’m waiting for my new Aquarite+ VS system to be delivered, so in the meantime I prepared this device for the RS485 communication:

It’s an M5Stack Atom Lite connected to its Tail485 addon (on the bottom).

I chose this because the Atom Lite is a very good ESP32 device, I use it for other projects to, and in this case the real benefit is the Tail485 addon that integrates a 9-24V DC/DC voltage regulator, that outputs the 5V needed to power the Atom Lite. This means that no external power supply is needed when connected to an RS485 interface that also offers a power pin, like the Aquarite+ with its 12v pin. So basically you have a very small device (it’s like two coins), that you can connect and power inside the Aquarite+ directly (I’ll check if the wifi signal is strong enough in there, otherwise I’ll put it outside obviously).

The cost is $15 total: Search Results | m5stack-store

I will use it with the Tasmota NeoPool custom compiled firmware. But I also prepared the Tasmota Modbus RS485 Bridge TCP firmware, to try njsPC-HA.

I will test it next week when the Aquarite+ will be delivered. :slight_smile:

Just gave the PoolController a try, I can’t get any data.
I will further read the wiki :slight_smile: Keep us posted on your findings

You might want to check this discussion: Home Assistant Integration · tagyoureit/nodejs-poolController · Discussion #559 · GitHub

Did you configure Tasmota as MODBUS_BRIDGE_TCP and configured the connection of njs-PC to the port:ip of the esp?

I’m waiting for the shipment of the products from Spain, as soon as I receive it I need to modify some pipes etc., then I will take care of the system connections and update you with my findings.

I’ve used an RS485 to Wifi bridge (HF2211). I can communicate to the IP of the bridge and read the bus of the aquarite (tested with AVReporter modbus). But somehow PoolController is not reading the bus. I see it connected to the RS485 bridge but no traffic flow. Well, I will keep troubleshooting later.

To fast track the testing, I’ve used my synology to host poolcontroller as a docker. I’ve seen strange behaviour in the past with docker on synology. I will replartform to a bare metal linux as time allow.

EDIT: PoolController do not support Aquarite Plus only Aquarite T (pro) and 925/940. So this will not work for us.
image

Did some dev tell you that? Application Protocol should be the same for the basic functions. Did you try the Aquarite T15?

See here for details of the protocol payloads etc.: Pool controller protocol - Coert Vonk

If you also installed the DashPanel, you could use the Message Manager to check for the messages…

Just my own deduction, not a developer feedback.

Those are the MODBUS Register from the Aquarite, aka SugarValley

MODBUS