From 48e1bbaeef4dbadcb223e1d84ae0049ab0c4fe5a Mon Sep 17 00:00:00 2001 From: NBSgamesAT Date: Tue, 12 Jul 2022 13:59:45 +0200 Subject: [PATCH] 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