301 lines
11 KiB
YAML
301 lines
11 KiB
YAML
type: grid
|
|
square: false
|
|
columns: 1
|
|
cards:
|
|
- type: markdown
|
|
content: >
|
|
{% set trackers = [
|
|
{
|
|
"counter": states("counter.days_since_fridge_water_filter") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_fridge_water_filter", "upper"),
|
|
"percent": (int(states("counter.days_since_fridge_water_filter")) / state_attr("binary_sensor.threshold_for_days_since_fridge_water_filter", "upper")),
|
|
"name": "Fridge Water Filter Replaced"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_litter_boxes_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_litter_boxes_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_litter_boxes_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_litter_boxes_cleaned", "upper")),
|
|
"name": "Litter Boxes Cleaned"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_cat_water_fountain_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_cat_water_fountain_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_cat_water_fountain_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_cat_water_fountain_cleaned", "upper")),
|
|
"name": "Cat Water Fountain Cleaned"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_kitchen_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_kitchen_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_kitchen_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_kitchen_cleaned", "upper")),
|
|
"name": "Kitchen Cleaned"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_kitchen_counters_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_kitchen_counters_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_kitchen_counters_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_kitchen_counters_cleaned", "upper")),
|
|
"name": "Kitchen Counters Cleaned"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_living_room_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_living_room_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_living_room_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_living_room_cleaned", "upper")),
|
|
"name": "Living Room Cleaned"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_upstairs_vacuumed") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_upstairs_vacuumed", "upper"),
|
|
"percent": (int(states("counter.days_since_upstairs_vacuumed")) / state_attr("binary_sensor.threshold_for_days_since_upstairs_vacuumed", "upper")),
|
|
"name": "Upstairs Vacuumed"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_bathroom_counters_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_bathroom_counters_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_bathroom_counters_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_bathroom_counters_cleaned", "upper")),
|
|
"name": "Bathroom Counters Cleaned"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_bedroom_vacuumed") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_bedroom_vacuumed", "upper"),
|
|
"percent": (int(states("counter.days_since_bedroom_vacuumed")) / state_attr("binary_sensor.threshold_for_days_since_bedroom_vacuumed", "upper")),
|
|
"name": "Bedroom Vacuumed"
|
|
},
|
|
{
|
|
"counter": states("counter.days_since_toilets_cleaned") | int,
|
|
"threshold": state_attr("binary_sensor.threshold_for_days_since_toilets_cleaned", "upper"),
|
|
"percent": (int(states("counter.days_since_toilets_cleaned")) / state_attr("binary_sensor.threshold_for_days_since_toilets_cleaned", "upper")),
|
|
"name": "Toilets Cleaned"
|
|
},
|
|
]%}
|
|
|
|
|
|
{% for tracker in (trackers | sort(reverse=true, attribute='percent')) %}
|
|
{% set days_left = ((tracker.threshold - tracker.counter) | int | string) %}
|
|
{% set message = tracker.name + " completed " + tracker.counter | string + " days ago. Due again in " + days_left + " days." %}
|
|
{% if tracker.percent > 1 %}
|
|
<ha-alert alert-type="error">{{ message }}</ha-alert>
|
|
{% elif tracker.percent > 0.8 %}
|
|
<ha-alert alert-type="warning">{{ message }}</ha-alert>
|
|
{% else %}
|
|
<ha-alert alert-type="success">{{ message }}</ha-alert>
|
|
{% endif %}
|
|
{% endfor %}
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Fridge Water Filter Replaced
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_fridge_water_filter
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_fridge_water_filter
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_fridge_water_filter
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_fridge_water_filter
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Litter Boxes Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_litter_boxes_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_litter_boxes_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_litter_boxes_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_litter_boxes_cleaned
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Cat Water Fountain Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_cat_water_fountain_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_cat_water_fountain_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_cat_water_fountain_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_cat_water_fountain_cleaned
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Kitchen Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_kitchen_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_kitchen_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_kitchen_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_kitchen_cleaned
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Kitchen Counters Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_kitchen_counters_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_kitchen_counters_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_kitchen_counters_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_kitchen_counters_cleaned
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Living Room Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_living_room_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_living_room_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_living_room_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_living_room_cleaned
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Upstairs Vacuumed
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_upstairs_vacuumed
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_upstairs_vacuumed
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_upstairs_vacuumed
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_upstairs_vacuumed
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Bathroom Counters Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_bathroom_counters_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_bathroom_counters_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_bathroom_counters_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_bathroom_counters_cleaned
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Bedroom Vacuumed
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_bedroom_vacuumed
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_bedroom_vacuumed
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_bedroom_vacuumed
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_bedroom_vacuumed
|
|
name: Last Non-Zero
|
|
|
|
- type: grid
|
|
square: false
|
|
columns: 2
|
|
title: Days Since Toilets Cleaned
|
|
cards:
|
|
- type: button
|
|
name: Reset
|
|
entity: input_button.reset_days_since_toilets_cleaned
|
|
tap_action:
|
|
action: toggle
|
|
- type: button
|
|
entity: input_button.undo_reset_days_since_toilets_cleaned
|
|
name: Undo
|
|
tap_action:
|
|
action: toggle
|
|
- type: entity
|
|
entity: counter.days_since_toilets_cleaned
|
|
name: Days Since
|
|
- type: entity
|
|
entity: counter.last_non_zero_days_since_toilets_cleaned
|
|
name: Last Non-Zero
|