You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.3 KiB
93 lines
2.3 KiB
# Jinja template for Home Assistant for Time
|
|
|
|
[Back to README](./README.md)
|
|
|
|
|
|
## Get Current Time from Home Assistant
|
|
```jinja
|
|
{% set current_time = states('sensor.time') %}
|
|
```
|
|
### Extract the current hour and minute into seperate variables
|
|
```jinja
|
|
{% set hour = current_time.split(':')[0] | int %}
|
|
{% set minute = current_time.split(':')[1] %}
|
|
```
|
|
|
|
## Say a time appropriate greeting
|
|
```jinja
|
|
{% if hour >= 6 and hour < 12 %}
|
|
Good morning!
|
|
{% elif hour >= 12 and hour < 18 %}
|
|
Good afternoon!
|
|
{% elif hour >= 18 or hour < 6 %}
|
|
Good evening!
|
|
{% endif %}
|
|
```
|
|
|
|
## Add AM or PM Suffix for announcement
|
|
```jinja
|
|
{% set suffix = 'AM' if hour < 12 else 'PM' %}
|
|
```
|
|
## convert 24 hour time to 12 hour time
|
|
```jinja
|
|
{% set hour_12 = hour if hour <= 12 else hour - 12 %}
|
|
```
|
|
## Announce the current Time
|
|
```jinja
|
|
It's currently {{ hour_12 }}:{{ minute }} {{ suffix }}.
|
|
```
|
|
|
|
## Put it all together:
|
|
```jinja
|
|
# get Current Time from Home Assistant
|
|
{% set current_time = states('sensor.time') %}
|
|
# Split time into hour and minute
|
|
{% set hour = current_time.split(':')[0] | int %}
|
|
{% set minute = current_time.split(':')[1] %}
|
|
|
|
# Say a time appropriate greeting
|
|
{% if hour >= 6 and hour < 12 %}
|
|
Good morning!
|
|
{% elif hour >= 12 and hour < 18 %}
|
|
Good afternoon!
|
|
{% elif hour >= 18 or hour < 6 %}
|
|
Good evening!
|
|
{% endif %}
|
|
|
|
# Add AM or PM Suffix
|
|
{% set suffix = 'AM' if hour < 12 else 'PM' %}
|
|
{% set hour_12 = hour if hour <= 12 else hour - 12 %}
|
|
|
|
# Announce the current Time
|
|
It's currently {{ hour_12 }}:{{ minute }} {{ suffix }}.
|
|
```
|
|
|
|
## The Home Assistant Script
|
|
```yaml
|
|
announce_time:
|
|
alias: Announce Time
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: "
|
|
{% set current_time = states('sensor.time') %}
|
|
{% set hour = current_time.split(':')[0] | int %}
|
|
{% set minute = current_time.split(':')[1] %}
|
|
|
|
{% if hour >= 6 and hour < 12 %}
|
|
Good morning!
|
|
{% elif hour >= 12 and hour < 18 %}
|
|
Good afternoon!
|
|
{% elif hour >= 18 or hour < 6 %}
|
|
Good evening!
|
|
{% endif %}
|
|
|
|
{% set suffix = ''AM'' if hour < 12 else 'PM' %}
|
|
{% set hour_12 = hour if hour <= 12 else hour - 12 %}
|
|
|
|
It's currently {{ hour_12 }}:{{ minute }} {{ suffix }}.
|
|
"
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
``` |