This is the finished product for a3pool. Reminds me: Documentation is not good yet!

This commit is contained in:
Nicolas Bachschwell 2022-07-12 13:59:45 +02:00
parent ebb9d7f65b
commit 48e1bbaeef
Signed by: NBSgamesAT
GPG Key ID: B2F1E0D04F024688
1 changed files with 88 additions and 8 deletions

View File

@ -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