Affichage graphique des Heures pleines/creuses

Je suis dessus mais j’essaie de récupérer des informations de la par des utilisateurs du forum ici :

Le problème c’est que je m’étais basé sur des informations glanées sur le site d’Enedis (https://www.cre.fr/fileadmin/Documents/Communiques_de_presse/2025/250206_FAQ_HP-HC.pdf, https://www.cre.fr/fileadmin/Documents/Communiques_de_presse/2025/250206_Annexe_CP_TURPE_7_HPHC.pdf) et que les informations données par @AcidBurn18 contredisent les « grands » principes exposés dans ces notices du CRE…

Tu avances bien sur le sujet ou c’est vraiment prise de tête?

Bonjour,

Passe ton sujet en « résolu » si c’est bon pour toi

Bonsoir,

Je viens d’essayer de faire fonctionner ta carte mais j’ai plusieurs erreurs :

Configuration.yaml

Invalid config for 'binary_sensor' at configuration.yaml, line 47: required key 'platform' not provided

Button card:

TypeError: Cannot read properties of undefined (reading 'state') in 'const p = states["input_text.widget_tarif"].state.split("|"); return p[0] === "0" ? "block" : "n...'

Aurais-tu une solution ?

Merci par avance

Bonjour @Mickko,

Pour la première erreur, c’est parce qu’il manque « template: » dans ton fichier configuration.yaml. Voici le code complet à coller dans ton fichier (après avoir suprimé ce que tu as mis pour l’instant) :

template:
  - binary_sensor:
      - name: Heures creuses actives
        unique_id: heures_creuses_actives
        device_class: running
        state: >
          {% set p = states('input_text.widget_tarif').split('|') %}
          {% if p | length < 9 %}
            false
          {% else %}
            {% set now_min = now().hour * 60 + now().minute %}
            {% macro m(t) %}{% set h,m = t.split(':') %}{{ h|int*60 + m|int }}{% endmacro %}
            {% set zones = [] %}
            {% set zones = zones + [(m(p[1]), m(p[1]) + (p[2]|float*60)|int)] %}
            {% if p[3] == '1' %}
              {% set zones = zones + [(m(p[4]), m(p[4]) + (p[5]|float*60)|int)] %}
            {% endif %}
            {% if p[6] == '1' %}
              {% set zones = zones + [(m(p[7]), m(p[7]) + (p[8]|float*60)|int)] %}
            {% endif %}
            {{ zones | selectattr(0,'<=',now_min)
                     | selectattr(1,'>',now_min)
                     | list | count > 0
               or zones | selectattr(1,'>',1440)
                        | selectattr(0,'<=',now_min + 1440)
                        | list | count > 0 }}
          {% endif %}

Une fois ces lignes collées dans ton fichier, il faut l’enregistrer et redémarrer Home Assistant.

Pour l’erreur suivante, je pense que tu n’as pas créer l’input_text. Pour le faire il faut que tu ailles dans Paramètres → Appareils et services → onglet « Entrées » → Créer une entrée et choisir une Entrée « Texte ».


Tu dois mettre dans « Nom* » : « widget_tarif »

Puis tu cliques sur « Créer »
Une fois cela fait, tu dois ouvrir l’entrée créée puis mettre ceci dans la zone grise : « 0|01:00|6.0|1|13:00|2.0|0|02:00|4.0 ».

Ensuite tu crées une nouvelle entrée texte de la même manière, entrée que tu nommeras « widget_tarif_backup » et tu copieras le même texte que précédemment dans la zone grise de cette nouvelle entrée.
Une fois que cela sera fait, reviens vers moi pour la suite si tu as toujours des erreurs.

Merci pour ton aide @btncrd. Cela fonctionne très bien avec les corrections apportées

Super :wink:

La version 2 (version universelle) va bientôt sortir…

2 « J'aime »

@OUARZA

Pense à passer ton sujet en « Résolu » si c’est bon pour toi et si ce n’est pas bon, dis-moi ce qui ne va pas.

2 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.