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