# - platform: uptime - platform: template sensors: #========================================= #=== Raspberry Pi last boot date and time #========================================= last_boot_date_time: friendly_name: Last Boot value_template: > {% set date = as_timestamp(states('sensor.last_boot')) | timestamp_custom('%d') %} {% set date = '{:01}'.format(date | int) %} {% if date in ('1', '21', '31') %} {% set date = date ~ 'st' %} {% elif date in ('2', '22') %} {% set date = date ~ 'nd' %} {% elif date in ('3', '23') %} {% set date = date ~ 'rd' %} {% else %} {% set date = date ~ 'th' %} {% endif %} {{ as_timestamp(states('sensor.last_boot')) | timestamp_custom('%H:%M on %a') }} {{ date }} {{ as_timestamp(states('sensor.last_boot')) | timestamp_custom('%b %Y') }} #========================= #=== Raspberry Pi Up Time #========================= rpi_uptime: friendly_name: RPi Uptime value_template: > {% set up_time = as_timestamp(now()) - as_timestamp(states('sensor.last_boot')) %} {% set minut = (up_time // 60) | int %} {% set godzin = (minut // 60) %} {% set dni = (godzin // 24) %} {% set tygodni = (dni // 7) %} {% set minut = (minut % 60) %} {% set godzin = (godzin % 24) %} {% set dni = (dni % 7) %} {% macro phrase(value, name) %} {%- set value = value %} {%- set end = '' if value > 0 else '' %} {{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }} {%- endmacro %} {% set text = [ phrase(tygodni, 'tygodni'), phrase(dni, 'dni'), phrase(godzin, 'godzin'), phrase(minut, 'minut') ] | select('!=','') | list | join(', ') %} {% set last_comma = text.rfind(',') %} {% if last_comma != -1 %} {% set text = text[:last_comma] + ' i' + text[last_comma + 1:] %} {% endif %} {{ text }} ha_uptime: friendly_name: "Home Assistant uptime" value_template: >- {% set up_time = as_timestamp(now()) - as_timestamp(states('sensor.uptime')) %} {% if up_time == 0 %} Just restarted... {% else %} {% set minut = (up_time // 60) | int %} {% set godzin = (minut // 60) %} {% set dni = (godzin // 24) %} {% set tygodni = (dni // 7) %} {% set minut = (minut % 60) %} {% set godzin = (godzin % 24) %} {% set dni = (dni % 7) %} {% macro phrase(value, name) %} {%- set value = value %} {%- set end = '' if value > 0 else '' %} {{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }} {%- endmacro %} {% set text = [ phrase(tygodni, 'tygodni'), phrase(dni, 'dni'), phrase(godzin, 'godzin'), phrase(minut, 'minut') ] | select('!=','') | list | join(', ') %} {% set last_comma = text.rfind(',') %} {% if last_comma != -1 %} {% set text = text[:last_comma] + ' i' + text[last_comma + 1:] %} {% endif %} {{ text }} {% endif %}