MAj Attribute native value

Mon problème

Je rencontre un message d’erreur avec ce sensor:
Si une personne à une idée :slight_smile:


   ############################################################
   ##                                                        ##
   ##                   UPTIME ONDULEUR                      ##
   ##                                                        ##
   ############################################################

- platform: template
  sensors:  
    ups_runtime_friendly:
        friendly_name: 'Time Remaining'
        value_template: >- 
            {% set time = (states.sensor.ups_battery_runtime.state | int) | int(default=0) %}
            {% set minutes = ((time % 3600) / 60) | int(default=0) %}
            {% set hours = ((time % 86400) / 3600) | int(default=0) %}
            {% set days = (time / 86400) | int(default=0) %}
            {%- if time < 60 -%}
                Less than a minute
                {%- else -%}
                {%- if days > 0 -%}
                {{ days }} d
                {%- endif -%}
                {%- if hours > 0 -%}
                {%- if days > 0 -%}
                    {{ ' ' }}
                {%- endif -%}
                {{ hours }} h
                {%- endif -%}
                {%- if minutes > 0 -%}
                {%- if days > 0 or hours > 0 -%}
                    {{ ' ' }}
                {%- endif -%}
                {{ minutes }} minutes
                {%- endif -%}
            {%- endif -%}
Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:172
Integration: Template (documentation, issues)
First occurred: 16:28:55 (1 occurrences)
Last logged: 16:28:55

TemplateError('UndefinedError: 'None' has no attribute 'state'') while processing template 'Template("{% set time = (states.sensor.ups_battery_runtime.state | int) | int(default=0) %} {% set minutes = ((time % 3600) / 60) | int(default=0) %} {% set hours = ((time % 86400) / 3600) | int(default=0) %} {% set days = (time / 86400) | int(default=0) %} {%- if time < 60 -%} Less than a minute {%- else -%} {%- if days > 0 -%} {{ days }} d {%- endif -%} {%- if hours > 0 -%} {%- if days > 0 -%} {{ ' ' }} {%- endif -%} {{ hours }} h {%- endif -%} {%- if minutes > 0 -%} {%- if days > 0 or hours > 0 -%} {{ ' ' }} {%- endif -%} {{ minutes }} minutes {%- endif -%} {%- endif -%}")' for attribute '_attr_native_value' in entity 'sensor.ups_runtime_friendly'

Juste pour voir remplaces :

{% set time = (states.sensor.ups_battery_runtime.state | int) | int(default=0) %}

Par :

{% set time = states('sensor.ups_battery_runtime') | int(default=0) %}
1 « J'aime »

À mon avis tu devrais utiliser
states('sensor.ups_battery_runtime')

Édit:
@Herbs plus rapide

Puis y’a peut-être l’indentation à revoir aussi :wink:

- platform: template
  sensors:  
    ups_runtime_friendly:
      friendly_name: 'Time Remaining'
      value_template: >- 
        {% set time = states('sensor.ups_battery_runtime') | int(default=0) %}
        {% set minutes = ((time % 3600) / 60) | int(default=0) %}
        {% set hours = ((time % 86400) / 3600) | int(default=0) %}
        {% set days = (time / 86400) | int(default=0) %}
        {%- if time < 60 -%}
          Less than a minute
          {%- else -%}
          {%- if days > 0 -%}
          {{ days }} d
          {%- endif -%}
          {%- if hours > 0 -%}
          {%- if days > 0 -%}
          {{ ' ' }}
          {%- endif -%}
          {{ hours }} h
          {%- endif -%}
          {%- if minutes > 0 -%}
          {%- if days > 0 or hours > 0 -%}
          {{ ' ' }}
          {%- endif -%}
          {{ minutes }} minutes
          {%- endif -%}
        {%- endif -%}

Perso j’ai cette conversion dans un coin:

{%- set tm= {
  'w': (time / 604800) % 10080,
  'j': (time / 86400) % 7,
  'h': (time / 3600) % 24,
  'm': (time % 60)
}
-%}
{{ tm[w] }} semaine(s) {{ tm[j] }} jour(s) {{ tm[j] }} jour(s) {{ tm[m] }} minute(s)
1 « J'aime »

Merci à vous deux, par contre je ne comprend pas comment integrer ton indentation @Pulpy-Luke

{%- set tm= {
  'w': (time / 604800) % 10080,
  'j': (time / 86400) % 7,
  'h': (time / 3600) % 24,
  'm': (time % 60)
}
-%}
{{ tm[w] }} semaine(s) {{ tm[j] }} jour(s) {{ tm[j] }} jour(s) {{ tm[m] }} minute(s)