Hey all
I have been wanting a fully fledged reminder system in Home Assistant for some time. Alas, as far as I can tell there really is not one. So, I wrote something that does just that! This is an AppDaemon app so you will have to have AppDaemon setup and ready to go. You will also have to create a reminder namespace in your appdaemon.yaml
like this:
namespaces:
reminder:
The app listens for an event and creates a reminder entity in the reminder namespace so it is preserved through Home Assistant restarts, but also creates the entity in Home Assistant for easy visualization. When the time comes, it sends the notification and then removes the entity. It’s that simple.
Here is the structure of the event, all fields are required even if they are empty:
- event: set_reminder
event_data:
title: '{{ title }}'
message: '{{ message }}'
recipient: '{{ recipient }}'
name: '{{ name }}'
time: '{{ fire_time }}'
A reminder can be removed by firing another event like this:
- event: remove_reminder
event_data:
entity_id: reminder.test
You can create an automation that will fire the event and use the content of helpers to create the reminder, here is an example:
- alias: Reminder
trigger:
- platform: state
entity_id: input_boolean.reminder
to: 'on'
condition: []
action:
- variables:
fire_time: '{{ states(''input_datetime.reminder'') }}'
message: '{{ states.input_text.reminder.state }}'
title: ''
recipient: '{{ states("input_select.reminder_recipient") }}'
name: '{{ states("input_text.reminder_name") }}'
- service: input_boolean.turn_off
target:
entity_id: input_boolean.reminder
- event: set_reminder
event_data:
title: '{{ title }}'
message: '{{ message }}'
recipient: '{{ recipient }}'
name: '{{ name }}'
time: '{{ fire_time }}'
I setup a quick UI that just uses an entity card with the helpers to fill out and uses the automation above. It also uses the custom card autoentities to display the active reminders:
Anyway, here is the AppDaemon code, hopefully you find it useful, and/or can find a way to make it better:
Last thing, the AppDaemon apps.yaml example:
reminder:
module: reminder
class: reminder