223 lines
7.5 KiB
YAML
223 lines
7.5 KiB
YAML
################################################################################
|
|
# chore-tracker-ha.yaml (AUTO-GENERATED — edit chores_config.yaml)
|
|
# Kids: Jordyn, Declan, Chloe
|
|
#
|
|
# BIDIRECTIONAL SYNC:
|
|
# Screen to HA: Each switch calls homeassistant.service on toggle
|
|
# HA to Screen: ESPHome native API handles this automatically
|
|
################################################################################
|
|
|
|
input_button:
|
|
jordyn_reset_chores:
|
|
name: "Reset Jordyn's Chores"
|
|
icon: mdi:restart
|
|
declan_reset_chores:
|
|
name: "Reset Declan's Chores"
|
|
icon: mdi:restart
|
|
chloe_reset_chores:
|
|
name: "Reset Chloe's Chores"
|
|
icon: mdi:restart
|
|
reset_all_chores:
|
|
name: "Reset All Chores"
|
|
icon: mdi:restart-alert
|
|
|
|
template:
|
|
- sensor:
|
|
- name: "Jordyn Chores Done Today"
|
|
unique_id: jordyn_chores_done_today
|
|
icon: mdi:check-circle
|
|
state: >
|
|
{% set chores = [states('switch.chore_tracker_jordyn_put_on_underwear'), states('switch.chore_tracker_jordyn_brush_teeth'), states('switch.chore_tracker_jordyn_fill_water_bowls'), states('switch.chore_tracker_jordyn_restock_cat_food_cans')] %}
|
|
{{ chores | select('equalto', 'on') | list | count }}
|
|
|
|
- name: "Jordyn All Chores Done"
|
|
unique_id: jordyn_all_chores_done
|
|
icon: mdi:check-all
|
|
state: >
|
|
{{ states('sensor.jordyn_chores_done_today') | int == 4 }}
|
|
|
|
- name: "Declan Chores Done Today"
|
|
unique_id: declan_chores_done_today
|
|
icon: mdi:check-circle
|
|
state: >
|
|
{% set chores = [states('switch.chore_tracker_declan_take_morning_pill'), states('switch.chore_tracker_declan_scoop_dog_poop')] %}
|
|
{{ chores | select('equalto', 'on') | list | count }}
|
|
|
|
- name: "Declan All Chores Done"
|
|
unique_id: declan_all_chores_done
|
|
icon: mdi:check-all
|
|
state: >
|
|
{{ states('sensor.declan_chores_done_today') | int == 2 }}
|
|
|
|
- name: "Chloe Chores Done Today"
|
|
unique_id: chloe_chores_done_today
|
|
icon: mdi:check-circle
|
|
state: >
|
|
{% set chores = [states('switch.chore_tracker_chloe_fill_kitty_feeders'), states('switch.chore_tracker_chloe_scoop_kitty_litter'), states('switch.chore_tracker_chloe_replace_kitty_litter_bags')] %}
|
|
{{ chores | select('equalto', 'on') | list | count }}
|
|
|
|
- name: "Chloe All Chores Done"
|
|
unique_id: chloe_all_chores_done
|
|
icon: mdi:check-all
|
|
state: >
|
|
{{ states('sensor.chloe_chores_done_today') | int == 3 }}
|
|
|
|
|
|
automation:
|
|
- id: jordyn_reset_from_ha
|
|
alias: "Chore Tracker - Reset Jordyn's chores from HA"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_button.jordyn_reset_chores
|
|
action:
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_put_on_underwear
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_brush_teeth
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_fill_water_bowls
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_restock_cat_food_cans
|
|
|
|
- id: declan_reset_from_ha
|
|
alias: "Chore Tracker - Reset Declan's chores from HA"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_button.declan_reset_chores
|
|
action:
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_declan_take_morning_pill
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_declan_scoop_dog_poop
|
|
|
|
- id: chloe_reset_from_ha
|
|
alias: "Chore Tracker - Reset Chloe's chores from HA"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_button.chloe_reset_chores
|
|
action:
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_chloe_fill_kitty_feeders
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_chloe_scoop_kitty_litter
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_chloe_replace_kitty_litter_bags
|
|
|
|
- id: reset_all_from_ha
|
|
alias: "Chore Tracker - Reset ALL chores from HA"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_button.reset_all_chores
|
|
action:
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_put_on_underwear
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_brush_teeth
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_fill_water_bowls
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_jordyn_restock_cat_food_cans
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_declan_take_morning_pill
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_declan_scoop_dog_poop
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_chloe_fill_kitty_feeders
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_chloe_scoop_kitty_litter
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.chore_tracker_chloe_replace_kitty_litter_bags
|
|
|
|
- id: jordyn_all_done_notify
|
|
alias: "Chore Tracker - Jordyn all done!"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: sensor.jordyn_all_chores_done
|
|
to: "True"
|
|
action:
|
|
- service: notify.notify
|
|
data:
|
|
title: "Jordyn finished all chores!"
|
|
message: "Jordyn completed all 4 chores today!"
|
|
|
|
- id: declan_all_done_notify
|
|
alias: "Chore Tracker - Declan all done!"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: sensor.declan_all_chores_done
|
|
to: "True"
|
|
action:
|
|
- service: notify.notify
|
|
data:
|
|
title: "Declan finished all chores!"
|
|
message: "Declan completed all 2 chores today!"
|
|
|
|
- id: chloe_all_done_notify
|
|
alias: "Chore Tracker - Chloe all done!"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: sensor.chloe_all_chores_done
|
|
to: "True"
|
|
action:
|
|
- service: notify.notify
|
|
data:
|
|
title: "Chloe finished all chores!"
|
|
message: "Chloe completed all 3 chores today!"
|
|
|
|
- id: chore_reminder_evening
|
|
alias: "Chore Tracker - Evening reminder"
|
|
trigger:
|
|
- platform: time
|
|
at: "18:00:00"
|
|
action:
|
|
- if:
|
|
condition: template
|
|
value_template: "{{ states('sensor.jordyn_all_chores_done') != 'True' }}"
|
|
then:
|
|
- service: notify.notify
|
|
data:
|
|
title: "Jordyn has unfinished chores"
|
|
message: >
|
|
Jordyn has done
|
|
{{ states('sensor.jordyn_chores_done_today') }}/4 chores today.
|
|
- if:
|
|
condition: template
|
|
value_template: "{{ states('sensor.declan_all_chores_done') != 'True' }}"
|
|
then:
|
|
- service: notify.notify
|
|
data:
|
|
title: "Declan has unfinished chores"
|
|
message: >
|
|
Declan has done
|
|
{{ states('sensor.declan_chores_done_today') }}/2 chores today.
|
|
- if:
|
|
condition: template
|
|
value_template: "{{ states('sensor.chloe_all_chores_done') != 'True' }}"
|
|
then:
|
|
- service: notify.notify
|
|
data:
|
|
title: "Chloe has unfinished chores"
|
|
message: >
|
|
Chloe has done
|
|
{{ states('sensor.chloe_chores_done_today') }}/3 chores today.
|
|
|
|
|