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 »

Bonjour à vous :slight_smile:

j’ai voulu faire ‹ la même ›, mais je crois que je ne sais pas faire ! :face_with_peeking_eye:

  - entity: sensor.activite_pompe_auhourd_hui
    name: 'TEMPS :'
    icon: mdi:camera-timer
    type: custom:multiple-entity-row
    card_mod:
      style:
        hui-generic-entity-row:
          $: |
            state-badge {
            color:;
    entities:
      - entity: sensor.activite_pompe_auhourd_hui
        name: 'REALISE:'
        toggle: false
        state_color: false
        secondary_info: false
        last-changed: false
        value_template: >-
          {% set t = ((states('sensor.activite_pompe_auhourd_hui' )|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

      - entity: sensor.temps_filtration_prevu_planning
        name: PLANNING
        state_color: false

image

ce qui est étonnant, c’est que la valeur d’origine quand je ne l’intègre pas ailleurs est bien présentée:
image

je me plante ou?

merci d’avance :slight_smile:

Salut

Elle ressemble à quoi l’entité de départ dans les outils dev (valeur, unités, attributs) ?

Salut :slight_smile:

heuuu c’est une entité créée dans le fichier config:

sensor:
  - platform: history_stats
    name: "activité pompe auhourd'hui"
    entity_id: binary_sensor.0xa4c138ac10f91c9a_tamper
    state: "off"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

elle mesure le temps d’une entité pendant qu’elle est en état « off » .
je ne sais pas si je réponds correctement à ta question :face_with_open_eyes_and_hand_over_mouth:

ajout ! je pense que c’est ça:

salut,

j’ai essayé de modifier la formule avec d’autres topics mais sans résultat…
j’ai essayé aussi de voir si je pouvais modifier « l’unité de mesure » pour la basculer directement en HH:MM:SS mais je n’y suis pas parvenu.

:face_with_spiral_eyes:

Hello,

Je n’avais pas vu ta réponse…

Donc tu as une valeur de départ de 6.4

Ton code à toi, dois ressembler à ça

  {% set t = states('sensor.pac_duree_cycle')|float(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

salut :slight_smile:

pas grave…

oui c’est sensiblement mon code de départ (sans le facteur multiplicateur de 1.0).
et ça ne fonctionne pas… :frowning:

ça donne quoi dans les outils dev ?
Là avec la carte, c’est pas dit que ce soit plus facile à débugger

heuu

dans les outils dev… tu veux quel onglet et quelle entité/info ?

Et pour aller plus loin, tu utilises des options qui n’existe pas dans ta carte

si tu crée une entité dans configuration.yaml, ça fonctionne (voir la 1er ligne de la carte

template:
  sensor:
    - name: "calcul"
      state: >-
        {% set t = states('sensor.pac_duree_cycle')|float(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

ha, donc ça veut dire que mon « value_template » ne s’écrit pas ainsi pour cette carte/fonction ?

exactement, pas avec cette carte ou pas comme ça

d’accord…
mais il ne me l’indique pas sur ma config comme toi:

Tu es en mode yaml, donc il n’y a pas de verif


Sinon, une bonne piste c’est la doc

1 « J'aime »

sérieusement… :roll_eyes:

je l’ai épluché 15 fois, je cherchais une config de « valeur » et non de « format ».

par contre, je n’ai toujours pas compris pourquoi je n’ai pas l’alerte de « l’éditeur visuel » , même en sortant du yaml ? ça m’aurait clairement indiqué mon erreur pourtant:

Oui c’est loin d’être toujours évident. D’une carte à l’autre les options sont différentes, l’organisation spécifique etc.

Quant à l’éditeur, las tu es dans la partie globale de le carte (tu vois les entités qui la compose), ça se passe dans une des entités au dessous

je ne trouve pas, mais n’est ce pas car j’ai déjà une « sous couche » d’un autre fonction qui n’est déjà pas exploitable en « éditeur visuel »?

image