I prefer planning chores to actually doing chores. So naturally, I created a super simple system for keeping track of repeating household chores. The goal of this article is to show you how you can make your own simple chore tracking system with a few, simple steps.
I see people complicating chores out there. A chore doesn't have to be more than a statement with a due or completed status. And that's an input boolean for you, where "off" is due, and "on" is completed. The input boolean can either be defined as a helper in the Home Assistant GUI, or you can define it in YAML (as I prefer to do it, because it's a lot faster).
input_boolean:
vacuum_household_chore:
name: Vacuum the house
bedlinens_household_chore:
name: Change bed linens
ventilationfilter_household_chore:
name: Change the ventilation filters
These three chores obviously won't have to be completed with the same frequency. I'd say vacuuming and changing bedlinens could be weekly tasks, while changing the ventilation filters is something you'd do maybe every 3 months.
So let's create automations to turn the household chores due at different frequencies:
automation:
- alias: Chores - weekly
trigger:
- platform: time
at: 06:00:00
condition:
- condition: time
weekday:
- thu
action:
- service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.vacuum_household_chore
- input_boolean.bedlinens_household_chore
mode: single
- alias: Chores - quarterly
trigger:
- platform: time
at: 06:00:00
condition:
- condition: template
value_template: '{{ now().day == 1 }}'
- condition: template
value_template: '{{ now().month in (1,4,7,10) }}'
action:
- service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.ventilationfilter_household_chore
mode: single
These first automations will turn the tasks "due" Thursday morning every week. The second automation will turn the task "due" the first day in January, April, July and October.
To be notified whenever you have "due" tasks, you can create a binary template sensor like this.
binary_sensor:
- unique_id: task_due
attributes:
friendly_name: Task due
state: "{{ (states |selectattr('entity_id', 'search', 'input_boolean.*_household_chore') |selectattr('state', 'in', 'off')|list)|length > 0 }}"
This sensor, called _binary_sensor.template_taskdue, will be "on" whenever at least one household chore is due. You can use this for a dashboard notification or a mobile app notification every afternoon like this:
automation:
- alias: Tasks due notification
trigger:
- platform: time
at: 16:00:00
condition:
- condition: state
entity_id: binary_sensor.template_task_due
state: on
action:
- service: notify.mobile_app_yourmobile
continue_on_error: true
data:
message: 'Hey - complete those due tasks!'
mode: single
To get a list over chores due on your dashboard, use Thomas Lovens brilliant auto-entities card:
- type: custom:auto-entities
filter:
include:
- entity_id: input_boolean.*_household_chore
state: "off"
show_empty: false
card:
type: entities
title: Household chores due
show_header_toggle: false
show_state: false
With this simple system, you have recurring tasks with various frequencies, notifications, visualizations and a way of completing the tasks in Home Assistant.
When you have completed all your tasks, the list of due tasks will disappear until you have new due tasks, your binary sensor for tasks du will be turned off and you won't receive daily notifications.
But this is no fun, because you have to do it all yourself...
I also wanted a system to engage the kids in doing their chores. I won't need to do chores I can make somebody else do! Right? In the past, we've been using a whiteboard to keep track of tasks. But it's analogue, got limited space, got no time tracking, can't notify me, it's easy to forget to reset and hard to calculate the weekly allowance based on completed chores. So, why not create a special dashboards for the kids, where they kan keep track of their score and throw in an element of gamification? On top of the simple chore planning system, I've built a "gamified" version that will spur competition in the household to be the one to complete the most chores... while you kick back and relax! That will be discussed in a leter article. But here's a sneak peek!
The dashboard has an achieved star rating for the current week. The points and rating resets automatically at the end of each week. Whenever a task is completed, the points associated to the task are aded to the current points, and the star rating may increase if you reach the next level. The payout is recalculated and converted to e.g. Robux automatically for additional intereset for the kids. This, however requires som additional template sensors and automations... but definitely doable for the next article.