homeassistant/archive/packages/zone1.yaml.org

6.9 KiB

sensor:

  • platform: template sensors: zone_1_timer: value_template: '{{ "{:02d}".format(states.input_number.timer_hours_1.state|int) }}:{{ "{:02d}".format(states.input_number.timer_minutes_1.state|int) }}' friendly_name: "Time" last_run_zone_1: friendly_name: "Last Run" value_template: '{{ (as_timestamp(states.switch.zone_1.last_changed)) | timestamp_custom("%A, %d %h %H:%M") }}' next_run_zone_1: friendly_name: "Next Run" value_template: '{{states.sensor.zone_1_timer_reset_sensor.state}}' time_delta: friendly_name: "Zone 1 Timedelta" value_template: '{{states.input_number.repeat_1.state|int * 3600}}' duration_1: value_template: '{{states.input_number.duration_1.state | int}}mins' friendly_name: "Duration" repeat_1: value_template: '{{ "{:02d}".format(states.input_number.repeat_1.state|int)}}hrs' friendly_name: "Repeat in" rain_sensor: friendly_name: "Rainfall Threshold Sensitivity" value_template: >- {% if states.sensor.pws_precip_1d.state <= states.input_number.pws_precip_1d_sensitivity.state and states.sensor.pws_precip_today_metric.state <= states.input_number.pws_precip_today_metric_sensitivity.state %} dry {% else %} too wet {% endif %}

switch mqtt:

  • platform: mqtt name: "Zone 1" state_topic: "status/irrigation/80" command_topic: "cmnd/irrigation/80" payload_on: "ON" payload_off: "OFF" qos: 0 retain: true

binary_sensor mqtt:

  • platform: mqtt name: "ZONE 1" device_class: moisture state_topic: "cmnd/irrigation/POWER1" payload_on: "ON"

sensor mqtt:

  • platform: mqtt name: "Zone 1 Timer Reset Sensor" state_topic: "cmnd/zone_1_control/TIMER"

input_boolean: reset_zone_1: name: Reset Next Run Timer initial: off icon: mdi:lock-reset

input_number: timer_minutes_1: name: "Minutes" initial: 0 min: 0 max: 55 step: 1 icon: mdi:timer timer_hours_1: name: "Hour" initial: 6 min: 0 max: 23 step: 1 icon: mdi:timer duration_1: name: "Set Duration" initial: 3 min: 0 max: 15 step: 1 icon: mdi:camera-timer repeat_1: name: "Set Repeat" initial: 24 min: 0 max: 48 icon: mdi:repeat pws_precip_today_metric_sensitivity: name: "Rainfall mm Sensitivity" initial: 0.1 min: 0 max: 2 step: 0.1 icon: mdi:contrast pws_precip_1d_sensitivity: name: "Rainfall Probability Sensitivity" initial: 40 min: 0 max: 100 step: 10 icon: mdi:contrast

group: garden: view: yes control: hidden name: "Garden" entities:

  • group.solenoids
  • group.irrigation_timer_1
  • group.rain_sensor
  • sensor.pws_precip_today_metric
  • sensor.pws_precip_1d
  • binary_sensor.zone_1

solenoids: view: no name: "Back Garden Irrigation" icon: 'mdi:flower' entities:

  • switch.zone_1

rain_sensor: view: no name: "Rainfall Sensitivity" icon: mdi:contrast entities:

  • sensor.rain_sensor
  • input_number.pws_precip_today_metric_sensitivity
  • input_number.pws_precip_1d_sensitivity

irrigation_timer_1: view: no name: "Sprinklers Zone 1" icon: mdi:clock entities:

  • sensor.last_run_zone_1
  • sensor.next_run_zone_1
  • sensor.duration_1
  • sensor.repeat_1
  • group.setting_zone_1
  • automation.activate_zone_1_timer

setting_zone_1: view: no control: hidden name: "Settings" icon: mdi:settings entities:

  • sensor.zone_1_timer
  • input_number.timer_hours_1
  • input_number.timer_minutes_1
  • input_number.duration_1
  • input_number.repeat_1
  • input_boolean.reset_zone_1

automation zone_1_1: alias: "Activate Zone 1 Timer" trigger:

  • platform: time_pattern minutes: '/1'

condition: condition: and conditions:

  • condition: template value_template: '{{(as_timestamp(now()) | timestamp_custom("%A, %d %h %H:%M")) == states.sensor.next_run_zone_1.state}}'
  • condition: state entity_id: sensor.rain_sensor state: 'dry'

action:

  • service: script.turn_on entity_id: script.activate_irrigation_zone_1

automation zone_1_2: alias: "Zone 1 Active Notification" hide_entity: False trigger:

  • platform: state entity_id: switch.zone_1 from: 'off' to: 'on'

action:

  • service: notify.pushbullet data: title: "Irrigation Zone 1" message: "Watering has started"

automation zone_1_3: alias: "Zone 1 Completed Notification" hide_entity: False trigger:

  • platform: state entity_id: switch.zone_1 from: 'on' to: 'off'

action:

  • service: notify.pushbullet data: title: "Irrigation Zone 1" message: "Watering has completed"

automation zone_1_4: alias: "Zone 1 Timer Reset" trigger:

  • platform: state entity_id: input_boolean.reset_zone_1 from: 'off' to: 'on'

action:

  • service: mqtt.publish data: topic: "cmnd/zone_1_control/TIMER" retain: 1 payload_template: >- {%if now().strftime("%H:%M") > states.sensor.zone_1_timer.state %} {{(as_timestamp(now() )+24*3600 ) | timestamp_custom("%A, %d %h ")}}{{states.sensor.zone_1_timer.state}} {%else%} {{(as_timestamp(now() ) ) | timestamp_custom("%A, %d %h ")}}{{states.sensor.zone_1_timer.state}} {%endif%}
  • delay: seconds: 1
  • service: input_boolean.turn_off data: entity_id: input_boolean.reset_zone_1

automation zone_1_5: alias: "Extend Zone 1 Timer When Wet" trigger:

  • platform: time_pattern minutes: '/1'

condition: condition: and conditions:

  • condition: template value_template: '{{(as_timestamp(now()) | timestamp_custom("%A, %d %h %H:%M")) == states.sensor.next_run_zone_1.state}}'
  • condition: state entity_id: sensor.rain_sensor state: 'too wet'

action:

  • service: mqtt.publish data: topic: "cmnd/zone_1_control/TIMER" retain: 1 payload_template: '{{(as_timestamp(now() )+ states.sensor.time_delta.state | int) | timestamp_custom("%A, %d %h %H:%M") }}'

script: activate_irrigation_zone_1: alias: "Activate Irrigation Zone 1" sequence:

  • alias: "Switch on Zone 1" service: switch.turn_on entity_id: switch.zone_1
  • delay: '00:{{ states.input_number.duration_1.state | int }}:00'
  • alias: "Switch off Zone 1" service: switch.turn_off entity_id: switch.zone_1
  • alias: "Update Next Run Time" service: mqtt.publish data: topic: "cmnd/zone_1_control/TIMER" retain: 1 payload_template: '{{ (as_timestamp(states.switch.zone_1.last_changed)+ states.sensor.time_delta.state | int) | timestamp_custom("%A, %d %h %H:%M") }}'