Hello together,
I had also issues with the measuring of w2839. When the pump is switched of and a couple of minutes after measuring start the values are not accurated.
For this reason I have connected the peristaltic pump to a separate Tuya WIFI switch that also controls the filter pump.
All values can be ready easily with the tuya local integration.
For visalisation I have used pool monitor card.
YAML automation for pool dosing independent from W2839:
- switch.schwimmbad_steuerung_schalter_1 = chlorine dosing
- switch.schwimmbad_steuerung_schalter_2 = PH minus dosing
- switch.schwimmbad_steuerung_schalter_3 = Filter Pump control
YAML Code
alias: Schwimmbad Automatik Dosierung
description: PH und ORP Regelung
triggers:
- entity_id:
- switch.schwimmbad_steuerung_schalter_3
trigger: state
from: "off"
to: "on"
actions:
- action: switch.turn_off
metadata: {}
target:
entity_id:
- switch.schwimmbad_steuerung_schalter_1
- switch.schwimmbad_steuerung_schalter_2
data: {}
- alias: 15min Warten um die Messung zu stabilisieren
delay:
hours: 0
minutes: 15
seconds: 0
milliseconds: 0
- repeat:
while:
- condition: state
entity_id: switch.schwimmbad_steuerung_schalter_3
state: "on"
sequence:
- choose:
- conditions:
- condition: or
conditions:
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_orp
above: 1000
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_orp
below: 200
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_ph
below: 3
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_ph
above: 9
sequence:
- data:
title: Schwimmbad Alarm
message: >
Ungültige Messwerte erkannt. PH={{
states('sensor.schwimmbad_monitor_ph') }} ORP={{
states('sensor.schwimmbad_monitor_orp') }} Temperatur={{
states('sensor.schwimmbad_monitor_temperatur') }}
notification_id: schwimmbad_warnung_sensor
action: persistent_notification.create
alias: Fehlerprüfung Wertebereich
- conditions:
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_ph
below: 7
sequence:
- action: persistent_notification.create
data:
title: Schwimmbad Warnung
message: >
pH-Wert zu niedrig: {{
states('sensor.schwimmbad_monitor_ph') }}. Keine
Chlor-Dosierung aktiv.
notification_id: schwimmbad_warnung_ph
alias: Wenn ph < 7.0 - Dosierung inaktiv
- conditions:
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_orp
above: 780
sequence:
- data:
title: Schwimmbad Warnung
message: >
ORP ist hoch: {{states('sensor.schwimmbad_monitor_orp') }}
mV
notification_id: schwimmbad_warnung_orp
action: persistent_notification.create
alias: Warnung wenn ORP zu hoch
- conditions:
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_ph
above: 7.3
sequence:
- condition: state
entity_id: switch.schwimmbad_steuerung_schalter_3
state: "on"
- target:
entity_id: switch.schwimmbad_steuerung_schalter_2
action: switch.turn_on
data: {}
- delay:
seconds: 15
- target:
entity_id: switch.schwimmbad_steuerung_schalter_2
action: switch.turn_off
data: {}
alias: Wenn ph > 7.3 ZUERST PH senken
- conditions:
- condition: and
conditions:
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_ph
above: 7.1
below: 7.3
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_orp
below: 700
- condition: numeric_state
entity_id: sensor.schwimmbad_monitor_temperatur
above: 15
sequence:
- condition: state
entity_id: switch.schwimmbad_steuerung_schalter_3
state: "on"
- target:
entity_id: switch.schwimmbad_steuerung_schalter_1
action: switch.turn_on
- delay:
seconds: 10
- target:
entity_id: switch.schwimmbad_steuerung_schalter_1
action: switch.turn_off
alias: Wenn PH OK (7.1 - 7.3) und ORP<700, dann ORP heben
- alias: >-
20min warten um die Dosierung zu stabilisieren bzw. Neumessung
durchzuführen.
delay:
hours: 0
minutes: 20
seconds: 0
milliseconds: 0
- alias: Dosierung deaktivieren - Sicherheitsfunktion
repeat:
while:
- condition: switch.is_on
target:
entity_id:
- switch.schwimmbad_steuerung_schalter_1
- switch.schwimmbad_steuerung_schalter_2
options:
for: "00:00:00"
behavior: any
sequence:
- action: switch.turn_off
metadata: {}
target:
entity_id:
- switch.schwimmbad_steuerung_schalter_1
- switch.schwimmbad_steuerung_schalter_2
data: {}
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
mode: single
Have fun! Improvements and ideas are welcome!


