parent
74e0ba7fc9
commit
d54cb224ff
@ -0,0 +1,255 @@
|
|||||||
|
######################################################################
|
||||||
|
# @CCOSTAN - Follow Me on X
|
||||||
|
# For more info visit https://www.vcloudinfo.com/click-here
|
||||||
|
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Overview Subview - Sprinklers
|
||||||
|
# Rachio-backed sprinkler status, zone history, and watering controls.
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Notes: Linked from the Home Maintenance water view sprinkler tiles.
|
||||||
|
# Notes: Zone last-run values come from trigger-based template sensors in config/packages/rachio.yaml.
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
title: Sprinklers
|
||||||
|
path: sprinklers
|
||||||
|
subview: true
|
||||||
|
back_path: /lovelace/water
|
||||||
|
type: sections
|
||||||
|
max_columns: 3
|
||||||
|
sections:
|
||||||
|
- type: grid
|
||||||
|
column_span: 3
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Sprinklers
|
||||||
|
heading_style: title
|
||||||
|
# Fallback card: Mushroom is already the established Home Maintenance summary style.
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: >-
|
||||||
|
{% set status = states('sensor.rachio_controller_status') %}
|
||||||
|
{% set active = states('sensor.rachio_active_zone') %}
|
||||||
|
{% if status == 'watering' %}
|
||||||
|
Watering {{ active }}
|
||||||
|
{% elif status == 'rain_delay' %}
|
||||||
|
Rain delay is active
|
||||||
|
{% elif status == 'standby' %}
|
||||||
|
Controller is in standby
|
||||||
|
{% elif status == 'unavailable' %}
|
||||||
|
Sprinklers are unavailable
|
||||||
|
{% else %}
|
||||||
|
Sprinklers are ready
|
||||||
|
{% endif %}
|
||||||
|
secondary: >-
|
||||||
|
{% set last = states('sensor.rachio_last_run_summary') %}
|
||||||
|
{% set completed = state_attr('sensor.rachio_last_run_summary', 'completed_at') %}
|
||||||
|
{% set duration = state_attr('sensor.rachio_last_run_summary', 'duration_min') %}
|
||||||
|
{% if last not in ['unknown', 'unavailable', 'none', ''] and completed not in ['unknown', 'unavailable', 'none', '', none] %}
|
||||||
|
{% set when = as_datetime(completed).strftime('%b %d, %I:%M %p') | replace(' 0', ' ') %}
|
||||||
|
Last run: {{ last }} for {{ duration }} min at {{ when }}
|
||||||
|
{% else %}
|
||||||
|
{{ state_attr('sensor.rachio_controller_status', 'schedule_summary') | default('No completed run captured yet.', true) }}
|
||||||
|
{% endif %}
|
||||||
|
icon: mdi:sprinkler-variant
|
||||||
|
entity: sensor.rachio_controller_status
|
||||||
|
icon_color: >-
|
||||||
|
{% set status = states('sensor.rachio_controller_status') %}
|
||||||
|
{% if status == 'watering' %}
|
||||||
|
green
|
||||||
|
{% elif status in ['rain_delay', 'standby'] %}
|
||||||
|
blue
|
||||||
|
{% elif status == 'unavailable' %}
|
||||||
|
red
|
||||||
|
{% else %}
|
||||||
|
teal
|
||||||
|
{% endif %}
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
hold_action:
|
||||||
|
action: none
|
||||||
|
double_tap_action:
|
||||||
|
action: none
|
||||||
|
layout: horizontal
|
||||||
|
fill_container: true
|
||||||
|
- type: tile
|
||||||
|
entity: switch.daily_flex_watering_schedule
|
||||||
|
name: Flex watering schedule
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
- type: tile
|
||||||
|
entity: switch.carlo_rachio_rain_delay
|
||||||
|
name: Rain delay
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
- type: tile
|
||||||
|
entity: switch.carlo_rachio_in_standby_mode
|
||||||
|
name: Standby mode
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
- type: tile
|
||||||
|
entity: script.rachio_pause_watering_30
|
||||||
|
name: Pause 30 minutes
|
||||||
|
icon: mdi:pause-circle
|
||||||
|
tap_action:
|
||||||
|
action: call-service
|
||||||
|
service: script.rachio_pause_watering_30
|
||||||
|
- type: tile
|
||||||
|
entity: script.rachio_resume_watering
|
||||||
|
name: Resume watering
|
||||||
|
icon: mdi:play-circle
|
||||||
|
tap_action:
|
||||||
|
action: call-service
|
||||||
|
service: script.rachio_resume_watering
|
||||||
|
- type: tile
|
||||||
|
entity: script.rachio_stop_watering
|
||||||
|
name: Stop watering
|
||||||
|
icon: mdi:stop-circle
|
||||||
|
tap_action:
|
||||||
|
action: call-service
|
||||||
|
service: script.rachio_stop_watering
|
||||||
|
- type: grid
|
||||||
|
column_span: 3
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Zones
|
||||||
|
heading_style: subtitle
|
||||||
|
# Fallback card: Mushroom template card combines live zone state and the paired last-run sensor in one compact tile.
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: Front Lawn
|
||||||
|
secondary: >-
|
||||||
|
{% set completed = state_attr('sensor.rachio_front_lawn_last_run', 'completed_at') %}
|
||||||
|
{% set minutes = states('sensor.rachio_front_lawn_last_run') %}
|
||||||
|
{% if is_state('switch.front_lawn', 'on') %}
|
||||||
|
{{ state_attr('switch.front_lawn', 'Summary') | default('Watering now', true) }}
|
||||||
|
{% elif completed not in ['unknown', 'unavailable', 'none', '', none] %}
|
||||||
|
{% set when = as_datetime(completed).strftime('%b %d, %I:%M %p') | replace(' 0', ' ') %}
|
||||||
|
Last run: {{ when }} for {{ minutes }} min
|
||||||
|
{% else %}
|
||||||
|
{{ state_attr('switch.front_lawn', 'Summary') | default('No completed run captured yet.', true) }}
|
||||||
|
{% endif %}
|
||||||
|
icon: mdi:sprinkler-variant
|
||||||
|
entity: switch.front_lawn
|
||||||
|
icon_color: "{% if is_state('switch.front_lawn', 'on') %}green{% elif is_state('switch.front_lawn', 'unavailable') %}red{% else %}blue{% endif %}"
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
entity: sensor.rachio_front_lawn_last_run
|
||||||
|
double_tap_action:
|
||||||
|
action: none
|
||||||
|
layout: horizontal
|
||||||
|
fill_container: true
|
||||||
|
# Fallback card: same compact zone-state and last-run pairing for this zone.
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: Front Hedges
|
||||||
|
secondary: >-
|
||||||
|
{% set completed = state_attr('sensor.rachio_front_hedges_last_run', 'completed_at') %}
|
||||||
|
{% set minutes = states('sensor.rachio_front_hedges_last_run') %}
|
||||||
|
{% if is_state('switch.front_hedges_right_side_house', 'on') %}
|
||||||
|
{{ state_attr('switch.front_hedges_right_side_house', 'Summary') | default('Watering now', true) }}
|
||||||
|
{% elif completed not in ['unknown', 'unavailable', 'none', '', none] %}
|
||||||
|
{% set when = as_datetime(completed).strftime('%b %d, %I:%M %p') | replace(' 0', ' ') %}
|
||||||
|
Last run: {{ when }} for {{ minutes }} min
|
||||||
|
{% else %}
|
||||||
|
{{ state_attr('switch.front_hedges_right_side_house', 'Summary') | default('No completed run captured yet.', true) }}
|
||||||
|
{% endif %}
|
||||||
|
icon: mdi:sprinkler-variant
|
||||||
|
entity: switch.front_hedges_right_side_house
|
||||||
|
icon_color: "{% if is_state('switch.front_hedges_right_side_house', 'on') %}green{% elif is_state('switch.front_hedges_right_side_house', 'unavailable') %}red{% else %}blue{% endif %}"
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
entity: sensor.rachio_front_hedges_last_run
|
||||||
|
double_tap_action:
|
||||||
|
action: none
|
||||||
|
layout: horizontal
|
||||||
|
fill_container: true
|
||||||
|
# Fallback card: same compact zone-state and last-run pairing for this zone.
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: Left Side House
|
||||||
|
secondary: >-
|
||||||
|
{% set completed = state_attr('sensor.rachio_left_side_house_last_run', 'completed_at') %}
|
||||||
|
{% set minutes = states('sensor.rachio_left_side_house_last_run') %}
|
||||||
|
{% if is_state('switch.left_side_house', 'on') %}
|
||||||
|
{{ state_attr('switch.left_side_house', 'Summary') | default('Watering now', true) }}
|
||||||
|
{% elif completed not in ['unknown', 'unavailable', 'none', '', none] %}
|
||||||
|
{% set when = as_datetime(completed).strftime('%b %d, %I:%M %p') | replace(' 0', ' ') %}
|
||||||
|
Last run: {{ when }} for {{ minutes }} min
|
||||||
|
{% else %}
|
||||||
|
{{ state_attr('switch.left_side_house', 'Summary') | default('No completed run captured yet.', true) }}
|
||||||
|
{% endif %}
|
||||||
|
icon: mdi:sprinkler-variant
|
||||||
|
entity: switch.left_side_house
|
||||||
|
icon_color: "{% if is_state('switch.left_side_house', 'on') %}green{% elif is_state('switch.left_side_house', 'unavailable') %}red{% else %}blue{% endif %}"
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
entity: sensor.rachio_left_side_house_last_run
|
||||||
|
double_tap_action:
|
||||||
|
action: none
|
||||||
|
layout: horizontal
|
||||||
|
fill_container: true
|
||||||
|
# Fallback card: same compact zone-state and last-run pairing for this zone.
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: Backyard Shrubs
|
||||||
|
secondary: >-
|
||||||
|
{% set completed = state_attr('sensor.rachio_backyard_shrubs_last_run', 'completed_at') %}
|
||||||
|
{% set minutes = states('sensor.rachio_backyard_shrubs_last_run') %}
|
||||||
|
{% if is_state('switch.backyard_shrubs', 'on') %}
|
||||||
|
{{ state_attr('switch.backyard_shrubs', 'Summary') | default('Watering now', true) }}
|
||||||
|
{% elif completed not in ['unknown', 'unavailable', 'none', '', none] %}
|
||||||
|
{% set when = as_datetime(completed).strftime('%b %d, %I:%M %p') | replace(' 0', ' ') %}
|
||||||
|
Last run: {{ when }} for {{ minutes }} min
|
||||||
|
{% else %}
|
||||||
|
{{ state_attr('switch.backyard_shrubs', 'Summary') | default('No completed run captured yet.', true) }}
|
||||||
|
{% endif %}
|
||||||
|
icon: mdi:sprinkler-variant
|
||||||
|
entity: switch.backyard_shrubs
|
||||||
|
icon_color: "{% if is_state('switch.backyard_shrubs', 'on') %}green{% elif is_state('switch.backyard_shrubs', 'unavailable') %}red{% else %}blue{% endif %}"
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
hold_action:
|
||||||
|
action: more-info
|
||||||
|
entity: sensor.rachio_backyard_shrubs_last_run
|
||||||
|
double_tap_action:
|
||||||
|
action: none
|
||||||
|
layout: horizontal
|
||||||
|
fill_container: true
|
||||||
|
- type: grid
|
||||||
|
column_span: 3
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Last Run History
|
||||||
|
heading_style: subtitle
|
||||||
|
# Fallback card: native entities card exposes attributes without adding more template helpers.
|
||||||
|
- type: entities
|
||||||
|
title: Last Completed Run
|
||||||
|
entities:
|
||||||
|
- entity: sensor.rachio_last_run_summary
|
||||||
|
name: Zone
|
||||||
|
- type: attribute
|
||||||
|
entity: sensor.rachio_last_run_summary
|
||||||
|
attribute: duration_min
|
||||||
|
name: Duration
|
||||||
|
suffix: min
|
||||||
|
- type: attribute
|
||||||
|
entity: sensor.rachio_last_run_summary
|
||||||
|
attribute: completed_at
|
||||||
|
name: Completed
|
||||||
|
- entity: sensor.rachio_active_zone
|
||||||
|
name: Active zone
|
||||||
|
# Fallback card: native history graph gives sparse duration history without another custom graph template.
|
||||||
|
- type: history-graph
|
||||||
|
title: Zone Run Durations - Last 90 Days
|
||||||
|
hours_to_show: 2160
|
||||||
|
entities:
|
||||||
|
- entity: sensor.rachio_front_lawn_last_run
|
||||||
|
name: Front Lawn
|
||||||
|
- entity: sensor.rachio_front_hedges_last_run
|
||||||
|
name: Front Hedges
|
||||||
|
- entity: sensor.rachio_left_side_house_last_run
|
||||||
|
name: Left Side House
|
||||||
|
- entity: sensor.rachio_backyard_shrubs_last_run
|
||||||
|
name: Backyard Shrubs
|
||||||
|
cards: []
|
||||||
Loading…
Reference in new issue