From 774016bbfbfcd52d6a85e0c72045ae899e05371a Mon Sep 17 00:00:00 2001 From: NBSgamesAT Date: Tue, 28 Jun 2022 11:37:19 +0200 Subject: [PATCH 1/4] Adds a timezone and automatic pump control. Further control coming soon --- a3pool.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/a3pool.yaml b/a3pool.yaml index 209a6dc..82ed343 100644 --- a/a3pool.yaml +++ b/a3pool.yaml @@ -47,6 +47,7 @@ switch: - platform: template optimistic: false name: pump + id: pump lambda: |- if (id(pump_state).state) { return true; @@ -70,6 +71,24 @@ switch: - delay: 500ms - switch.turn_off: relay +time: + timezone: "Europe/Vienna" + id: a3poolTime + platform: sntp + on_time: + - seconds: 0 + minutes: 0 + hours: 8 + months: 5-10 + then: + - switch.turn_on: pump + - seconds: 0 + minutes: 0 + hours: 8 + months: 5-10 + then: + - switch.turn_off: pump + dallas: - pin: D4 update_interval: 10s From ebb9d7f65bbea3550c1c9c933b957030f9737cba Mon Sep 17 00:00:00 2001 From: NBSgamesAT Date: Tue, 28 Jun 2022 11:40:29 +0200 Subject: [PATCH 2/4] Fixed slight bug with the turn_off time at a3pool --- a3pool.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/a3pool.yaml b/a3pool.yaml index 82ed343..3602766 100644 --- a/a3pool.yaml +++ b/a3pool.yaml @@ -84,7 +84,7 @@ time: - switch.turn_on: pump - seconds: 0 minutes: 0 - hours: 8 + hours: 20 months: 5-10 then: - switch.turn_off: pump From 48e1bbaeef4dbadcb223e1d84ae0049ab0c4fe5a Mon Sep 17 00:00:00 2001 From: NBSgamesAT Date: Tue, 12 Jul 2022 13:59:45 +0200 Subject: [PATCH 3/4] This is the finished product for a3pool. Reminds me: Documentation is not good yet! --- a3pool.yaml | 96 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 88 insertions(+), 8 deletions(-) diff --git a/a3pool.yaml b/a3pool.yaml index 3602766..f151de3 100644 --- a/a3pool.yaml +++ b/a3pool.yaml @@ -32,6 +32,81 @@ binary_sensor: pullup: true id: pump_state +number: + - platform: template + name: "Start Hour" + id: start_h + optimistic: true + min_value: 0 + max_value: 23 + restore_value: true + initial_value: 8 + mode: box + step: 1 + - platform: template + name: "Start Minute" + id: start_m + optimistic: true + min_value: 0 + max_value: 59 + initial_value: 0 + restore_value: true + mode: box + step: 1 + - platform: template + name: "End Hour" + id: end_h + optimistic: true + min_value: 0 + max_value: 23 + restore_value: true + initial_value: 20 + mode: box + step: 1 + - platform: template + name: "End Minute" + id: end_m + optimistic: true + min_value: 0 + max_value: 59 + restore_value: true + initial_value: 0 + mode: box + step: 1 + +button: + - platform: template + name: "Sync To Clock" + on_press: + then: + - lambda: |- + int startMins = (int) (id(start_h).state * 60) + id(start_m).state; + int endMins = (int) (id(end_h).state * 60) + id(end_m).state; + int nowMins = (id(a3poolTime).now().hour * 60) + id(a3poolTime).now().minute; + + if(!id(control).state){ + // Make sure wierd error or whatever + return; + } + + if(startMins < endMins){ + if(startMins < nowMins && nowMins < endMins){ + id(pump).turn_on(); + } + else{ + id(pump).turn_off(); + } + } + else if(startMins > endMins){ + if(endMins < nowMins && nowMins < startMins){ + id(pump).turn_off(); + } + else{ + id(pump).turn_on(); + } + } + + switch: - platform: gpio pin: 5 @@ -41,6 +116,7 @@ switch: - switch.turn_off: relay - platform: template name: "Automate Control" + id: control optimistic: true restore_state: true @@ -77,17 +153,21 @@ time: platform: sntp on_time: - seconds: 0 - minutes: 0 - hours: 8 - months: 5-10 + months: 4-10 then: - - switch.turn_on: pump + - if: + condition: + lambda: 'return id(a3poolTime).now().hour == (int) id(start_h).state && id(a3poolTime).now().minute == (int) id(start_m).state && id(control).state;' + then: + - switch.turn_on: pump - seconds: 0 - minutes: 0 - hours: 20 - months: 5-10 + months: 4-10 then: - - switch.turn_off: pump + - if: + condition: + lambda: 'return id(a3poolTime).now().hour == (int) id(end_h).state && id(a3poolTime).now().minute == (int) id(end_m).state && id(control).state;' + then: + - switch.turn_off: pump dallas: - pin: D4 From 00ccfbfcc02824e4f230ccaab71c135e6013525e Mon Sep 17 00:00:00 2001 From: NBSgamesAT Date: Tue, 12 Jul 2022 14:07:59 +0200 Subject: [PATCH 4/4] Added a little bit to the README.md to mention the newest changes to a3pool.yaml --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index f3fb72b..07f44bb 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,10 @@ This is a standard config for the a3pool. Nothing special by far with 2 temp sen The temperature sensors have the `pool_temperature` and `solar_temperature` and will show report the pool temperature and solar temperature respectively every 10 seconds. There is also one switch that is designed to turn the pump on and off. This works by giving an 500ms long impulse that should turn the pump on/off and sensing on a GPIO ping whenever the pump is currently on/off. This switch carries the name of `pump`. I know HOW CREATIVE... + +It also has the possibility of having it's own clock. +Simply adjust the time using the `start_h`, `start_m` as well as `end_h`, `end_m` and enable the `control` switch to ensure the automatic control in on. The button `sync_to_clock`is used to sync the system back to the clock without having to know/care about on/off times, simply press the button and it should switch to on/off if it should be on/off respectively. + **HOWEVER: If the pump is set to off or to the physical clock with physical switch in the garage this will not work!** It will still report it's state correclty however. There is an other switch that does not have any functionality yet but it's `automate_control` if anyone wants to know.