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.
225 lines
7.2 KiB
225 lines
7.2 KiB
announce_weather_details:
|
|
alias: Announce Weather Details
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: >_
|
|
{% set current_temp = state_attr ('weather.home','temperature') | float %}
|
|
{% set current_condition = states('weather.home') %}
|
|
|
|
{% if current_condition == 'partlycloudy' %}
|
|
{% set current_condition = 'Partly Cloudy' %}
|
|
{% endif %}
|
|
|
|
Outside, It's {{ current_condition }} and {{ current_temp }} degrees Celsius.
|
|
|
|
{% set weather = state_attr('weather.home', 'forecast') %}
|
|
{% set high_temp = weather[0].temperature %}
|
|
{% set low_temp = weather[0].templow %}
|
|
|
|
{% for entry in weather %}
|
|
{% if entry.temperature > high_temp %}
|
|
{% set high_temp = entry.temperature %}
|
|
{% endif %}
|
|
{% if entry.templow < low_temp %}
|
|
{% set low_temp = entry.templow %}
|
|
{% endif %}
|
|
{% if entry.condition == 'rainy'%}
|
|
It looks like there's rain expected at around {{ entry.datetime.split('T')[1][:2] }} o'clock. You might want to take an umbrella if you're leaving the house.
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if high_temp > 30 %}
|
|
It's going to be a hot one
|
|
{% elif 20 < high_temp < 30 %}
|
|
It should be a warm day
|
|
{% elif 15 < high_temp < 20 %}
|
|
It's going to be a pretty mild temperature today
|
|
{% elif 10 < high_temp < 15 %}
|
|
It seems like it'll be a bit chilly today
|
|
{% elif 0 < high_temp < 10 %}
|
|
It's going to be a cold day
|
|
{% else %}
|
|
It's going to be freezing today
|
|
{% endif %}
|
|
|
|
The forecast high is {{ high_temp }} °C.
|
|
|
|
With a Low of {{ low_temp }} °C .
|
|
{% if low_temp > 30 %}
|
|
Wow. That's hot!
|
|
{% elif 20 < low_temp < 30 %}
|
|
it's not going to go below 20 degrees today.
|
|
{% elif 10 < low_temp < 20 %}
|
|
it might get a little bit chilly.
|
|
{% elif 0 < low_temp < 10 %}
|
|
That's cold.
|
|
{% else %}
|
|
Absolutely freezing!
|
|
{% endif %}
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
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
|
|
announce_quote_of_the_day:
|
|
alias: Announce Quote of the Day
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: >_
|
|
The {{ state_attr( ''sensor.quote_sensor'', ''category'' ) }} \
|
|
Quote of the day is by {{ state_attr( ''sensor.quote_sensor'', ''author'' ) }}.
|
|
They said. {{ states(''sensor.quote_sensor'') }}
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
icon: mdi:comment-quote
|
|
announce_pending_updates:
|
|
alias: Announce Pending Updates
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: >_
|
|
{% set entities = {
|
|
'update.home_assistant_operating_system_update': 'Home Assistant OS Update',
|
|
'update.home_assistant_core_update': 'Home Assistant Core',
|
|
'update.esphome_update': 'E S P Home',
|
|
} %}
|
|
|
|
{% for entity, name in entities.items() %}
|
|
{% if states(entity) == 'on' %}
|
|
There's a {{ name }} pending.
|
|
The Installed version is {{ state_attr( entity, 'installed_version') }}
|
|
The Available version is {{ state_attr(entity, 'latest_version') }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
icon: mdi:update
|
|
announce_dad_joke:
|
|
alias: Announce Dad Joke
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: Here is a Dad Joke.. {{ states('sensor.dad_joke_of_the_hour') }}
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
icon: mdi:party-popper
|
|
announce_random_fact:
|
|
alias: Announce Random Fact
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: And a random fact.. {{ states('sensor.random_fact') }}
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
announce_end_of_briefing:
|
|
alias: Announce end of briefing
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: That's All I've got right now
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
announce_inside_temperatures:
|
|
alias: Announce Inside Temperatures
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
data:
|
|
type: tts
|
|
message: >_
|
|
{% set inside_temps = {
|
|
'sensor.temperature_dining': 'Dining Room',
|
|
'sensor.lounge_ac_inside_temperature': 'Lounge Room',
|
|
'sensor.temperature_office': 'Office, and',
|
|
'sensor.master_bedroom_purifier_temperature': 'Master Bedroom'
|
|
} %}
|
|
|
|
Inside it's currently
|
|
{% for sensor, room in inside_temps.items() %}
|
|
{{ states(sensor) }} °C in the {{ room }}
|
|
{% endfor %}
|
|
target:
|
|
- media_player.dining_room_echo_plus
|
|
mode: single
|
|
announce_wind_details:
|
|
alias: Announce Wind Details
|
|
sequence:
|
|
- service: notify.alexa_media
|
|
data:
|
|
message: >_
|
|
{% set wind_bearing = state_attr('weather.home', 'wind_bearing') | float %}
|
|
{% set wind_speed = state_attr('weather.home','wind_speed') | float %}
|
|
|
|
{% set directions = {
|
|
(0.0, 11.25): 'North',
|
|
(11.25, 33.75): 'North North East',
|
|
(33.75, 56.25): 'North East',
|
|
(56.25, 78.75): 'East North East',
|
|
(78.75, 101.25): 'East',
|
|
(101.25, 123.75): 'East South East',
|
|
(123.75, 146.25): 'South Eeast',
|
|
(146.25, 168.75): 'South South East',
|
|
(168.75, 191.25): 'South',
|
|
(191.25, 213.75): 'South South West',
|
|
(213.75, 236.25): 'South West',
|
|
(236.25, 258.75): 'West South West',
|
|
(258.75, 281.25): 'West',
|
|
(281.25, 303.75): 'West North West',
|
|
(303.75, 326.25): 'North West',
|
|
(326.25, 348.75): 'North Nort West',
|
|
(348.75, 360.0): 'North'
|
|
} %}
|
|
|
|
|
|
{% if wind_speed > 50 %}
|
|
Its very windy outside.
|
|
{% elif 40 < wind_speed < 50 %}
|
|
It's pretty windy at the moment
|
|
{% elif 30 < wind_speed < 40 %}
|
|
Theres a strong breeze right now
|
|
{% elif 20 < wind_speed < 30 %}
|
|
It's a bit breezy outside
|
|
{% elif 10 < wind_speed < 20 %}
|
|
There's a light breeze
|
|
{% else %}
|
|
it's quite still
|
|
{% endif %}
|
|
|
|
{% for rng, direction in directions.items() %}
|
|
{% if wind_bearing >= rng[0] and wind_bearing < rng[1] %}
|
|
The wind is currently blowing from the {{ direction }} direction, at {{ wind_speed }} kilometres per hour
|
|
{% endif %}
|
|
{% endfor %}
|
|
target: media_player.dining_room_echo_plus
|
|
mode: single
|
|
icon: mdi:wind-power |