Trigger Based Template Sensor
Referring page: Dynamic Weather Dashboard

This is the yaml to create a “max_temperature” trigger based template sensor in Home Assistant. It captures the current day’s max temperature along with the time it occurred. Attributes are used capture the same data points for: this week, this month, this year, and the all time high.
Sensor Code:
- trigger:
- id: daily_reset
platform: time
at: '00:00'
- platform: template
value_template: "{{ states('sensor.outdoor_temperature_merged') | float(0) > states('sensor.max_temperature_san_jose_today') | float(0) }}"
#- platform: state
# entity_id: sensor.outdoor_temperature_merged
#- platform: state
# entity_id: input_boolean.test_toggle
sensor:
- name: Max Temperature San Jose Today
unique_id: max_temperature_san_jose_today
unit_of_measurement: "°F"
device_class: temperature
icon: mdi:thermometer-chevron-up
state: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = states('sensor.max_temperature_san_jose_today') | float(0) %}
{% if trigger.id == "daily_reset" %}
{{ t_now }}
{% elif t_now > t_max %}
{{ t_now }}
{% else %}
{{ t_max }}
{% endif %}
attributes:
last_updated: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = states('sensor.max_temperature_san_jose_today') | float(0) %}
{% set t_max_lu = state_attr('sensor.max_temperature_san_jose_today','last_updated') %}
{% if trigger.id == "daily_reset" %}
{{ now() | as_local }}
{% elif t_now > t_max %}
{{ now() | as_local }}
{% else %}
{{ t_max_lu }}
{% endif %}
max_temperature_san_jose_this_week: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_week') | float(0) %}
{% if now().weekday() == 6 and now().hour == 0 and now().minute == 0 %}
{{ t_now }}
{% elif t_now > t_max %}
{{ t_now }}
{% else %}
{{ t_max }}
{% endif %}
max_temperature_san_jose_this_week_lu: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_week') | float(0) %}
{% set t_max_lu = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_week_lu') %}
{% if now().weekday() == 6 and now().hour == 0 and now().minute == 0 %}
{{ now() | as_local }}
{% elif t_now > t_max %}
{{ now() | as_local }}
{% else %}
{{ t_max_lu }}
{% endif %}
max_temperature_san_jose_this_month: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_month') | float(0) %}
{% if now().day == 1 and now().hour == 0 and now().minute == 0 %}
{{ t_now }}
{% elif t_now > t_max %}
{{ t_now }}
{% else %}
{{ t_max }}
{% endif %}
max_temperature_san_jose_this_month_lu: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_month') | float(0) %}
{% set t_max_lu = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_month_lu') %}
{% if now().day == 1 and now().hour == 0 and now().minute == 0 %}
{{ now() | as_local }}
{% elif t_now > t_max %}
{{ now() | as_local }}
{% else %}
{{ t_max_lu }}
{% endif %}
max_temperature_san_jose_this_year: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_year') | float(0) %}
{% if now().month == 1 and now().day == 1 and now().hour == 0 and now().minute == 0 %}
{{ t_now }}
{% elif t_now > t_max %}
{{ t_now }}
{% else %}
{{ t_max }}
{% endif %}
max_temperature_san_jose_this_year_lu: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_year') | float(0) %}
{% set t_max_lu = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_this_year_lu') %}
{% if now().month == 1 and now().day == 1 and now().hour == 0 and now().minute == 0 %}
{{ now() | as_local }}
{% elif t_now > t_max %}
{{ now() | as_local }}
{% else %}
{{ t_max_lu }}
{% endif %}
max_temperature_san_jose_ath: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_ath') | float(0) %}
{% if t_now > t_max %}
{{ t_now }}
{% else %}
{{ t_max }}
{% endif %}
max_temperature_san_jose_ath_lu: |
{% set t_now = states('sensor.outdoor_temperature_merged') | float(0) %}
{% set t_max = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_ath') | float(0) %}
{% set t_max_lu = state_attr('sensor.max_temperature_san_jose_today','max_temperature_san_jose_ath_lu') %}
{% if t_now > t_max %}
{{ now() | as_local }}
{% else %}
{{ t_max_lu }}
{% endif %}