- # - 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 %}