Water softener (CLACK WS1) consumed m3/liter monitoring

I use two optocouplers on my clack reader esp32 PCB’s

Any plans to convert this to ESPHome? :slight_smile:

Which optocouplers do you use in the version 2 of your board and the resistance values? Will be hard to get the shipping of your boards to my place. My question on esphome can be discarded as i’ve finally read a disclaimer. Maybe make it bigger? Excellent work

I have made now a newer design of my Clack Reader with some improvements (V4)

  • connect to the clack flowmeter and count the pulses (pulse per liter can be set)
  • L/min and a waterflow leakage alarm after delay
  • determination of regeneration steps by measuring the power of the drivemotor
  • history of the last regeneration cycle times and used water and days in service
  • salt measuring, only measure lower levels (so no water will be measured during fill
  • Date of salt fill, last regeneration, resin cleaner date (count down timer) etc.

Suitable for Clack WS1 (branch ws1 on github) and Clack WS PI (Disc valve) (branch main on github)
Only for 15 VDC clack power supply (not 12 VAC)
fonske/clack-reader-v4 (github.com)
More pictures in the readme directory on github

2 Likes

Which Clack is the preferred model? WS1 or WS PI

I and going to replace my Fleck BINRUN head, it doesn’t store the programming so it is lost after power outages…

@Brad_Ford
I asked Aqmos if the WS PI can be delivered only as head, but thats not possible.
also some internal parts are difficult to get. (like the ceramic discs and wheels)
So the Clack WS1 CI is fine also. (downflow brining, wet or dry salt tank possible)
And parts can be ordered… Look at [sinegroup]( WS1 CI, TC Clack residential valve (sinergroup.net)) if you have a business account. Although shipment from itally is also expensive.
I ordered recently a clack WS1 (injector C for 8" vessel), with DLFC from clack (017) and a riser tube.
15010301-019 (7e) Clack WS1CI / WS1TC DLFC 017 (1.7 gpm) for 3/4" - vessel 8" softener
Powersupply is 15 VDC (and not 12 VAC as mentioned)

Look at the materials.
I am not sure if you need to order seperately:
15010301-033 (2e) Clack WS1CI / WS1TC Drain line insert tube
15010301-034 (3e) Clack WS1CI / WS1TC Drain line elbow nut 3/4"

1 Like

thanks for that, I am looking to see if I can source them at the moment (Thailand)… Please nobody buy the BINRUN it needs to be in the BIN and then RUN…

1 Like

This is definitely the best option for Clack softener I could find. Now can monitor salt level, regen stage and even block / force regen remotely. Watermeter is a bonus. For sure can recommend @Fonske kit / ESPhome integration.
https://github.com/fonske/clack-reader-v4

If you choose to get premade kit - it’s installation is absolutely strait-forward and all needed wires/connectors are included. Just use manual for wiring and add device to HA. Thats almost all you need to do.


1 Like

Where do you get the kit?

Pm @Fonske
or there is contacts on Git

1 Like

@Fonske, great work. I’m interested on the clack-reader but I’m unsure which connections between the reader and the clack are required. Only the flow meter? I have the WS1 and only one relay is populated on the board. Lastly, will this v4 board fit inside the WS1?

Hi @FPSkywalker

The flowmeter is read with a extra 3pin molex to molex cable
Also the power is read (to see the motor current for the steps simulation) with an extra 4 pin molex to molex cable
There is also a 2 pin molex connection on the back to be used if you have a DP-SW connection on your clack WS1 PCB
An overview (exept the dp sw) can be found on github in readme directory
clack-reader-v4/readme/Clack_reader_v4_connections_on_clack_ws1_EN.pdf at ws1_usa · fonske/clack-reader-v4

The power supply adapter need to be 15 VDC (not 12 VAC) but most WS1 boards accept 15 VDC also

It should fit inside the WS1 cabinet.

Thanks @Fonske. I went on github and looked on the manuals folder before asking but I must’ve missed the document. Thanks for the quick reply. Will be ordering soon.

1 Like

I would add, that I’ve received all the cables ready to connect, so just needed to setup/connect the kit only

1 Like

Your solution looks interesting. How is it working? Do you have any Esphome code for this? thanks.

I would like to be able to add a counter for ‘daily’ usage. Right now its only current and total. How do I add daily metric to the ESPHome yaml config?

sensor:
  - platform: pulse_counter
    pin: GPIO5
    unit_of_measurement: 'gal/min'
    accuracy_decimals: 1
    update_interval: 5s
    name: 'Water Meter House'
    filters:
    - lambda: return (x / 62.0);  
    
    total:
      unit_of_measurement: 'gal'
      name: 'Water Meter Total'
      state_class: total_increasing
      device_class: water
      accuracy_decimals: 1
      filters:
      - lambda: return (x / 62.0);

Hi, I installed an earlier version of Alphons Clack ESP PCB about 10 months ago and I thought I would share my “LEAK DETECTOR” automation.

In reality it is only able to detect an un-interrupted flow of water downstream of the Clack WS1, so only a partial solution to leak detection, however it solved a problem I had of taps being left running in my house leading to cold water for showers in the morning (93 year-old parent!). So in my automation a leak means constant water flow through the Clack for 40 minutes or more.

The solution I use requires a single helper and one automation. In reality 2 helpers might be easier to understand, however I started with one helper and stuck with it. Apologies if the automation / coding is not elegant - I am not a coder by any stretch of the imagination and have learnt by trial and error. It works and I am happy with it.

HELPER
This is created in the UI, a Counter with step size 2. The counter is incremented by the automation.

AUTOMATION

alias: softwater_leakage_handling_alarm_5
description: >-
  monitors clack softwater pulses in 5 min periods and sends an alert when
  contiguous periods exceed a usage threshold
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.clack_watermeter_pulse
    from: "off"
    to: "on"
    id: pulse
  - trigger: time_pattern
    minutes: /5
    id: period
  - trigger: numeric_state
    entity_id:
      - counter.softwater_leak_counter_5
    above: 7999
    id: warning1
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - pulse
        sequence:
          - action: counter.increment
            target:
              entity_id:
                - counter.softwater_leak_counter_5
            data: {}
      - conditions:
          - condition: trigger
            id:
              - period
        sequence:
          - if:
              - condition: template
                value_template: >-
                  {% set ctr = states('counter.softwater_leak_counter_5') | int
                  %}

                  {% if (ctr - (ctr / 1000) | int * 1000 ) > 3 %}
                    {{ true }}
                  {% endif %}
            then:
              - action: counter.set_value
                metadata: {}
                data:
                  value: >-
                    {{ ( states('counter.softwater_leak_counter_5') | int / 1000
                    ) | int * 1000 + 1000 }}
                target:
                  entity_id: counter.softwater_Leak_counter_5
            else:
              - action: counter.reset
                metadata: {}
                data: {}
                target:
                  entity_id: counter.softwater_Leak_counter_5
      - conditions:
          - condition: trigger
            id:
              - warning1
        sequence:
          - action: notify.mobile_app_xxxxx
            metadata: {}
            data:
              title: Water leak warning 5 minute counter
              message: |
                The water leak alarm has been triggered.
                This happened at: {{ now() }}
              data:
                channel: water
                importance: high
                ttl: 0
mode: queued
trace:
  stored_traces: 100

Trigger “pulse” when Clack sends a pulse to represent water flow. This will trigger an increment of the helper counter.

Trigger “period” to perform an aggregation every 5 minutes. If there are more than 3 pulses in the previous 5 minutes it will increment the helper counter by 1000, and also reset the pulse counts back to zero. This is my workaround to use a single counter and you could have 2 here to simplify the logic.

Example at 5 mins counts = 4 which represents a constant flow. The counter is now set to 1000. At 10 mins the pulse counter increments another 4 which also represents a constant flow. In this case the counter is set to 2000 (i.e. constant flow for 2 consecutive 5-minute periods. If the next pulse counter is 1 then the constant flow is interrupted and the counter goes back to 0. A bit like “snakes and ladders” game we played as children!

Trigger “warning1” to represent a leakage alarm
If the helper counter hits 8000 then we have had constant flow for 40 minutes, this represents a leakage condition and the alarm triggers and sends a message to my android phone and received by home assistant app for android.

1 Like

I have a Clack WS1CI I am looking for a way to activate regeneration via external contacts. external regeneration signal pinout. Does anyone know if this system has this?