Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type: custom:layout-card
- layout_type: custom:grid-layout
- cards:
- - type: vertical-stack
- cards:
- - type: entities
- entities:
- - type: custom:hui-element
- card_type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: input_text.irrigation_current_status
- name: |
- [[[ return states['sensor.irrigation_next_run'].state ]]]
- label: |
- [[[
- var cycle1_running = states['input_boolean.irrigation_cycle1_running'].state;
- var cycle2_running = states['input_boolean.irrigation_cycle2_running'].state;
- var cycle3_running = states['input_boolean.irrigation_cycle3_running'].state;
- if (cycle1_running == 'on')
- return 'RUNNING: ';
- else if (cycle2_running == 'on')
- return 'RUNNING: ';
- else if (cycle3_running == 'on')
- return 'RUNNING: ';
- else
- return 'NEXT RUN: ';
- ]]]
- show_label: true
- show_icon: false
- styles:
- grid:
- - grid-template-areas: "\"l n clash_icon warning\""
- - grid-template-columns: min-content min-content 8% 1fr
- - grid-template-rows: 1fr
- card:
- - border: none !important
- - background: none
- - padding: 0.3em 0em 0em 0.5em
- name:
- - justify-self: start
- - align-self: start
- - padding: 0em 0.5em
- - color: |
- [[[
- if (states['input_boolean.irrigation_master_control_switch'].state == 'off')
- return 'rgb(255, 165, 0)';
- else
- return 'var(--secondary-text-color)';
- ]]]
- label:
- - color: var(--primary-text-color)
- - justify-self: start
- - align-self: start
- custom_fields:
- clash_icon:
- - padding: 0em 0.5em
- - color: |
- [[[
- switch(states['binary_sensor.irrigation_cycle_start_clash'].state) {
- case 'on':
- return 'rgb(255, 165, 0)';
- case 'off':
- return 'transparent';
- }
- ]]]
- warning:
- - color: var(--accent-color)
- - justify-self: end
- custom_fields:
- clash_icon: |
- [[[
- return '<ha-icon icon="mdi:alert-rhombus-outline"></ha-icon>';
- ]]]
- warning: |
- [[[
- switch(states['input_boolean.irrigation_master_control_switch'].state) {
- case 'off':
- return '';
- case 'on':
- if (states['input_boolean.irrigation_testing_mode'].state == 'on')
- return '(Testing Mode is On)';
- }
- ]]]
- tap_action:
- action: |
- [[[
- if (states['binary_sensor.irrigation_cycle_start_clash'].state == 'on')
- return 'fire-dom-event';
- else
- return 'none';
- ]]]
- browser_mod:
- service: browser_mod.popup
- data:
- title: ⚠️ CYCLE SCHEDULE CLASH
- content:
- type: markdown
- content: >
- #### WARNING! You have overlapping cycle schedules...
- {{
- state_attr('binary_sensor.irrigation_cycle_start_clash',
- 'clash_text') }}
- Please check and correct.
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: custom:button-card
- icon: mdi:stop-circle-outline
- show_name: false
- tap_action:
- action: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- return 'call-service';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'call-service';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return 'call-service';
- else
- return 'none';
- ]]]
- service: script.irrigation_cancel_irrigation
- service_data:
- cycle: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- return 'cycle1';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'cycle2';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return 'cycle3';
- else
- return 'none';
- ]]]
- zone: |
- [[[
- if (states['timer.irrigation_zone1_timer'].state == 'active')
- return 'zone1';
- else if (states['timer.irrigation_zone2_timer'].state == 'active')
- return 'zone2';
- else if (states['timer.irrigation_zone3_timer'].state == 'active')
- return 'zone3';
- else if (states['timer.irrigation_zone4_timer'].state == 'active')
- return 'zone4';
- else
- return 'none';
- ]]]
- styles:
- card:
- - border: none !important
- - background: none
- - width: 1.8em
- - display: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'of')
- return 'none';
- ]]]
- icon:
- - color: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- return 'red';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'red';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return 'red';
- else return 'var(--primary-background-color)';
- ]]]
- - width: 1.8em
- - type: custom:button-card
- entity: input_boolean.irrigation_master_control_switch
- icon: |
- [[[
- if (states['input_boolean.irrigation_master_control_switch'].state == 'off')
- return 'mdi:toggle-switch-off-outline';
- else return 'mdi:toggle-switch-outline';
- ]]]
- show_name: false
- styles:
- card:
- - border: none !important
- - background: none
- - width: 1.8em
- icon:
- - color: |
- [[[
- if (states['input_boolean.irrigation_master_control_switch'].state == 'off')
- return 'var(--text-color)';
- else return 'var(--accent-color)';
- ]]]
- - width: 1.8em
- - type: entities
- entities:
- - type: custom:button-card
- entity: input_text.irrigation_current_status
- show_icon: false
- show_name: false
- show_state: true
- styles:
- card:
- - border: none
- - color: var(--secondary-text-color)
- - padding: 0em
- - background: none
- state:
- - justify-self: start
- - padding-left: 0.5em
- tap_action:
- action: none
- state:
- - value: Changing Zone...
- styles:
- state:
- - animation: blink 2s ease infinite
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: timer.irrigation_zone1_timer
- state: active
- card:
- type: custom:button-card
- entity: timer.irrigation_zone1_timer
- icon: mdi:sprinkler-variant
- size: 60%
- show_state: true
- show_name: false
- show_label: true
- label: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- var cycle = 'cycle1';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- var cycle = 'cycle2';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- var cycle = 'cycle3';
- else
- var cycle = 'cycle0';
- var zone = 'zone1';
- var zone_name = states['input_text.irrigation_' + zone + '_name' ].state;
- var zone_timer_status = entity.state;
- if (cycle == 'cycle0')
- return zone_name;
- else if (zone_timer_status == 'active')
- return 'Watering ' + zone_name;
- else
- return zone_name;
- ]]]
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"i l s\""
- - grid-template-columns: 15% 50% 1fr
- - grid-template-rows: min-content
- card:
- - color: var(--accent-color)
- - font-size: 16px
- - font-family: |
- [[[
- return states['input_text.irrigation_ui_font_family'].state
- ]]]
- - padding: 0.4em
- - height: 2.4em
- label:
- - color: var(--secondary-text-color)
- - justify-self: start
- - justify-text: start
- icon:
- - color: var(--accent-color)
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: timer.irrigation_zone2_timer
- state: active
- card:
- type: custom:button-card
- entity: timer.irrigation_zone2_timer
- icon: mdi:sprinkler-variant
- size: 60%
- show_state: true
- show_name: false
- show_label: true
- label: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- var cycle = 'cycle1';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- var cycle = 'cycle2';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- var cycle = 'cycle3';
- else
- var cycle = 'cycle0';
- var zone = 'zone2';
- var zone_name = states['input_text.irrigation_' + zone + '_name' ].state;
- var zone_timer_status = entity.state;
- if (cycle == 'cycle0')
- return zone_name;
- else if (zone_timer_status == 'active')
- return 'Watering ' + zone_name;
- else
- return zone_name;
- ]]]
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"i l s\""
- - grid-template-columns: 15% 50% 1fr
- - grid-template-rows: min-content
- card:
- - color: var(--accent-color)
- - padding: 0.4em
- - height: 2.4em
- label:
- - color: var(--secondary-text-color)
- - justify-self: start
- - justify-text: start
- icon:
- - color: var(--accent-color)
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: timer.irrigation_zone3_timer
- state: active
- card:
- type: custom:button-card
- entity: timer.irrigation_zone3_timer
- icon: mdi:sprinkler-variant
- size: 60%
- show_state: true
- show_name: false
- show_label: true
- label: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- var cycle = 'cycle1';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- var cycle = 'cycle2';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- var cycle = 'cycle3';
- else
- var cycle = 'cycle0';
- var zone = 'zone3';
- var zone_name = states['input_text.irrigation_' + zone + '_name' ].state;
- var zone_timer_status = entity.state;
- if (cycle == 'cycle0')
- return zone_name;
- else if (zone_timer_status == 'active')
- return 'Watering ' + zone_name;
- else
- return zone_name;
- ]]]
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"i l s\""
- - grid-template-columns: 15% 50% 1fr
- - grid-template-rows: min-content
- card:
- - color: var(--accent-color)
- - padding: 0.4em
- - height: 2.4em
- label:
- - color: var(--secondary-text-color)
- - justify-self: start
- - justify-text: start
- icon:
- - color: var(--accent-color)
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: timer.irrigation_zone4_timer
- state: active
- card:
- type: custom:button-card
- entity: timer.irrigation_zone4_timer
- icon: mdi:sprinkler-variant
- size: 60%
- show_state: true
- show_name: false
- show_label: true
- label: |
- [[[
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on')
- var cycle = 'cycle1';
- else if (states['input_boolean.irrigation_cycle2_running'].state == 'on')
- var cycle = 'cycle2';
- else if (states['input_boolean.irrigation_cycle3_running'].state == 'on')
- var cycle = 'cycle3';
- else
- var cycle = 'cycle0';
- var zone = 'zone4';
- var zone_name = states['input_text.irrigation_' + zone + '_name' ].state;
- var zone_timer_status = entity.state;
- if (cycle == 'cycle0')
- return zone_name;
- else if (zone_timer_status == 'active')
- return 'Watering ' + zone_name;
- else
- return zone_name;
- ]]]
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"i l s\""
- - grid-template-columns: 15% 50% 1fr
- - grid-template-rows: min-content
- card:
- - color: var(--accent-color)
- - padding: 0.4em
- - height: 2.4em
- label:
- - color: var(--secondary-text-color)
- - justify-self: start
- - justify-text: start
- icon:
- - color: var(--accent-color)
- card_mod:
- style: |
- ha-card {
- } #states {
- padding-bottom: 0.3em;
- }
- - type: entities
- entities:
- - type: custom:fold-entity-row
- padding: 0em
- head:
- entity: sensor.blankblank
- name: Irrigation Settings
- icon: mdi:cog
- tap_action:
- action: fire-dom-event
- fold_row: true
- entities:
- - type: section
- - entity: input_number.irrigation_pause_between_zones_in_seconds
- name: Time settings
- type: custom:multiple-entity-row
- state_header: Pause
- entities:
- - entity: >-
- input_number.irrigation_weather_adjusted_minimum_duration_in_seconds
- name: Min
- - entity: >-
- input_number.irrigation_weather_adjusted_maximum_duration_in_minutes
- name: Max
- - type: section
- - entity: input_boolean.irrigation_testing_mode
- name: Testing mode
- state_color: true
- type: custom:multiple-entity-row
- entities:
- - icon: mdi:pipe-disconnected
- state_color: true
- entity: input_boolean.irrigation_disable_switches
- name: false
- - type: section
- - entity: input_boolean.irrigation_notify_user2
- toggle: true
- type: custom:multiple-entity-row
- icon: mdi:message
- name: Notification
- entities:
- - entity: input_text.notifications_user1_name
- name: false
- - entity: input_boolean.irrigation_notify_user1
- name: false
- toggle: true
- - entity: input_text.notifications_user2_name
- name: false
- - entity: input_boolean.logging_irrigation
- name: Log
- type: custom:multiple-entity-row
- state_header: Logging
- entities:
- - entity: input_boolean.logging_irrigation_clear_log
- name: clear
- - type: section
- - entity: input_boolean.irrigation_ignore_schedule_if_raining
- type: custom:multiple-entity-row
- name: Weather settings
- icon: mdi:cog
- toggle: true
- state_header: Off if raining
- entities:
- - icon: mdi:weather-partly-snowy-rainy
- name: Weather sensors
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Weather Sensors
- content:
- type: vertical-stack
- cards:
- - type: markdown
- content: >
- For the 'Weather Outlook' on the Cycles page
- you need to create the following sensor:
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- font-size: 16px;
- }
- - type: markdown
- content: |
- sensor.irrigation_weather_outlook
- card_mod:
- style: |
- ha-card {
- font-family: Monospace;
- font-size: 14px;
- text-align: center;
- }
- - type: entities
- entities:
- - type: section
- label: >-
- Rainfall Sensors (leave blank to reset
- default)
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_raining_now
- name: Raining Now
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_rainfall_today
- name: Rainfall in the past 24h
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_rainfall_yesterday
- name: Rainfall 48 to 24 hours ago
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_rainfall_2
- name: Rainfall 72 to 48 hours ago
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_rainfall_3
- name: Rainfall 96 to 72 hours ago
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_rainfall_4
- name: Rainfall 120 to 96 hours ago
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_forecast_rain
- name: Forecast Rain
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_boolean.irrigation_show_smartweather_stations
- name: Using SmartWeather (show stations)
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - type: section
- label: >-
- Temperature Sensors (leave blank to reset
- default)
- - entity: >-
- input_text.irrigation_external_sensor_forecast_high_temp
- name: Forecast High Temperature
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- - entity: >-
- input_text.irrigation_external_sensor_current_temp
- name: Current Temperature
- card_mod:
- style:
- hui-generic-entity-row:
- $: |
- .info {
- text-overflow: unset !important;
- white-space: unset !important;
- }
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - entity: input_number.irrigation_days_of_temp_history_used
- type: custom:multiple-entity-row
- name: Temperature Settings
- icon: mdi:thermometer
- state_header: Days used
- entities:
- - entity: input_number.irrigation_temperature_baseline
- name: Baseline
- - entity: input_number.irrigation_days_of_rainfall_history_used
- type: custom:multiple-entity-row
- name: Rainfall Settings
- state_header: Days used
- icon: mdi:weather-rainy
- entities:
- - entity: input_number.irrigation_rainfall_threshold
- name: Threshhold
- - entity: input_number.irrigation_rainfall_percentage_4
- type: custom:multiple-entity-row
- name: Rainfall %
- state_header: 4th day
- entities:
- - entity: input_number.irrigation_rainfall_percentage_1
- name: 1st day
- - entity: input_number.irrigation_rainfall_percentage_2
- name: 2nd day
- - entity: input_number.irrigation_rainfall_percentage_3
- name: 3rd day
- card_mod:
- style: |
- div#head ha-icon {
- color: gray;
- }
- - type: custom:fold-entity-row
- padding: 0em
- open: true
- head:
- entity: sensor.blankblank
- name: Irrigation History
- icon: mdi:calendar-clock
- tap_action:
- action: fire-dom-event
- fold_row: true
- entities:
- - type: custom:vertical-stack-in-card
- cards:
- - type: custom:button-card
- name: Irrigation time
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"n last total_today total_yesterday\""
- - grid-template-columns: 30% 25% 20% 25%
- - grid-template-rows: 1fr
- card:
- - display: null
- - padding: 10px
- - font-size: 14px
- name:
- - justify-self: end
- - color: var(--secondary-text-color)
- last:
- - justify-self: end
- - color: var(--secondary-text-color)
- total_today:
- - justify-self: start
- - color: var(--secondary-text-color)
- total_yesterday:
- - justify-self: start
- - color: var(--secondary-text-color)
- custom_fields:
- last: Last
- total_yesterday: Yesterday
- total_today: Today
- - type: custom:button-card
- entity: input_text.irrigation_zone2_previous_duration_in_seconds
- triggers_update:
- - sensor.irrigation_zone2_total_time_today
- - sensor.irrigation_zone2_total_time_yesterday
- name: |
- [[[
- var zone = 'zone2';
- return states['input_text.irrigation_' + zone + '_name'].state + ' - ';
- ]]]
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"n last total_today total_yesterday\""
- - grid-template-columns: 30% 25% 20% 25%
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = 'zone2';
- zone = Number(zone.replace('zone', ''));
- var number_of_zones = Number(states['input_number.irrigation_number_of_zones'].state);
- var show_history = states['input_boolean.irrigation_ui_show_status_history'].state;
- ]]]
- - padding: 0px
- - font-size: 14px
- - background: none
- name:
- - justify-self: end
- - color: var(--secondary-text-color)
- last:
- - justify-self: end
- - color: var(--secondary-text-color)
- total_today:
- - justify-self: start
- - color: var(--secondary-text-color)
- total_yesterday:
- - justify-self: start
- - color: var(--secondary-text-color)
- custom_fields:
- total_yesterday: |
- [[[
- var zone = 'zone2';
- var duration = states['sensor.irrigation_zone1_total_time_yesterday'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- total_today: |
- [[[
- var zone = 'zone2';
- var duration = states['sensor.irrigation_' + zone + '_total_time_today'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- last: |
- [[[
- if (entity.state === '')
- return '';
- else if (isNaN(entity.state))
- return entity.state;
- else
- var total_seconds = parseFloat(entity.state);
- var minutes = Math.floor(total_seconds / 60);
- var seconds = (total_seconds % 60).toFixed();
- while (seconds.length < 2) {seconds = "0" + seconds};
- return minutes + "' " + seconds + '"';
- ]]]
- - type: custom:button-card
- entity: input_text.irrigation_zone1_previous_duration_in_seconds
- triggers_update:
- - sensor.irrigation_zone1_total_time_today
- - sensor.irrigation_zone1_total_time_yesterday
- name: |
- [[[
- var zone = 'zone1';
- return states['input_text.irrigation_' + zone + '_name'].state + ' - ';
- ]]]
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"n last total_today total_yesterday\""
- - grid-template-columns: 30% 25% 20% 25%
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = 'zone1';
- zone = Number(zone.replace('zone', ''));
- var number_of_zones = Number(states['input_number.irrigation_number_of_zones'].state);
- var show_history = states['input_boolean.irrigation_ui_show_status_history'].state;
- ]]]
- - font-size: 14px
- - padding: 0px
- - background: none
- name:
- - justify-self: end
- - color: var(--secondary-text-color)
- last:
- - justify-self: end
- - color: var(--secondary-text-color)
- total_today:
- - justify-self: start
- - color: var(--secondary-text-color)
- total_yesterday:
- - justify-self: start
- - color: var(--secondary-text-color)
- custom_fields:
- total_yesterday: |
- [[[
- var zone = 'zone1';
- var duration = states['sensor.irrigation_zone1_total_time_yesterday'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- total_today: |
- [[[
- var zone = 'zone1';
- var duration = states['sensor.irrigation_' + zone + '_total_time_today'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- last: |
- [[[
- if (entity.state === '')
- return '';
- else if (isNaN(entity.state))
- return entity.state;
- else
- var total_seconds = parseFloat(entity.state);
- var minutes = Math.floor(total_seconds / 60);
- var seconds = (total_seconds % 60).toFixed();
- while (seconds.length < 2) {seconds = "0" + seconds};
- return minutes + "' " + seconds + '"';
- ]]]
- - type: custom:button-card
- entity: input_text.irrigation_zone3_previous_duration_in_seconds
- triggers_update:
- - sensor.irrigation_zone3_total_time_today
- - sensor.irrigation_zone3_total_time_yesterday
- name: |
- [[[
- var zone = 'zone3';
- return states['input_text.irrigation_' + zone + '_name'].state + ' - ';
- ]]]
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"n last total_today total_yesterday\""
- - grid-template-columns: 30% 25% 20% 25%
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = 'zone3';
- zone = Number(zone.replace('zone', ''));
- var number_of_zones = Number(states['input_number.irrigation_number_of_zones'].state);
- var show_history = states['input_boolean.irrigation_ui_show_status_history'].state;
- ]]]
- - font-size: 14px
- - padding: 0px
- - background: none
- name:
- - justify-self: end
- - color: var(--secondary-text-color)
- last:
- - justify-self: end
- - color: var(--secondary-text-color)
- total_today:
- - justify-self: start
- - color: var(--secondary-text-color)
- total_yesterday:
- - justify-self: start
- - color: var(--secondary-text-color)
- custom_fields:
- total_yesterday: |
- [[[
- var zone = 'zone3';
- var duration = states['sensor.irrigation_zone1_total_time_yesterday'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- total_today: |
- [[[
- var zone = 'zone3';
- var duration = states['sensor.irrigation_' + zone + '_total_time_today'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- last: |
- [[[
- if (entity.state === '')
- return '';
- else if (isNaN(entity.state))
- return entity.state;
- else
- var total_seconds = parseFloat(entity.state);
- var minutes = Math.floor(total_seconds / 60);
- var seconds = (total_seconds % 60).toFixed();
- while (seconds.length < 2) {seconds = "0" + seconds};
- return minutes + "' " + seconds + '"';
- ]]]
- - type: custom:button-card
- entity: input_text.irrigation_zone4_previous_duration_in_seconds
- triggers_update:
- - sensor.irrigation_zone4_total_time_today
- - sensor.irrigation_zone4_total_time_yesterday
- name: |
- [[[
- var zone = 'zone4';
- return states['input_text.irrigation_' + zone + '_name'].state + ' - ';
- ]]]
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"n last total_today total_yesterday\""
- - grid-template-columns: 30% 25% 20% 25%
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = 'zone4';
- zone = Number(zone.replace('zone', ''));
- var number_of_zones = Number(states['input_number.irrigation_number_of_zones'].state);
- var show_history = states['input_boolean.irrigation_ui_show_status_history'].state;
- ]]]
- - font-size: 14px
- - padding: 0px
- - background: none
- name:
- - justify-self: end
- - color: var(--secondary-text-color)
- last:
- - justify-self: end
- - color: var(--secondary-text-color)
- total_today:
- - justify-self: start
- - color: var(--secondary-text-color)
- total_yesterday:
- - justify-self: start
- - color: var(--secondary-text-color)
- custom_fields:
- total_yesterday: |
- [[[
- var zone = 'zone4';
- var duration = states['sensor.irrigation_zone1_total_time_yesterday'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- total_today: |
- [[[
- var zone = 'zone4';
- var duration = states['sensor.irrigation_' + zone + '_total_time_today'].state;
- var duration_s = parseFloat(duration) * 3600;
- var h = Math.floor(duration_s / 3600);
- var m = Math.floor(duration_s % 3600 / 60);
- var s = Math.floor(duration_s % 3600 % 60);
- var hDisplay = h > 0 ? h + "h " : "";
- var mDisplay = h > 0 ? m + "m " : m > 0 ? m + "m " : "";
- var sDisplay = s + "s ";
- return hDisplay + mDisplay + sDisplay;
- ]]]
- last: |
- [[[
- if (entity.state === '')
- return '';
- else if (isNaN(entity.state))
- return entity.state;
- else
- var total_seconds = parseFloat(entity.state);
- var minutes = Math.floor(total_seconds / 60);
- var seconds = (total_seconds % 60).toFixed();
- while (seconds.length < 2) {seconds = "0" + seconds};
- return minutes + "' " + seconds + '"';
- ]]]
- - type: custom:button-card
- entity: input_text.irrigation_previous_total_watering_time
- name: |
- [[[
- var previous_run_date = states['input_text.irrigation_previous_run_date'].state;
- var previous_run_time = states['input_text.irrigation_previous_run_time'].state;
- var year = new Date();
- var today = new Date();
- var yesterday = new Date(Date.now() - 86400000);
- year = year.getFullYear();
- today = today.toDateString();
- today = Date.parse(today);
- yesterday = yesterday.toDateString();
- yesterday = Date.parse(yesterday);
- if (today == Date.parse(previous_run_date + ' ' + year))
- return states['input_text.irrigation_previous_run_cycle_name'].state + ' Cycle - Today at ' + previous_run_time + ' - ';
- else if (yesterday == Date.parse(previous_run_date + ' ' + year))
- return states['input_text.irrigation_previous_run_cycle_name'].state + ' Cycle - Today at ' + previous_run_time + ' - ';
- else
- return states['input_text.irrigation_previous_run_cycle_name'].state + previous_run_date +
- ' at ' +
- previous_run_time;
- ]]]
- label: Last run:  
- show_label: true
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"l n\""
- - grid-template-columns: min-content 1fr
- - grid-template-rows: min-content
- card:
- - font-size: 14px
- - color: var(--secondary-text-color)
- - padding: 15px 0px 0px 15px
- - margin-top: "-7px"
- - background: none
- name:
- - justify-self: start
- - color: var(--primary-text-color)
- label:
- - color: var(--secondary-text-color)
- - type: custom:button-card
- entity: input_text.irrigation_previous_total_watering_time
- name: |
- [[[
- if (isNaN(entity.state))
- var total_seconds = 0;
- else
- var total_seconds = parseFloat(entity.state);
- var date = new Date(null);
- date.setSeconds(total_seconds);
- return date.toISOString().substr(11, 8);
- ]]]
- label: Total time:  
- show_label: true
- show_icon: false
- tap_action:
- action: none
- styles:
- grid:
- - grid-template-areas: "\"l n\""
- - grid-template-columns: min-content 1fr
- - grid-template-rows: min-content
- card:
- - font-size: 14px
- - color: var(--secondary-text-color)
- - padding: 3px 0px 10px 15px
- - margin-top: "-0em"
- - background: none
- name:
- - justify-self: start
- - color: var(--primary-text-color)
- label:
- - color: var(--secondary-text-color)
- card_mod:
- style: |
- div#head ha-icon {
- color: gray;
- }
- - type: custom:fold-entity-row
- open: true
- padding: 0em
- head:
- entity: sensor.blankblank
- name: Weekly Schedule
- icon: mdi:calendar-check
- tap_action:
- action: fire-dom-event
- fold_row: true
- entities:
- - type: custom:vertical-stack-in-card
- cards:
- - type: markdown
- content: >
- {% set cycle1_name =
- states('input_text.irrigation_cycle1_name') %} {% set
- cycle2_name = states('input_text.irrigation_cycle2_name')
- %}
- {% set ns = namespace(duration_c1_mon = 0, duration_c2_mon
- = 0, duration_mon = 0,
- duration_c1_tue = 0, duration_c2_tue = 0, duration_tue = 0,
- duration_c1_wed = 0, duration_c2_wed = 0, duration_wed = 0,
- duration_c1_thu = 0, duration_c2_thu = 0, duration_thu = 0,
- duration_c1_fri = 0, duration_c2_fri = 0, duration_fri = 0,
- duration_c1_sat = 0, duration_c2_sat = 0, duration_sat = 0,
- duration_c1_sun = 0, duration_c2_sun = 0, duration_sun = 0,) %}
- {% for cycles in states.input_text
- if cycles.object_id == 'irrigation_cycle1_name' or
- cycles.object_id == 'irrigation_cycle2_name' %}
- {% set cycle = 'cycle' ~ loop.index %}
- {% for zones in states.input_number
- if zones.object_id.startswith('irrigation_' ~ cycle ~ '_zone') and
- zones.object_id.endswith('_duration') %}
- {% set zone = 'zone' ~ loop.index %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_every_day', 'on') %}
- {% set ns.duration_mon = ns.duration_mon + (zones.state | int) %}
- {% set ns.duration_tue = ns.duration_tue + (zones.state | int) %}
- {% set ns.duration_wed = ns.duration_wed + (zones.state | int) %}
- {% set ns.duration_thu = ns.duration_thu + (zones.state | int) %}
- {% set ns.duration_fri = ns.duration_fri + (zones.state | int) %}
- {% set ns.duration_sat = ns.duration_sat + (zones.state | int) %}
- {% set ns.duration_sun = ns.duration_sun + (zones.state | int) %}
- {% else %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_mon', 'on' ) %}
- {% set ns.duration_mon = ns.duration_mon + (zones.state | int) %}
- {% endif %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_tue', 'on' ) %}
- {% set ns.duration_tue = ns.duration_tue + (zones.state | int) %}
- {% endif %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_wed', 'on' ) %}
- {% set ns.duration_wed = ns.duration_wed + (zones.state | int) %}
- {% endif %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_thu', 'on' ) %}
- {% set ns.duration_thu = ns.duration_thu + (zones.state | int) %}
- {% endif %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_fri', 'on' ) %}
- {% set ns.duration_fri = ns.duration_fri + (zones.state | int) %}
- {% endif %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_sat', 'on' ) %}
- {% set ns.duration_sat = ns.duration_sat + (zones.state | int) %}
- {% endif %}
- {% if is_state('input_boolean.irrigation_' ~ cycle ~ '_' ~ zone ~ '_sun', 'on' ) %}
- {% set ns.duration_sun = ns.duration_sun + (zones.state | int) %}
- {% endif %}
- {% endif %}
- {% endfor %}
- {% if loop.first %}
- {% set ns.duration_c1_mon = ns.duration_mon %}
- {% set ns.duration_c1_tue = ns.duration_tue %}
- {% set ns.duration_c1_wed = ns.duration_wed %}
- {% set ns.duration_c1_thu = ns.duration_thu %}
- {% set ns.duration_c1_fri = ns.duration_fri %}
- {% set ns.duration_c1_sat = ns.duration_sat %}
- {% set ns.duration_c1_sun = ns.duration_sun %}
- {% else %}
- {% set ns.duration_c2_mon = ns.duration_mon %}
- {% set ns.duration_c2_tue = ns.duration_tue %}
- {% set ns.duration_c2_wed = ns.duration_wed %}
- {% set ns.duration_c2_thu = ns.duration_thu %}
- {% set ns.duration_c2_fri = ns.duration_fri %}
- {% set ns.duration_c2_sat = ns.duration_sat %}
- {% set ns.duration_c2_sun = ns.duration_sun %}
- {% endif %}
- {% set ns.duration_mon = 0 %}
- {% set ns.duration_tue = 0 %}
- {% set ns.duration_wed = 0 %}
- {% set ns.duration_thu = 0 %}
- {% set ns.duration_fri = 0 %}
- {% set ns.duration_sat = 0 %}
- {% set ns.duration_sun = 0 %}
- {% endfor %}
- | {{ cycle1_name }} Cycle | {{ cycle2_name
- }} Cycle
- ---|:---:|:---:
- Monday | {{ ns.duration_c1_mon }} min | {{
- ns.duration_c2_mon }} min
- Tuesday | {{ ns.duration_c1_tue }} min | {{
- ns.duration_c2_tue }} min
- Wednesday | {{ ns.duration_c1_wed }} min | {{
- ns.duration_c2_wed }} min
- Thursday | {{ ns.duration_c1_thu }} min | {{
- ns.duration_c2_thu }} min
- Friday | {{ ns.duration_c1_fri }} min | {{
- ns.duration_c2_fri }} min
- Saturday | {{ ns.duration_c1_sat }} min | {{
- ns.duration_c2_sat }} min
- Sunday | {{ ns.duration_c1_sun }} min | {{
- ns.duration_c2_sun }} min
- clear: false
- card_mod:
- style: |
- div#head ha-icon {
- color: gray;
- }
- show_header_toggle: false
- - type: custom:vertical-stack-in-card
- cards:
- - type: entities
- entities:
- - type: custom:multiple-entity-row
- entity: input_boolean.irrigation_cycle1_schedule_enabled
- toggle: true
- name: Morning Cycle
- content_info: name
- icon_color: green
- icon: mdi:sprinkler
- state_color: true
- entities:
- - icon: mdi:weather-rainy
- entity: input_boolean.irrigation_cycle1_adjust_for_rainfall
- state_color: true
- name: false
- tap_action:
- action: toggle
- - icon: mdi:thermometer
- entity: input_boolean.irrigation_cycle1_adjust_for_temperature
- tap_action:
- action: toggle
- name: false
- state_color: true
- - type: custom:button-card
- entity: input_datetime.irrigation_cycle1_start_time
- triggers_update:
- - sensor.irrigation_cycle1_duration_in_seconds
- - input_boolean.irrigation_cycle1_adjust_for_temperature
- - input_boolean.irrigation_cycle1_adjust_for_rainfall
- - input_select.irrigation_cycle1_start_time_type
- - input_boolean.irrigation_cycle1_schedule_today_only
- name: false
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle
- content:
- type: vertical-stack
- cards:
- - type: entities
- entities:
- - entity: >-
- input_boolean.irrigation_cycle1_schedule_today_only
- name: Run Cycle Today Only
- tap_action: none
- - type: divider
- - entity: input_select.irrigation_cycle1_start_time_type
- name: Start Time Mode
- icon: mdi:theme-light-dark
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_select.irrigation_cycle1_start_time_type
- state: Actual Time
- card:
- type: entities
- entities:
- - entity: >-
- input_datetime.irrigation_cycle1_start_time
- name: Start Time
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_select.irrigation_cycle1_start_time_type
- state: Sunrise Offset
- card:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle1_start_time_sunrise_offset
- name: Offset in minutes
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_select.irrigation_cycle1_start_time_type
- state: Sunset Offset
- card:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle1_start_time_sunset_offset
- name: Offset in minutes
- - type: custom:hui-element
- card_type: markdown
- content: >
- <font color=var(--primary-text-color)> At the
- cycle start time it is possible to wait for an
- entity to be in a certain state. </font>
- style: |
- ha-card {
- font-size: 16px;
- }
- - entity: >-
- input_boolean.irrigation_cycle1_wait_for_entity
- name: Wait For Entity
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_boolean.irrigation_cycle1_wait_for_entity
- state: "on"
- card:
- type: entities
- entities:
- - entity: >-
- input_text.irrigation_cycle1_wait_for_entity_name
- name: Entity Name
- - entity: >-
- input_text.irrigation_cycle1_wait_for_entity_state
- name: Entity State
- - entity: >-
- input_boolean.irrigation_cycle1_wait_for_entity_name_timeout_continue
- name: Wait Timeout Continue
- - entity: >-
- input_number.irrigation_cycle1_wait_for_entity_name_timeout_duration
- name: Wait Timeout Duration
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_boolean.irrigation_cycle1_wait_for_entity
- state: "on"
- card:
- type: markdown
- content: >
- <font color=var(--primary-text-color)>
- Entity state can be a comma seperated list
- of states and may be prefixed with 'not in'.
- e.g.
- - open
- - open, closed
- - not open
- - not in open, closed </font>
- style: |
- ha-card {
- font-size: 16px;
- }
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: custom:vertical-stack-in-card
- cards:
- - type: entities
- show_name: true
- show_icon: false
- show_state: true
- entities:
- - entity: input_number.irrigation_cycle1_zone1_duration_box
- name: Mid lawn
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle1_zone1_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Mid lawn
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle1_zone1_duration_box
- name: Duration
- - entity: input_text.irrigation_zone1_name
- name: Zone Name
- - entity: input_text.irrigation_zone1_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle1_zone1_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle1_zone1_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone1_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone1_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone1_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone1_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone1_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone1_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - entity: input_number.irrigation_cycle1_zone2_duration_box
- name: Front lawn
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle1_zone2_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Front lawn
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle1_zone2_duration_box
- name: Duration
- - entity: input_text.irrigation_zone2_name
- name: Zone Name
- - entity: input_text.irrigation_zone2_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle1_zone2_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle1_zone2_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone2_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone2_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone2_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone2_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone2_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone2_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - entity: input_number.irrigation_cycle1_zone3_duration_box
- name: Back lawn
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle1_zone3_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Back lawn
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle1_zone3_duration_box
- name: Duration
- - entity: input_text.irrigation_zone3_name
- name: Zone Name
- - entity: input_text.irrigation_zone3_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle1_zone3_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle1_zone3_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone3_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone3_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone3_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone3_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone3_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone3_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - entity: input_number.irrigation_cycle1_zone4_duration_box
- name: Drip
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle1_zone4_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Drip
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle1_zone4_duration_box
- name: Duration
- - entity: input_text.irrigation_zone4_name
- name: Zone Name
- - entity: input_text.irrigation_zone4_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle1_zone4_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle1_zone4_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone4_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone4_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone4_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone4_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone4_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle1_zone4_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: custom:paper-buttons-row
- styles:
- margin-top: "-5px;"
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - name: Days
- tap_action:
- action: false
- - icon: mdi:alpha-m-circle-outline
- entity: group.irrigation_group_cycle1_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: group.irrigation_group_cycle1_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: group.irrigation_group_cycle1_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle1_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle1_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle1_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle1_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: custom:multiple-entity-row
- entity: input_boolean.irrigation_cycle2_schedule_enabled
- toggle: true
- name: Evening Cycle
- content_info: name
- icon_color: green
- icon: mdi:sprinkler
- state_color: true
- entities:
- - icon: mdi:weather-rainy
- entity: input_boolean.irrigation_cycle2_adjust_for_rainfall
- tap_action:
- action: toggle
- state_color: true
- name: false
- - icon: mdi:thermometer
- entity: input_boolean.irrigation_cycle2_adjust_for_temperature
- tap_action:
- action: toggle
- name: false
- state_color: true
- - type: custom:button-card
- entity: input_datetime.irrigation_cycle2_start_time
- triggers_update:
- - sensor.irrigation_cycle2_duration_in_seconds
- - input_boolean.irrigation_cycle2_adjust_for_temperature
- - input_boolean.irrigation_cycle2_adjust_for_rainfall
- - input_select.irrigation_cycle2_start_time_type
- - input_boolean.irrigation_cycle2_schedule_today_only
- name: false
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle
- content:
- type: vertical-stack
- cards:
- - type: entities
- entities:
- - entity: >-
- input_boolean.irrigation_cycle2_schedule_today_only
- name: Run Cycle Today Only
- tap_action: none
- - type: divider
- - entity: input_select.irrigation_cycle2_start_time_type
- name: Start Time Mode
- icon: mdi:theme-light-dark
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_select.irrigation_cycle2_start_time_type
- state: Actual Time
- card:
- type: entities
- entities:
- - entity: >-
- input_datetime.irrigation_cycle2_start_time
- name: Start Time
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_select.irrigation_cycle2_start_time_type
- state: Sunrise Offset
- card:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle2_start_time_sunrise_offset
- name: Offset in minutes
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_select.irrigation_cycle2_start_time_type
- state: Sunset Offset
- card:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle2_start_time_sunset_offset
- name: Offset in minutes
- - type: custom:hui-element
- card_type: markdown
- content: >
- <font color=var(--primary-text-color)> At the
- cycle start time it is possible to wait for an
- entity to be in a certain state. </font>
- style: |
- ha-card {
- font-size: 16px;
- }
- - entity: >-
- input_boolean.irrigation_cycle2_wait_for_entity
- name: Wait For Entity
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_boolean.irrigation_cycle2_wait_for_entity
- state: "on"
- card:
- type: entities
- entities:
- - entity: >-
- input_text.irrigation_cycle2_wait_for_entity_name
- name: Entity Name
- - entity: >-
- input_text.irrigation_cycle2_wait_for_entity_state
- name: Entity State
- - entity: >-
- input_boolean.irrigation_cycle2_wait_for_entity_name_timeout_continue
- name: Wait Timeout Continue
- - entity: >-
- input_number.irrigation_cycle2_wait_for_entity_name_timeout_duration
- name: Wait Timeout Duration
- - type: custom:hui-element
- card_type: conditional
- conditions:
- - entity: >-
- input_boolean.irrigation_cycle2_wait_for_entity
- state: "on"
- card:
- type: markdown
- content: >
- <font color=var(--primary-text-color)>
- Entity state can be a comma seperated list
- of states and may be prefixed with 'not in'.
- e.g.
- - open
- - open, closed
- - not open
- - not in open, closed </font>
- style: |
- ha-card {
- font-size: 16px;
- }
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: custom:vertical-stack-in-card
- cards:
- - type: entities
- show_name: true
- show_icon: false
- show_state: true
- entities:
- - entity: input_number.irrigation_cycle2_zone1_duration_box
- name: Mid lawn
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle2_zone1_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Mid lawn
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle2_zone1_duration_box
- name: Duration
- - entity: input_text.irrigation_zone1_name
- name: Zone Name
- - entity: input_text.irrigation_zone1_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle2_zone1_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle2_zone1_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone1_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone1_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone1_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone1_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone1_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone1_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - entity: input_number.irrigation_cycle2_zone2_duration_box
- name: Front lawn
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle2_zone2_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Front lawn
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle2_zone2_duration_box
- name: Duration
- - entity: input_text.irrigation_zone2_name
- name: Zone Name
- - entity: input_text.irrigation_zone2_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle2_zone2_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle2_zone2_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone2_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone2_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone2_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone2_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone2_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone2_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - entity: input_number.irrigation_cycle2_zone3_duration_box
- name: Back lawn
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle2_zone3_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Back lawn
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle2_zone3_duration_box
- name: Duration
- - entity: input_text.irrigation_zone3_name
- name: Zone Name
- - entity: input_text.irrigation_zone3_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle2_zone3_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle2_zone3_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone3_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone3_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone3_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone3_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone3_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone3_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - entity: input_number.irrigation_cycle2_zone4_duration_box
- name: Drip
- type: custom:multiple-entity-row
- entities:
- - entity: sensor.blankblank
- name: Edit days
- tap_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.irrigation_cycle2_zone4_every_day
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Morning cycle - Drip
- hide_header: false
- content:
- type: entities
- entities:
- - entity: >-
- input_number.irrigation_cycle2_zone4_duration_box
- name: Duration
- - entity: input_text.irrigation_zone4_name
- name: Zone Name
- - entity: input_text.irrigation_zone4_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.irrigation_cycle2_zone4_every_day
- state: "off"
- row:
- type: custom:paper-buttons-row
- styles:
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - icon: mdi:alpha-m-circle-outline
- entity: input_boolean.irrigation_cycle2_zone4_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone4_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone4_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone4_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone4_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone4_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: input_boolean.irrigation_cycle2_zone4_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: custom:paper-buttons-row
- styles:
- margin-top: "-5px;"
- "--pbs-button-active-color": green
- justify-content: space-around;
- buttons:
- - name: Days
- tap_action:
- action: false
- - icon: mdi:alpha-m-circle-outline
- entity: group.irrigation_group_cycle2_mon
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: group.irrigation_group_cycle2_tue
- icon: mdi:alpha-t-circle-outline
- tap_action:
- action: toggle
- name: false
- - type: entity
- entity: group.irrigation_group_cycle2_wed
- icon: mdi:alpha-w-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle2_thu
- icon: mdi:alpha-t-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle2_fri
- icon: mdi:alpha-f-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle2_sat
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: entity
- entity: group.irrigation_group_cycle2_sun
- icon: mdi:alpha-s-circle-outline
- name: false
- tap_action:
- action: toggle
- - type: custom:fold-entity-row
- padding: 0em
- open: false
- entities:
- - type: custom:vertical-stack-in-card
- cards:
- - type: entities
- entities:
- - type: custom:config-template-card
- variables:
- ZONE_NAME: states['input_text.irrigation_zone1_name'].state
- CYCLE_NAME: states['input_text.irrigation_cycle3_name'].state
- TIMER_STATE: states['timer.irrigation_zone1_timer'].state
- entities:
- - input_text.irrigation_zone1_name
- - input_number.irrigation_cycle3_zone1_duration
- - timer.irrigation_zone1_timer
- card:
- type: entities
- entities:
- - entity: input_number.irrigation_cycle3_zone1_duration
- name: ${ ZONE_NAME }
- icon: >-
- ${ TIMER_STATE === 'active' ?
- 'mdi:sprinkler-variant' : '' }
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Manual Cycle - Zone 1
- hide_header: false
- content:
- type: entities
- entities:
- - type: custom:hui-element
- card_type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: >-
- script.irrigation_run_a_single_zone_on_demand
- triggers_update:
- - timer.irrigation_zone1_timer
- name: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'Run This Zone Now';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'Stop This Zone';
- else return '';
- ]]]
- icon: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'mdi:play-circle-outline';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'mdi:stop-circle-outline';
- else return '';
- ]]]
- size: 90%
- styles:
- grid:
- - grid-template-areas: "\"i n\""
- - grid-template-columns: 20% 1fr
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = '1';
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'none';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state != 'active'
- )
- return 'none';
- else return '';
- ]]]
- - font-family: >-
- [[[ return
- states['input_text.irrigation_ui_font_family'].state
- ]]]
- - font-size: 14px
- - background-color: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else 'var(--primary-background-color)';
- ]]]
- - border: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else return '1px solid var(--accent-color)';
- ]]]
- - padding: |
- [[[
- var zone = '1';
- if (entity.state == 'on' ||
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '0em';
- else return '0.5em';
- ]]]
- - border-radius: 5px
- icon:
- - color: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'green';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'red';
- else return '';
- ]]]
- tap_action:
- action: call-service
- service: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'script.irrigation_run_a_single_zone_on_demand';
- else if (entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active')
- return 'script.irrigation_cancel_irrigation';
- else return '';
- ]]]
- service_data:
- cycle: cycle3
- zone: zone1
- - type: custom:button-card
- color_type: blank-card
- - entity: >-
- input_number.irrigation_cycle3_zone1_duration_box
- name: Duration
- - type: conditional
- conditions:
- - entity: input_boolean.irrigation_remote_control
- state: "on"
- row:
- entity: >-
- input_number.irrigation_remote_control_zone1_duration
- name: Remote Control Duration
- icon: mdi:alpha-r-box-outline
- - entity: input_text.irrigation_zone1_name
- name: Zone Name
- - entity: >-
- input_text.irrigation_zone1_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- card_mod:
- style: |
- :host {
- {% if is_state('input_number.irrigation_cycle3_zone1_duration', '0.0') %}
- color: var(--secondary-text-color);
- opacity: 50%;
- {% endif %}
- }
- card_mod:
- style: |
- ha-card {
- background: none;
- overflow: visible !important;
- }
- #states {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- font-size: 16px;
- padding: 0.25em 0.75em 0.25em 0.25em;
- }
- :host {
- {% raw %}
- {% if is_state('input_select.irrigation_cycle', 'cycle1') %}
- {% set cycle_ui = 1 %}
- {% elif is_state('input_boolean.irrigation_cycle', 'cycle2') %}
- {% set cycle_ui = 2 %}
- {% else %}
- {% set cycle_ui = 3 %}
- {% endif %}
- {% if is_state('timer.irrigation_zone1_timer', 'active') and
- cycle_ui == 3 %}
- --paper-item-icon-color: var(--paper-item-icon-active-color);
- {% endif %}
- {% endraw %}
- }
- - type: custom:config-template-card
- variables:
- ZONE_NAME: states['input_text.irrigation_zone2_name'].state
- CYCLE_NAME: states['input_text.irrigation_cycle3_name'].state
- TIMER_STATE: states['timer.irrigation_zone2_timer'].state
- entities:
- - input_text.irrigation_zone2_name
- - input_number.irrigation_cycle3_zone2_duration
- - timer.irrigation_zone2_timer
- card:
- type: entities
- entities:
- - entity: input_number.irrigation_cycle3_zone2_duration
- name: ${ ZONE_NAME }
- icon: >-
- ${ TIMER_STATE === 'active' ?
- 'mdi:sprinkler-variant' : '' }
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Manual Cycle - Zone 1
- hide_header: false
- content:
- type: entities
- entities:
- - type: custom:hui-element
- card_type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: >-
- script.irrigation_run_a_single_zone_on_demand
- triggers_update:
- - timer.irrigation_zone2_timer
- name: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'Run This Zone Now';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'Stop This Zone';
- else return '';
- ]]]
- icon: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'mdi:play-circle-outline';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'mdi:stop-circle-outline';
- else return '';
- ]]]
- size: 50%
- styles:
- grid:
- - grid-template-areas: "\"i n\""
- - grid-template-columns: 20% 1fr
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = '1';
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'none';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state != 'active'
- )
- return 'none';
- else return '';
- ]]]
- - font-family: >-
- [[[ return
- states['input_text.irrigation_ui_font_family'].state
- ]]]
- - font-size: 14px
- - background-color: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else 'var(--primary-background-color)';
- ]]]
- - border: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else return '1px solid var(--accent-color)';
- ]]]
- - padding: |
- [[[
- var zone = '1';
- if (entity.state == 'on' ||
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '0em';
- else return '0.5em';
- ]]]
- - border-radius: 5px
- icon:
- - color: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'green';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'red';
- else return '';
- ]]]
- tap_action:
- action: call-service
- service: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'script.irrigation_run_a_single_zone_on_demand';
- else if (entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active')
- return 'script.irrigation_cancel_irrigation';
- else return '';
- ]]]
- service_data:
- cycle: cycle3
- zone: zone2
- - type: custom:button-card
- color_type: blank-card
- - entity: >-
- input_number.irrigation_cycle3_zone2_duration_box
- name: Duration
- - type: conditional
- conditions:
- - entity: input_boolean.irrigation_remote_control
- state: "on"
- row:
- entity: >-
- input_number.irrigation_remote_control_zone2_duration
- name: Remote Control Duration
- icon: mdi:alpha-r-box-outline
- - entity: input_text.irrigation_zone2_name
- name: Zone Name
- - entity: >-
- input_text.irrigation_zone2_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- card_mod:
- style: |
- :host {
- {% if is_state('input_number.irrigation_cycle3_zone2_duration', '0.0') %}
- color: var(--secondary-text-color);
- opacity: 50%;
- {% endif %}
- }
- card_mod:
- style: |
- ha-card {
- background: none;
- overflow: visible !important;
- }
- #states {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- font-size: 16px;
- padding: 0.25em 0.75em 0.25em 0.25em;
- }
- :host {
- {% raw %}
- {% if is_state('input_select.irrigation_cycle', 'cycle1') %}
- {% set cycle_ui = 1 %}
- {% elif is_state('input_boolean.irrigation_cycle', 'cycle2') %}
- {% set cycle_ui = 2 %}
- {% else %}
- {% set cycle_ui = 3 %}
- {% endif %}
- {% if is_state('timer.irrigation_zone2_timer', 'active') and
- cycle_ui == 3 %}
- --paper-item-icon-color: var(--paper-item-icon-active-color);
- {% endif %}
- {% endraw %}
- }
- - type: custom:config-template-card
- variables:
- ZONE_NAME: states['input_text.irrigation_zone3_name'].state
- CYCLE_NAME: states['input_text.irrigation_cycle3_name'].state
- TIMER_STATE: states['timer.irrigation_zone3_timer'].state
- entities:
- - input_text.irrigation_zone3_name
- - input_number.irrigation_cycle3_zone3_duration
- - timer.irrigation_zone3_timer
- card:
- type: entities
- entities:
- - entity: input_number.irrigation_cycle3_zone3_duration
- name: ${ ZONE_NAME }
- icon: >-
- ${ TIMER_STATE === 'active' ?
- 'mdi:sprinkler-variant' : '' }
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Manual Cycle - Zone 1
- hide_header: false
- content:
- type: entities
- entities:
- - type: custom:hui-element
- card_type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: >-
- script.irrigation_run_a_single_zone_on_demand
- triggers_update:
- - timer.irrigation_zone3_timer
- name: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'Run This Zone Now';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'Stop This Zone';
- else return '';
- ]]]
- icon: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'mdi:play-circle-outline';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'mdi:stop-circle-outline';
- else return '';
- ]]]
- size: 90%
- styles:
- grid:
- - grid-template-areas: "\"i n\""
- - grid-template-columns: 20% 1fr
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = '1';
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'none';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state != 'active'
- )
- return 'none';
- else return '';
- ]]]
- - font-family: >-
- [[[ return
- states['input_text.irrigation_ui_font_family'].state
- ]]]
- - font-size: 14px
- - background-color: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else 'var(--primary-background-color)';
- ]]]
- - border: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else return '1px solid var(--accent-color)';
- ]]]
- - padding: |
- [[[
- var zone = '1';
- if (entity.state == 'on' ||
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '0em';
- else return '0.5em';
- ]]]
- - border-radius: 5px
- icon:
- - color: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'green';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'red';
- else return '';
- ]]]
- tap_action:
- action: call-service
- service: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'script.irrigation_run_a_single_zone_on_demand';
- else if (entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active')
- return 'script.irrigation_cancel_irrigation';
- else return '';
- ]]]
- service_data:
- cycle: cycle3
- zone: zone3
- - type: custom:button-card
- color_type: blank-card
- - entity: >-
- input_number.irrigation_cycle3_zone3_duration_box
- name: Duration
- - type: conditional
- conditions:
- - entity: input_boolean.irrigation_remote_control
- state: "on"
- row:
- entity: >-
- input_number.irrigation_remote_control_zone3_duration
- name: Remote Control Duration
- icon: mdi:alpha-r-box-outline
- - entity: input_text.irrigation_zone3_name
- name: Zone Name
- - entity: >-
- input_text.irrigation_zone3_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- card_mod:
- style: |
- :host {
- {% if is_state('input_number.irrigation_cycle3_zone3_duration', '0.0') %}
- color: var(--secondary-text-color);
- opacity: 50%;
- {% endif %}
- }
- card_mod:
- style: |
- ha-card {
- background: none;
- overflow: visible !important;
- }
- #states {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- font-size: 16px;
- padding: 0.25em 0.75em 0.25em 0.25em;
- }
- :host {
- {% raw %}
- {% if is_state('input_select.irrigation_cycle', 'cycle1') %}
- {% set cycle_ui = 1 %}
- {% elif is_state('input_boolean.irrigation_cycle', 'cycle2') %}
- {% set cycle_ui = 2 %}
- {% else %}
- {% set cycle_ui = 3 %}
- {% endif %}
- {% if is_state('timer.irrigation_zone3_timer', 'active') and
- cycle_ui == 3 %}
- --paper-item-icon-color: var(--paper-item-icon-active-color);
- {% endif %}
- {% endraw %}
- }
- - type: custom:config-template-card
- variables:
- ZONE_NAME: states['input_text.irrigation_zone4_name'].state
- CYCLE_NAME: states['input_text.irrigation_cycle3_name'].state
- TIMER_STATE: states['timer.irrigation_zone4_timer'].state
- entities:
- - input_text.irrigation_zone4_name
- - input_number.irrigation_cycle3_zone4_duration
- - timer.irrigation_zone4_timer
- card:
- type: entities
- entities:
- - entity: input_number.irrigation_cycle3_zone4_duration
- name: ${ ZONE_NAME }
- icon: >-
- ${ TIMER_STATE === 'active' ?
- 'mdi:sprinkler-variant' : '' }
- tap_action:
- action: fire-dom-event
- browser_mod:
- service: browser_mod.popup
- data:
- title: Manual Cycle - Zone 1
- hide_header: false
- content:
- type: entities
- entities:
- - type: custom:hui-element
- card_type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: >-
- script.irrigation_run_a_single_zone_on_demand
- triggers_update:
- - timer.irrigation_zone4_timer
- name: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'Run This Zone Now';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'Stop This Zone';
- else return '';
- ]]]
- icon: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'mdi:play-circle-outline';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'mdi:stop-circle-outline';
- else return '';
- ]]]
- size: 90%
- styles:
- grid:
- - grid-template-areas: "\"i n\""
- - grid-template-columns: 20% 1fr
- - grid-template-rows: 1fr
- card:
- - display: |
- [[[
- var zone = '1';
- if (states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on')
- return 'none';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state != 'active'
- )
- return 'none';
- else return '';
- ]]]
- - font-family: >-
- [[[ return
- states['input_text.irrigation_ui_font_family'].state
- ]]]
- - font-size: 14px
- - background-color: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else 'var(--primary-background-color)';
- ]]]
- - border: |
- [[[
- var zone = '1';
- if (entity.state == 'on' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '';
- else return '1px solid var(--accent-color)';
- ]]]
- - padding: |
- [[[
- var zone = '1';
- if (entity.state == 'on' ||
- states['input_boolean.irrigation_cycle1_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'on' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'on')
- return '0em';
- else return '0.5em';
- ]]]
- - border-radius: 5px
- icon:
- - color: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle2_running'].state == 'off' ||
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'green';
- else if (
- entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active'
- )
- return 'red';
- else return '';
- ]]]
- tap_action:
- action: call-service
- service: |
- [[[
- var zone = '1';
- if (entity.state == 'off' &&
- states['input_boolean.irrigation_cycle1_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle2_running'].state == 'off' &&
- states['input_boolean.irrigation_cycle3_running'].state == 'off')
- return 'script.irrigation_run_a_single_zone_on_demand';
- else if (entity.state == 'on' &&
- states['timer.irrigation_zone' + zone + '_timer'].state == 'active')
- return 'script.irrigation_cancel_irrigation';
- else return '';
- ]]]
- service_data:
- cycle: cycle3
- zone: zone4
- - type: custom:button-card
- color_type: blank-card
- - entity: >-
- input_number.irrigation_cycle3_zone4_duration_box
- name: Duration
- - type: conditional
- conditions:
- - entity: input_boolean.irrigation_remote_control
- state: "on"
- row:
- entity: >-
- input_number.irrigation_remote_control_zone4_duration
- name: Remote Control Duration
- icon: mdi:alpha-r-box-outline
- - entity: input_text.irrigation_zone4_name
- name: Zone Name
- - entity: >-
- input_text.irrigation_zone4_switch_entity_id
- name: Switch Name
- card_mod:
- style: |
- ha-card {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- style:
- $: >
- .mdc-dialog .mdc-dialog__container
- .mdc-dialog__surface {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- }
- card_mod:
- style: |
- :host {
- {% if is_state('input_number.irrigation_cycle3_zone4_duration', '0.0') %}
- color: var(--secondary-text-color);
- opacity: 50%;
- {% endif %}
- }
- card_mod:
- style: |
- ha-card {
- background: none;
- overflow: visible !important;
- }
- #states {
- font-family: {% raw %}{{ states('input_text.irrigation_ui_font_family') }}{% endraw %};
- font-size: 16px;
- padding: 0.25em 0.75em 0.25em 0.25em;
- }
- :host {
- {% raw %}
- {% if is_state('input_select.irrigation_cycle', 'cycle1') %}
- {% set cycle_ui = 1 %}
- {% elif is_state('input_boolean.irrigation_cycle', 'cycle2') %}
- {% set cycle_ui = 2 %}
- {% else %}
- {% set cycle_ui = 3 %}
- {% endif %}
- {% if is_state('timer.irrigation_zone4_timer', 'active') and
- cycle_ui == 3 %}
- --paper-item-icon-color: var(--paper-item-icon-active-color);
- {% endif %}
- {% endraw %}
- }
- head:
- entity: input_boolean.irrigation_cycle3_running
- toggle: false
- name: Manual Cycle
- content_info: name
- icon: mdi:sprinkler-variant
- type: custom:multiple-entity-row
- state_color: true
- entities:
- - entity: sensor.cycle_3_zones1234_duration_sum
- styles: null
- state_color: true
- name: false
- card_mod:
- style: |
- div#head ha-icon {
- color: gray;
- }
- - type: custom:vertical-stack-in-card
- cards:
- - type: entities
- entities:
- - entity: input_number.irrigation_high_temp_4
- name: Temp History (°C)
- type: custom:multiple-entity-row
- unit: false
- secondary_info:
- entity: sensor.blankblank
- name: Multiplier
- state_header: 4 days
- entities:
- - entity: sensor.irrigation_sensor_forecast_high_temp
- unit: false
- name: Today
- - entity: input_number.irrigation_high_temp_1
- unit: false
- name: Yesterday
- - entity: input_number.irrigation_high_temp_2
- unit: false
- name: 2 Days
- - entity: input_number.irrigation_high_temp_3
- unit: false
- name: 3 Days
- card_mod:
- style:
- hui-generic-entity-row $: |
- .secondary::after {
- color: crimson ;
- content: "{{ states('input_number.irrigation_temp_multiplier') }}"
- }
- - type: custom:vertical-stack-in-card
- cards:
- - type: custom:mini-graph-card
- height: 92
- entities:
- - entity: sensor.irrigation_sensor_forecast_high_temp
- color: orchid
- show_legend: true
- name: Forecasted max temp
- - entity: sensor.irrigation_sensor_current_temp
- color: Crimson
- show_legend: true
- name: Real temp
- - entity: sensor.night_or_day
- name: Night
- y_axis: secondary
- color: black
- show_line: false
- show_points: false
- show_legend: false
- line_width: 1
- hours_to_show: 72
- points_per_hour: 1
- aggregate_func: min
- show:
- fill: fade
- name: false
- state: false
- labels: true
- points: false
- labels_secondary: false
- icon: false
- tap_action:
- action: none
- card_mod:
- style: |
- ha-card {
- background: none;
- border-radius: 0px;
- border-width: 0px;
- }
- show_header_toggle: false
- card_mod:
- style: |
- ha-card {
- padding-top:13px ;
- }
- - type: entities
- entities:
- - entity: sensor.irrigation_sensor_rainfall_4
- name: Rain History (mm)
- type: custom:multiple-entity-row
- tap-action:
- action: more-info
- entity-id: input_number.irrigation_rainfall_multiplier
- secondary_info:
- entity: sensor.blankblank
- name: Multiplier
- tap-action:
- action: more-info
- entity: input_number.irrigation_rainfall_multiplier
- unit: false
- state_header: 4 days
- entities:
- - entity: sensor.irrigation_sensor_rainfall_today
- name: Today
- unit: false
- - entity: sensor.irrigation_sensor_rainfall_yesterday
- unit: false
- name: Yesterday
- - entity: sensor.irrigation_sensor_rainfall_2
- unit: false
- name: 2 Days
- - entity: sensor.irrigation_sensor_rainfall_3
- unit: false
- name: 3 Days
- card_mod:
- style:
- hui-generic-entity-row $: |
- .secondary::after {
- color: DodgerBlue ;
- content: "{{ states('input_number.irrigation_rainfall_multiplier') }}"
- }
- - type: custom:vertical-stack-in-card
- cards:
- - type: custom:mini-graph-card
- height: 92
- entities:
- - entity: sensor.irrigation_sensor_forecast_rain
- color: orchid
- show_legend: true
- name: Forecasted rainfall
- - entity: sensor.irrigation_sensor_rainfall_today
- color: DodgerBlue
- name: Real rainfall
- show_legend: true
- show_fill: true
- - entity: sensor.night_or_day
- name: Night
- y_axis: secondary
- color: black
- show_points: true
- show_line: false
- show_legend: false
- line_width: 1
- hours_to_show: 72
- points_per_hour: 1
- aggregate_func: min
- show:
- fill: fade
- name: false
- state: false
- labels: true
- points: false
- labels_secondary: false
- icon: false
- tap_action:
- action: none
- card_mod:
- style: |
- ha-card {
- background: none;
- border-radius: 0px;
- } .flex {
- padding: 0em
- }
- card_mod:
- style: |
- ha-card {
- padding-top:13px ;
- }
- - type: custom:weather-chart-card
- entity: weather.pirateweather
- forecast:
- precipitation_type: ""
- type: daily
- style: style2
- units:
- pressure: ""
- speed: ""
- temp: sensor.gw2000a_outdoor_temperature
- feels_like: sensor.gw2000a_feels_like_temperature
- press: sensor.gw2000a_absolute_pressure
- humid: sensor.gw2000a_humidity
- uv: sensor.gw2000a_uv_index
- winddir: sensor.gw2000a_wind_direction
- windspeed: sensor.gw2000a_wind_speed
- dew_point: sensor.gw2000a_dewpoint
- wind_gust_speed: sensor.gw2000a_wind_gust
- description: sensor.openweathermap_hourly_weather_forecast
- show_main: false
- show_feels_like: false
- show_description: false
- show_temperature: false
- show_current_condition: false
- show_attributes: false
- show_humidity: false
- show_pressure: false
- show_sun: false
- show_wind_direction: false
- show_wind_speed: false
- show_dew_point: false
- show_wind_gust_speed: false
- show_visibility: false
- show_last_changed: false
- autoscroll: false
- use_12hour_format: false
- show_time: false
- layout:
- grid-template-columns: 33% 33% 34%
- grid-template-areas: |
- "charts tariff"
Advertisement
Add Comment
Please, Sign In to add comment