Facebook
From Darek, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 154
  1. #  - platform: uptime
  2.   - platform: template
  3.     sensors:
  4.  
  5.       #=========================================
  6.       #=== Raspberry Pi last boot date and time
  7.       #=========================================
  8.       last_boot_date_time:
  9.         friendly_name: Last Boot
  10.         value_template: >
  11.           {% set date = as_timestamp(states('sensor.last_boot')) | timestamp_custom('%d') %}
  12.           {% set date = '{:01}'.format(date | int) %}
  13.           {% if date in ('1', '21', '31') %}
  14.             {% set date = date ~ 'st' %}
  15.           {% elif date in ('2', '22') %}
  16.             {% set date = date ~ 'nd' %}
  17.           {% elif date in ('3', '23') %}
  18.             {% set date = date ~ 'rd' %}
  19.           {% else %}
  20.             {% set date = date ~ 'th' %}
  21.           {% endif %}
  22.  
  23.           {{ as_timestamp(states('sensor.last_boot')) | timestamp_custom('%H:%M on %a') }} {{ date }} {{ as_timestamp(states('sensor.last_boot')) | timestamp_custom('%b %Y') }}
  24.       #=========================
  25.       #=== Raspberry Pi Up Time
  26.       #=========================
  27.       rpi_uptime:
  28.         friendly_name: RPi Uptime
  29.         value_template: >
  30.           {% set up_time = as_timestamp(now()) - as_timestamp(states('sensor.last_boot')) %}
  31.  
  32.           {% set minut = (up_time // 60) | int %}
  33.           {% set godzin = (minut // 60) %}
  34.           {% set dni = (godzin // 24) %}
  35.           {% set tygodni = (dni // 7) %}
  36.  
  37.           {% set minut = (minut % 60) %}
  38.           {% set godzin =  (godzin % 24) %}
  39.           {% set dni = (dni % 7) %}
  40.  
  41.           {% macro phrase(value, name) %}
  42.                     {%- set value = value %}
  43.                     {%- set end = '' if value > 0 else '' %}
  44.                     {{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }}
  45.           {%- endmacro %}
  46.                    
  47.           {% set text = [ phrase(tygodni, 'tygodni'), phrase(dni, 'dni'), phrase(godzin, 'godzin'), phrase(minut, 'minut') ] | select('!=','') | list | join(', ') %}
  48.           {% set last_comma = text.rfind(',') %}
  49.           {% if last_comma != -1 %}
  50.             {% set text = text[:last_comma] + ' i' + text[last_comma + 1:] %}
  51.           {% endif %}
  52.          
  53.           {{ text }}
  54.          
  55.  
  56.       ha_uptime:
  57.         friendly_name: "Home Assistant uptime"
  58.         value_template: >-
  59.           {% set up_time =  as_timestamp(now()) - as_timestamp(states('sensor.uptime')) %}
  60.  
  61.           {% if up_time == 0 %}
  62.             Just restarted...
  63.           {% else %}
  64.             {% set minut = (up_time // 60) | int %}
  65.             {% set godzin = (minut // 60) %}
  66.             {% set dni = (godzin // 24) %}
  67.             {% set tygodni = (dni // 7) %}
  68.  
  69.             {% set minut = (minut % 60) %}
  70.             {% set godzin =  (godzin % 24) %}
  71.             {% set dni = (dni % 7) %}
  72.  
  73.             {% macro phrase(value, name) %}
  74.                       {%- set value = value %}
  75.                       {%- set end = '' if value > 0 else '' %}
  76.                       {{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }}
  77.             {%- endmacro %}
  78.  
  79.             {% set text = [ phrase(tygodni, 'tygodni'), phrase(dni, 'dni'), phrase(godzin, 'godzin'), phrase(minut, 'minut') ] | select('!=','') | list | join(', ') %}
  80.             {% set last_comma = text.rfind(',') %}
  81.             {% if last_comma != -1 %}
  82.               {% set text = text[:last_comma] + ' i' + text[last_comma + 1:] %}
  83.             {% endif %}
  84.  
  85.           {{ text }}
  86.  
  87.           {% endif %}
  88.