Added self-managed time control to a3pool.yaml #1
92
a3pool.yaml
92
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,15 +153,19 @@ time:
|
||||
platform: sntp
|
||||
on_time:
|
||||
- seconds: 0
|
||||
minutes: 0
|
||||
hours: 8
|
||||
months: 5-10
|
||||
months: 4-10
|
||||
then:
|
||||
- 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:
|
||||
- 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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user