pinkywafer / Anniversaries

Anniversary Countdown Sensor for Home Assistant
MIT License
170 stars 26 forks source link
anniversaries hacktoberfest hacs home-assistant sensor

Anniversaries

hacs_badge GitHub release (latest by date) GitHub Release Date GitHub

Maintenance GitHub issues

Buy me a coffee

Support Pinkywafer on Patreon

The 'anniversaries' component is a Home Assistant custom sensor which counts down to a recurring date such as birthdays, but can be used for any anniversary which occurs annually on the same date.

Any anniversaries entries configured will be added to the home assistant calendar. This also generates the calendar.anniversaries entity, which shows information about the next configured anniversary. N.B. At the moment, only the next occurence of the anniversaries are added to the calendar

Table of Contents

Installation

MANUAL INSTALLATION

  1. Download the anniversaries.zip file from the latest release.
  2. Unpack the release and copy the custom_components/anniversaries directory into the custom_components directory of your Home Assistant installation.
  3. Configure the anniversaries sensor.
  4. Restart Home Assistant.

INSTALLATION VIA HACS

  1. Ensure that HACS is installed.
  2. Search for and install the "anniversaries" integration.
  3. Configure the anniversaries sensor.
  4. Restart Home Assistant.

Configuration

Anniversaries can be configured on the integrations menu or in configuration.yaml

Config Flow

In Configuration/Integrations click on the + button, select Anniversaries and configure the options on the form.

configuration.yaml

Add anniversaries sensor in your configuration.yaml. The following example adds two sensors - Shakespeare's birthday and wedding anniversary!

# Example configuration.yaml entry

anniversaries:
  sensors:
  - name: Shakespeare's Birthday
    date: '1564-04-23'
  - name: Shakespeare's Wedding Anniversary
    date: '1582-11-27'

CONFIGURATION PARAMETERS

Parameter Optional Description
name No Friendly name
date Either date or date_template MUST be included date in format 'YYYY-MM-DD' (or 'MM-DD' if year is unknown)
date_template Either date or date_template MUST be included Template to evaluate date from (Note this is ONLY available in YAML configuration) The template must return a string in either 'YYYY-MM-DD' or 'MM-DD' format, ie: date_template: '{{ states("input_datetime.your_input_datetime") \| string }}'
count_up Yes true or false changes the state to count up from a date (can be useful for non-recurring events) Default: false
one_time Yes true or false. For a one-time event (Non-recurring) Default: false
show_half_anniversary Yes true or false. Enables the half_anniversary_date and days_until_half_anniversary attributes. Default: false
unit_of_measurement Yes Your choice of label N.B. The sensor always returns Days, but this option allows you to express this in the language of your choice without needing a customization
id_prefix Yes Your choice of prefix for the entityid Default: `anniversary` NB. the entity_id cannot be changed from within the integration once it has been created. You muse either delete your entity and re-create it or manually rename the entity_id on the configuration -> entities page
icon_normal Yes Default icon Default: mdi:calendar-blank
icon_today Yes Icon if the anniversary is today Default: mdi:calendar-star
days_as_soon Yes Days in advance to display the icon defined in icon_soon Default: 1
icon_soon Yes Icon if the anniversary is 'soon' Default: mdi:calendar

State and Attributes

State

Attributes

Notes about unit of measurement

Unit_of_measurement is not translate-able. You can, however, change the text for unit of measurement in the configuration. NB the sensor will always report in days, this just allows you to represent this in your own language.