Skip to content

Commit 580496e

Browse files
authored
Merge pull request #24 from hostcc/fix/disabled-schedule-not-persisted
fix: Disabled schedule not being persisted
2 parents 0f6158c + d0d18f2 commit 580496e

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

controllers.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,8 @@ switch:
229229
id(flowerbed_sprinklers_standby_switch).turn_on();
230230
#ifdef HAS_SCHEDULE
231231
// Disable scheduled runs
232-
lawn_sprinklers_disabled->turn_on();
233-
flowerbed_sprinklers_disabled->turn_on();
232+
lawn_sprinklers_disabled_aggregate->turn_on();
233+
flowerbed_sprinklers_disabled_aggregate->turn_on();
234234
#endif
235235
// Turn off peripherals power (water level relay and alike)
236236
id(${peripherals_power_off_relay_id}).turn_on();
@@ -240,9 +240,9 @@ switch:
240240
id(flowerbed_sprinklers_standby_switch).turn_off();
241241
id(lawn_sprinklers_standby_switch).turn_off();
242242
#ifdef HAS_SCHEDULE
243-
// Enabled scheduled runs
244-
lawn_sprinklers_disabled->turn_off();
245-
flowerbed_sprinklers_disabled->turn_off();
243+
// Enable scheduled runs
244+
lawn_sprinklers_disabled_aggregate->turn_off();
245+
flowerbed_sprinklers_disabled_aggregate->turn_off();
246246
#endif
247247
// Enable peripherals power
248248
id(${peripherals_power_off_relay_id}).turn_off();

schedule.yaml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,20 @@ switch:
6666
optimistic: true
6767
restore_mode: RESTORE_DEFAULT_OFF
6868
entity_category: config
69+
# Internal switch that aggregates state of winter mode and the user-visible
70+
# switch above. The intermediate entity is needed to prevent winter mode from
71+
# affecting the state of the schedule might have been set by the user
72+
- platform: template
73+
id: lawn_sprinklers_disabled_aggregate
74+
internal: true
75+
optimistic: true
76+
restore_mode: DISABLED
6977
lambda: |-
7078
// Prevent enabling schedule if winter mode is active
7179
if (id(winter_mode).state)
7280
return true;
73-
return {};
81+
// Otherwise, follow the state of the switch above
82+
return id(lawn_sprinklers_disabled).state;
7483
7584
# Schedule, flowerbed sprinklers
7685
- platform: template
@@ -129,11 +138,17 @@ switch:
129138
optimistic: true
130139
restore_mode: RESTORE_DEFAULT_OFF
131140
entity_category: config
141+
# See comment above on its purpose
142+
- platform: template
143+
id: flowerbed_sprinklers_disabled_aggregate
144+
internal: true
145+
optimistic: true
146+
restore_mode: DISABLED
132147
lambda: |-
133148
// See above
134149
if (id(winter_mode).state)
135150
return true;
136-
return {};
151+
return id(flowerbed_sprinklers_disabled).state;
137152
138153
number:
139154
# Schedule, lawn sprinklers
@@ -203,7 +218,7 @@ dynamic_on_time:
203218
fri: lawn_sprinklers_fri
204219
sat: lawn_sprinklers_sat
205220
sun: lawn_sprinklers_sun
206-
disabled: lawn_sprinklers_disabled
221+
disabled: lawn_sprinklers_disabled_aggregate
207222
on_time:
208223
- logger.log:
209224
format: 'schedule: Waiting for water tank to be full'
@@ -229,7 +244,7 @@ dynamic_on_time:
229244
fri: flowerbed_sprinklers_fri
230245
sat: flowerbed_sprinklers_sat
231246
sun: flowerbed_sprinklers_sun
232-
disabled: flowerbed_sprinklers_disabled
247+
disabled: flowerbed_sprinklers_disabled_aggregate
233248
on_time:
234249
- logger.log:
235250
format: 'schedule: Waiting for water tank to be full'

0 commit comments

Comments
 (0)