Add chore tracker configuration for kids' chores with reset buttons and notifications
This commit is contained in:
1757
esphome/chore-tracker/chore-tracker-esphome.yaml
Normal file
1757
esphome/chore-tracker/chore-tracker-esphome.yaml
Normal file
File diff suppressed because it is too large
Load Diff
258
esphome/chore-tracker/chore-tracker-ha.yaml
Normal file
258
esphome/chore-tracker/chore-tracker-ha.yaml
Normal file
@@ -0,0 +1,258 @@
|
||||
################################################################################
|
||||
# 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.
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ time:
|
||||
{reset_calls}
|
||||
- lvgl.page.show: page_home
|
||||
|
||||
fonts:
|
||||
font:
|
||||
- file: "gfonts://Nunito:wght@900"
|
||||
id: font_title
|
||||
size: 40
|
||||
|
||||
Reference in New Issue
Block a user