################################################################################ # chore-tracker-ha.yaml (AUTO-GENERATED — edit chores_config.yaml) # Kids: Jordyn, Declan, Chloe # # BIDIRECTIONAL SYNC: # Screen → HA: Each switch calls homeassistant.service on toggle # HA → 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_make_bed'), states('switch.chore_tracker_jordyn_brush_teeth'), states('switch.chore_tracker_jordyn_tidy_room'), states('switch.chore_tracker_jordyn_homework'), states('switch.chore_tracker_jordyn_feed_dog')] %} {{ 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 == 5 }} - name: "Declan Chores Done Today" unique_id: declan_chores_done_today icon: mdi:check-circle state: > {% set chores = [states('switch.chore_tracker_declan_make_bed'), states('switch.chore_tracker_declan_brush_teeth'), states('switch.chore_tracker_declan_set_table'), states('switch.chore_tracker_declan_take_out_trash')] %} {{ 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 == 4 }} - name: "Chloe Chores Done Today" unique_id: chloe_chores_done_today icon: mdi:check-circle state: > {% set chores = [states('switch.chore_tracker_chloe_make_bed'), states('switch.chore_tracker_chloe_brush_teeth'), states('switch.chore_tracker_chloe_water_plants'), states('switch.chore_tracker_chloe_homework'), states('switch.chore_tracker_chloe_tidy_room'), states('switch.chore_tracker_chloe_practice_piano')] %} {{ 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 == 6 }} 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_make_bed - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_brush_teeth - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_tidy_room - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_homework - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_feed_dog - 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_make_bed - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_brush_teeth - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_set_table - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_take_out_trash - 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_make_bed - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_brush_teeth - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_water_plants - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_homework - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_tidy_room - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_practice_piano - 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_make_bed - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_brush_teeth - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_tidy_room - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_homework - service: switch.turn_off target: entity_id: switch.chore_tracker_jordyn_feed_dog - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_make_bed - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_brush_teeth - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_set_table - service: switch.turn_off target: entity_id: switch.chore_tracker_declan_take_out_trash - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_make_bed - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_brush_teeth - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_water_plants - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_homework - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_tidy_room - service: switch.turn_off target: entity_id: switch.chore_tracker_chloe_practice_piano - 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 5 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 4 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 6 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') }}/5 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') }}/4 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') }}/6 chores today.