Recurring Task Tracker in Home Assistant
Overview:
This document specifies the high-level requirements to build a lightweight recurring task tracking feature in Home Assistant (HA). As a home automation system that already tracks events and controls devices around your home, it makes sense that some users may want to extend HA as a kind of “Home Management System” for other activities, particularly recurring tasks related devices integrated into Home Assistant. Afterall, if you are already using Home Assistant to control your everything about your furnace, then that’s probably a useful place to get a reminder to periodically change your filter.
As the devices and the environment around our homes become more automated and people rely more on software to manage activities around the home it makes sense
The value of such a feature is improved visibility of when certain tasks or chores need to be performed and to better enable tracking of what was done when. The benefits of building this functionality into HA There are several benefits for doing so. The benefits of building such a feature in HA is to improve visibility of when certain tasks or chores need to be performed and to better enable the tracking of what was done when. Upon implementation, feature success will be achieved when the following statement can be said to be true: “the set of total tasks listed in Home Assistant are being performed with more regularity.”
leverage existing platform and extend its capabilities to include tangentially related activities centered around home management and maintenance. The primary benefits of Providing better visibility into when certain tasks or chored need to be performed and also what was done when are the primary benefits
Functional Requirements
Task
- A task item Conceptually, a task in this implementation, is the recurring activity to be performed by someone.
- Some tasks will be person specific, while others will remain unassigned.
- Each task should have a binary state of either
onoroff, withonsignifying the task is “due” andoffsignifying “not due”.- A process needs to be created so that a task “self activates” (i.e. turns on) when a pre-defined due date has been reached.
- Timing considerations - tasks can be:
- Time based (ex. daily, weekly, some other cycle)
- Day type based (school day, weekend)
- Skipped (holidays, vacation)
- Event Triggered (ex. empty the dishwasher when it’s wash cycle is complete)
- Timing considerations - tasks can be:
- A task moves from being
ontooffonly when its paired task action (see below) has a state ofon.
- A process needs to be created so that a task “self activates” (i.e. turns on) when a pre-defined due date has been reached.
Task_Action *
- A task_action is the specific activity instance someone took to satisfy the defined as the actual performance of the activity described by the task.
- Each task_action is paired with a single task
- A task_action only has a state of
onoroff, withonsignifying the task_action is “done” andoffsignifying “not done” when an associated task ison. - Setting a task_action to
onwill turn off the associated task. For now, this should be the only way to turn of a task. In the future, there may be an option to reschedule or skip a task due date. - Create a process to automatically turn off each task_action after a specified period of time.
UI & General Usability
- The following information for each task should be easily accessible:
- Task description
- Performance frequency
- Day and date last completed
- Day and date due next (if applicable)
- Provide a user with the ability to indicate which task_actions are done.
- Create a color scheme to indicate which task & task_action combinations are:
- Due
- Overdue
- Done (today) vs. Done (some other time).
- Provide the user with visual cues for:
- Any task that will be due in 1 day’s time.
- A count of tasks that are due
- A count of tasks that are overdue
Notifications & Reminders
- Send a notification when event based task turn on.
- Send a reminder when tasks are in danger of becoming overdue.
- Notifications and reminders need to be aware of:
- Sleep hours (Quiet hours)
- School hours
- Home/away status
- Vacations and holidays
- Communication method
- iOS messages to relevant devices
- Use Hass.agent to send messages to windows based devices
- Activate LED room lights and change color to a designated “task due” color
Out of Scope
- User level ability to create a task (i.e. keep this as an admin function for now)
- User ability to pause/skip/reschedule task from the UI
- Note: some related infrastructure will be needed to accommodate suppressing task activation when on vacation… so likely this will be first on the enhancements list.
- Ability to assign a priority level to task.
- Calendar integration (ex. gmail)
NOTES:
* Whether the “task_action” concept is necessary is certainly debatable, but it was a design decision made to leverage the relative strengths of how binary sensors and input booleans are implemented in Home Assistant.