Retour à la ligne dans un capteur modèle

Bonjour,
j’ai ce capteur modèle qui me donne les 4 dernières automatisations exécutées:

{% for state in (states.automation
   | selectattr('attributes.last_triggered', 'defined')
   | selectattr('attributes.last_triggered')
   | sort(attribute='attributes.last_triggered', reverse=true  )) [0:4] -%}
  {{ state.attributes.last_triggered.timestamp() 
  | timestamp_custom('%H:%M:%S') }} : {{ state.name  }}
{% endfor %}

Mon petit problème semble simple, cependant rien de ce que j’ai tenté ne fonctionne, je n’arrive pas à mettre un retour à la ligne entre deux résultats pour que ce soit lisible.

Bonne journée
Bob

« < br > » ou chr(13) ne fonctionnent pas ?

(en enlevant les espaces entre < et br et br et >)

Salut,
j’aurais dit le - pour les crochets {%- .... -%} ou les enlever. Mais pas sur du tout :stuck_out_tongue:

1 « J'aime »

Merci mais non, toujours pas de saut à la ligne :wink:
Bob

Salut
et \n tu as testé ?

{% for state in (states.automation
   | selectattr('attributes.last_triggered', 'defined')
   | selectattr('attributes.last_triggered')
   | sort(attribute='attributes.last_triggered', reverse=true  )) [0:4] -%}
  {{ state.attributes.last_triggered.timestamp() 
  | timestamp_custom('%H:%M:%S') }} : {{ state.name && chr(10) }}
{% endfor %}

Aucun des deux ne fonctionne ?

image
image

NEXT !!! :joy:

@Bob
utilise une carte markdown , plus de soucis

ça marche dans l’éditeur de modele mais pas dans le template sensor.

2 « J'aime »

Perso je viens de regarde j’ai une markdown aussi…

type: markdown
content: |-
  {% from 'easy_time.jinja' import easy_time %}
  |Nom|Dernière éxecution|
  |:----|----:|
  {% for state in states.automation
     |selectattr('attributes.last_triggered', 'defined')
     |selectattr('attributes.last_triggered')
     |sort(attribute='attributes.last_triggered', reverse=true) -%}
     {%- set t = easy_time(state.attributes.last_triggered ,'week, hour, minute', language='fr', utc=True)|trim -%}
    |{{-state.name-}}|{{t}}|
  {% endfor %}

Super, merci, ça fonctionne.

Bob

Comme c’est juste de l’affichage, effectivement aucun intérêt à passer par un template sensor et faire l’affichage directement dans une markdown qui est à priori la seule à le premettre.

1 « J'aime »

Je n’ai pas réussi l’alignement avec :

  |Heure|Nom|Dernière éxecution|
  |:----|:----|----:|

image

J’ai mis du html :

{% from 'easy_time.jinja' import easy_time %}
<table width="100%">
<tr>
<td align=left width="15%">Heure</td>
<td align=left width="60%">Nom</td>
<td align=right width="25%">Exécuté il y a</td>
</tr>
{% for state in(states.automation
   |selectattr('attributes.last_triggered', 'defined')
   |selectattr('attributes.last_triggered')
   |sort(attribute='attributes.last_triggered', reverse=true)) [0:6] -%}
   {%- set t = easy_time(state.attributes.last_triggered ,'week, hour, minute', language='fr', utc=True)|trim -%}
   <tr><td align=left>{{ state.attributes.last_triggered.timestamp() 
| timestamp_custom('%H:%M') }}</td><td align=left> {{-state.name-}} </td><td align=right>{{t}}</td></tr>
{% endfor %}
</table>

image

Un lien : Markdown card - Home Assistant

Merci :wink:
Bob

Pourtant ça marche

{% from 'easy_time.jinja' import easy_time %}
|Heure|Nom|Dernière éxecution|
|:----|:----|----:|
{% for state in states.automation
   |selectattr('attributes.last_triggered', 'defined')
   |selectattr('attributes.last_triggered')
   |sort(attribute='attributes.last_triggered', reverse=true) -%}
   {%- set t = easy_time(state.attributes.last_triggered ,'week, hour, minute', language='fr', utc=True)|trim -%}
   {%- set l =  as_timestamp(state.attributes.last_triggered )| timestamp_custom('%H:%M') -%}
  |{{l}}|{{-state.name-}}|{{t}}|
{% endfor %}

image

{% for state in (states.automation
   |selectattr('attributes.last_triggered', 'defined')
   |selectattr('attributes.last_triggered')
   |sort(attribute='attributes.last_triggered', reverse=true)) [0:6] -%}

C’est le [0:6] qui casse la mise en page !, sans limitation, oui ça marche.

Bob