Comment obtenir le format "12h 34min 24s" depuis une durée "12,59" en heure

Bonjour,

Voilà j’aimerai afficher sur une carte picture-element le temps de fonctionnement de ma pompe à chaleur mais j’ai besoin pour cela de convertir le format.

Je dispose aujourd’hui d’une variable duration « sensor.pac_duree_moyenne_cycle » :

J’ai vu içi comment convertir le format mais je n’arrive pas à l’adapter à mon besoin :

Avez vous une idée pour transformer la valeur « 0.0924 » en heure au format « 5min 32s » afin de l’afficher dans ma carte ?

Salut,

Un truc du genre ?

{% set t=0.0924 %}

{% set tm=t*3600000 %}

{% set seconds = ((tm / 1000) % 60 )|int (0) %}
{% set minutes = ((tm / 1000 / 60) % 60 )|int (0) %}
{% set hours = ((tm / 1000 / 60 / 60) % 24 )|int (0) %}

{{ hours }} heures, {{ minutes }} et {{seconds }} secondes

2 « J'aime »

Salut @Pulpy-Luke

Merci, je me sens con car je l’ai fais manuellement à la calculatrice pour écrire mon post et je pense même pas à le faire en version template !

Merci !

Je fais ça et je poste le résultat après mangé :wink:

Du coup grace à @Pulpy-Luke , c’est réglé !

J’affiche maintenant les durées dans mes statistiques sous un format plus adapté à mes yeux :blush:

Le rendu :

Code de la solution mise en place

  - platform: template
    sensors:
      pac_duree_fonctionnement:
        friendly_name: "Durée de fonctionnement du jour"
        unit_of_measurement: ''
        device_class: duration
        unique_id: sensor.pac_duree_fonctionnement_new
        value_template: >-
          {% set t = ((states('sensor.pac_duree_cycle')|float * 1.0)) %}
          {% set tm=t*3600000 %}
          {% set minutes = ((tm / 1000 / 60) % 60 )|int (0) %}
          {% set hours = ((tm / 1000 / 60 / 60) % 24 )|int (0) %}
          {{ hours }} h {{ minutes }} min


  - platform: template
    sensors:
      pac_cycle_moyen:
        friendly_name: "Durée moyenne d'un cycle"
        unit_of_measurement: ''
        device_class: duration
        value_template: >-
          {% set t = ((states('sensor.pac_duree_moyenne_cycle')|float * 1.0)) %}
          {% set tm=t*3600000 %}
          {% set seconds = ((tm / 1000) % 60 )|int (0) %}
          {% set minutes = ((tm / 1000 / 60) % 60 )|int (0) %}
          {{ minutes }} min {{ seconds }} s
2 « J'aime »