Skip to content

Instantly share code, notes, and snippets.

@lukyjay
Last active May 10, 2024 13:47
Show Gist options
  • Select an option

  • Save lukyjay/009f0d07f2b3067adf881ea0fc62ff74 to your computer and use it in GitHub Desktop.

Select an option

Save lukyjay/009f0d07f2b3067adf881ea0fc62ff74 to your computer and use it in GitHub Desktop.
Simple Irrigation System
blueprint:
name: Simple Irrigation System
description: |
A blueprint for controlling an irrigation sprinkler system with master and zone solenoid valves.
domain: automation
input:
days_of_week:
name: Days of the Week
description: Days on which the irrigation should run
selector:
weekdays:
include_weekend: true
start_time:
name: Start Time
description: Time to start the irrigation process
selector:
time:
master_switch:
name: Master Solenoid Switch
description: Switch entity for the Master (must be on for other zones to work)
selector:
entity:
# domain: switch
zone_1_switch:
name: Zone 1 Switch
description: Switch entity for Zone 1
default: {}
selector:
entity:
domain: switch
zone_1_runtime:
name: Zone 1 Runtime
description: Runtime for Zone 1
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_2_switch:
name: Zone 2 Switch
description: Switch entity for Zone 2
default: {}
selector:
entity:
domain: switch
zone_2_runtime:
name: Zone 2 Runtime
description: Runtime for Zone 2
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_3_switch:
name: Zone 3 Switch
description: Switch entity for Zone 3
default: {}
selector:
entity:
domain: switch
zone_3_runtime:
name: Zone 3 Runtime
description: Runtime for Zone 3
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_4_switch:
name: Zone 4 Switch
description: Switch entity for Zone 4
default: {}
selector:
entity:
domain: switch
zone_4_runtime:
name: Zone 4 Runtime
description: Runtime for Zone 4
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_5_switch:
name: Zone 5 Switch
description: Switch entity for Zone 5
default: {}
selector:
entity:
domain: switch
zone_5_runtime:
name: Zone 5 Runtime
description: Runtime for Zone 5
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_6_switch:
name: Zone 6 Switch
description: Switch entity for Zone 6
default: {}
selector:
entity:
domain: switch
zone_6_runtime:
name: Zone 6 Runtime
description: Runtime for Zone 6
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_7_switch:
name: Zone 7 Switch
description: Switch entity for Zone 7
default: {}
selector:
entity:
domain: switch
zone_7_runtime:
name: Zone 7 Runtime
description: Runtime for Zone 7
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_8_switch:
name: Zone 8 Switch
description: Switch entity for Zone 8
default: {}
selector:
entity:
domain: switch
zone_8_runtime:
name: Zone 8 Runtime
description: Runtime for Zone 8
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_9_switch:
name: Zone 9 Switch
description: Switch entity for Zone 9
default: {}
selector:
entity:
domain: switch
zone_9_runtime:
name: Zone 9 Runtime
description: Runtime for Zone 9
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
zone_10_switch:
name: Zone 10 Switch
description: Switch entity for Zone 10
default: {}
selector:
entity:
domain: switch
zone_10_runtime:
name: Zone 10 Runtime
description: Runtime for Zone 10
default: {}
selector:
number:
min: 1
max: 60
unit_of_measurement: minutes
variables:
master_switch: !input master_switch
zone_1_switch: !input zone_1_switch
zone_1_runtime: !input zone_1_runtime
zone_2_switch: !input zone_2_switch
zone_2_runtime: !input zone_2_runtime
zone_3_switch: !input zone_3_switch
zone_3_runtime: !input zone_3_runtime
zone_4_switch: !input zone_4_switch
zone_4_runtime: !input zone_4_runtime
zone_5_switch: !input zone_5_switch
zone_5_runtime: !input zone_5_runtime
zone_6_switch: !input zone_6_switch
zone_6_runtime: !input zone_6_runtime
zone_7_switch: !input zone_7_switch
zone_7_runtime: !input zone_7_runtime
zone_8_switch: !input zone_8_switch
zone_8_runtime: !input zone_8_runtime
zone_9_switch: !input zone_9_switch
zone_9_runtime: !input zone_9_runtime
zone_10_switch: !input zone_10_switch
zone_10_runtime: !input zone_10_runtime
mode: single
trigger:
platform: time
at: !input start_time
condition:
- condition: time
weekday:
- !input days_of_week
action:
- service: switch.turn_on
target:
entity_id: !input master_switch
- service: switch.turn_on
target:
entity_id: !input zone_1_switch
- delay: !input zone_1_runtime
- service: switch.turn_off
target:
entity_id: !input zone_1_switch
- service: switch.turn_on
target:
entity_id: !input zone_2_switch
- delay: !input zone_2_runtime
- service: switch.turn_off
target:
entity_id: !input zone_2_switch
- service: switch.turn_on
target:
entity_id: !input zone_3_switch
- delay: !input zone_3_runtime
- service: switch.turn_off
target:
entity_id: !input zone_3_switch
- service: switch.turn_on
target:
entity_id: !input zone_4_switch
- delay: !input zone_4_runtime
- service: switch.turn_off
target:
entity_id: !input zone_4_switch
- service: switch.turn_on
target:
entity_id: !input zone_5_switch
- delay: !input zone_5_runtime
- service: switch.turn_off
target:
entity_id: !input zone_5_switch
- service: switch.turn_on
target:
entity_id: !input zone_6_switch
- delay: !input zone_6_runtime
- service: switch.turn_off
target:
entity_id: !input zone_6_switch
- service: switch.turn_on
target:
entity_id: !input zone_7_switch
- delay: !input zone_7_runtime
- service: switch.turn_off
target:
entity_id: !input zone_7_switch
- service: switch.turn_on
target:
entity_id: !input zone_8_switch
- delay: !input zone_8_runtime
- service: switch.turn_off
target:
entity_id: !input zone_8_switch
- service: switch.turn_on
target:
entity_id: !input zone_9_switch
- delay: !input zone_9_runtime
- service: switch.turn_off
target:
entity_id: !input zone_9_switch
- service: switch.turn_on
target:
entity_id: !input zone_10_switch
- delay: !input zone_10_runtime
- service: switch.turn_off
target:
entity_id: !input zone_10_switch
- service: switch.turn_off
target:
entity_id: !input master_switch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment