Gestion de l'option Tempo EDF

Bonjour,
Du coup avec ce nouvel affichage ce qui me gêne un peu c’est le fait qu’à minuit il continue d’afficher les jour de la veille.
Est-il possible qu’a partir de minuit il change du coup la case de gauche en actualisant la couleur et la date et de mettre dans la case droite jour non défini avec la nouvelle date aussi jusqu’à 6h30?

Bonjour peux être, je ne me suis pas posé la question.
Essai ceci

show_label: label
        label: |
          [[[
            var now = new Date();
            var midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate());
            var day = midnight.toLocaleString('fr-FR', { weekday: 'long' });
            var dayOfMonth = ('0' + midnight.getDate()).slice(-2);
            var month = midnight.toLocaleString('fr-FR', { month: 'long' }).replace('.', '');

Merci pour ton retour je le met sous Tempo couleur actuelle et Tempo prochaine couleur?

Pour le lendemain :

show_label: label
label: |
  [[[
    var now = new Date();
    var midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);
    var day = midnight.toLocaleString('fr-FR', { weekday: 'long' });
    var dayOfMonth = ('0' + midnight.getDate()).slice(-2);
    var month = midnight.toLocaleString('fr-FR', { month: 'long' }).replace('.', '');
  ]]]

Bonjour, alors est ce que sa a fonctionné ?

Comme tu n’as pas répondu, je réponds pour ceux que sa peut intéresser.
Le 1er code et le code modifié donnent la bonne date.
Seul la couleur ne correspond pas à la date mais à la couleur en cours jusqu’à 6h du matin et la prochaine. Pour toi elles ne correspondent pas à la date.
Je prends l’exemple actuel lundi blanc mardi bleu.
De minuit à 6h on a toujours blanc à gauche bleu à droite toi tu aimerais que dès que ça passe minuit la casse de gauche passe en bleu et celle de droite en orange par exemple.
Je pense que c’est possible de lui dire de minuit à indéterminé pour la partie de droite pour la partie de gauche de lui dire que de minuit à 6h qu’il aille chercher le sensor du lendemain et ça rajoute beaucoup de lignes de code pour pas grand-chose à mon avis puisque tu es bien sur l’actuel et le prochain.
Pour une meilleure vérité tu peux changer aujourd’hui et demain par couleur actuel et prochaine couleur par exemple

Hello,
désolé j’ai pas eu le temps de répondre mais oui je confirme ce que tu as mis.
Yes « De minuit à 6h on a toujours blanc à gauche bleu à droite toi tu aimerais que dès que ça passe minuit la casse de gauche passe en bleu et celle de droite en orange par exemple. » se serait cool mais c’est déja bien ce que tu m’a aidé a faire et ca me va. t(embête pas à faire trop de code pour rien :grinning:

Voilà ce que cela donne pour moi, me reste de la mise en page maintenant…

2 « J'aime »

C’est un peu mieux avec l’accès aux tarifs pour les modifier directement depuis lovelace, la couleur de la carte correspond à la couleur du jour, les petites chips sous le titre définissent le nombre de jours passés et le nombre de jours restants pour chaque couleur, la dernière donne l’info si on est en HC ou HP. Il me reste à intégrer la couleur de demain.

2 « J'aime »

Quand tu auras finalisé ta carte, je pense qu’on sera plusieurs à bien vouloir le code ^^
(et celui de ce que tu auras mis en place pour la carte ^^)

2 « J'aime »

heu oui , avec plaisir va falloir expliquer beaucoup parce qu’il y a du monde…, mais pourquoi pas, je regardes comment je peux faire ca et je reviens vers vous

Explications carte TEMPO - 1

Il va falloir sacrément adapter mais je vais vous donner les grandes lignes

Définir les entités pour les prix

Connaître les noms des entités qui donnent les relevés des différents compteurs afin d’adapter

Ajouter dans configuration.yaml

sql: !include sql.yaml

Dans le répertoire config ajouter un fichier sql.yaml et adapter sur base de celui ci, ici les entités fourniront les valeurs pour 6h00 du matin, heure de bascule pour mon option tempo, peut être que cela doit être adapté suivant votre option

### Jour
  - name: hpdb
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhpjb'
        AND last_updated_ts <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hpdw
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhpjw'
        AND last_updated_ts <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hpdr
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhpjr'
        AND last_updated_ts <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hcdb
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhcjb'
        AND last_updated_ts <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hcdw
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhcjw'
        AND last_updated_ts <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hcdr
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhcjr'
        AND last_updated_ts <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
### Jour -1
  - name: hpdbl
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhpjb'
        AND last_updated_ts  <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600 - 86400)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hpdwl
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhpjw'
        AND last_updated_ts  <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600 - 86400)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hpdrl
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhpjr'
        AND last_updated_ts  <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600 - 86400)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hcdbl
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhcjb'
        AND last_updated_ts  <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600 - 86400)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hcdwl
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhcjw'
        AND last_updated_ts  <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600 - 86400)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
  - name: hcdrl
    column: "state"
    query: >
      SELECT
        states.state
      FROM
        states
        INNER JOIN states_meta ON
          states.metadata_id = states_meta.metadata_id
      WHERE
        states_meta.entity_id = 'sensor.em_maison_bbrhcjr'
        AND last_updated_ts  <= (strftime('%s', 'now') - (strftime('%s', 'now') % 86400) + 21600 - 86400)
      ORDER BY
        last_updated_ts DESC
      LIMIT
        1;
### Semaine
  - name: hpsb
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjb'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpsw
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjw'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpsr
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjr'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcsb
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjb'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcsw
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjw'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcsr
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjr'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
### Semaine -1
  - name: hpsbl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjb'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7 + 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpswl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjw'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7 + 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpsrl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjr'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7 + 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcsbl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjb'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7 + 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcswl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjw'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7 + 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcsrl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjr'
        AND created_ts <= ((strftime('%s', 'now') - ((strftime('%w', 'now') + 6) % 7 + 7) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;  
### Mois
  - name: hpmb
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpmw
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpmr
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcmb
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcmw
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcmr
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
### Mois -1
  - name: hpmbl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1 + 
        CASE strftime('%m', 'now')
            WHEN '01' THEN 31  -- Decembre
            WHEN '02' THEN 31  -- Janvier
            WHEN '03' THEN 28 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0))  -- Fevrier
            WHEN '04' THEN 31  -- Mars
            WHEN '05' THEN 30  -- Avril
            WHEN '06' THEN 31  -- Mai
            WHEN '07' THEN 30  -- Juin
            WHEN '08' THEN 31  -- Juillet
            WHEN '09' THEN 31  -- Aout
            WHEN '10' THEN 30  -- Septembre
            WHEN '11' THEN 31  -- Octobre
            WHEN '12' THEN 30  -- Novembre
        END) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpmwl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1 + 
        CASE strftime('%m', 'now')
            WHEN '01' THEN 31  -- Decembre
            WHEN '02' THEN 31  -- Janvier
            WHEN '03' THEN 28 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0))  -- Fevrier
            WHEN '04' THEN 31  -- Mars
            WHEN '05' THEN 30  -- Avril
            WHEN '06' THEN 31  -- Mai
            WHEN '07' THEN 30  -- Juin
            WHEN '08' THEN 31  -- Juillet
            WHEN '09' THEN 31  -- Aout
            WHEN '10' THEN 30  -- Septembre
            WHEN '11' THEN 31  -- Octobre
            WHEN '12' THEN 30  -- Novembre
        END) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpmrl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1 + 
        CASE strftime('%m', 'now')
            WHEN '01' THEN 31  -- Decembre
            WHEN '02' THEN 31  -- Janvier
            WHEN '03' THEN 28 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0))  -- Fevrier
            WHEN '04' THEN 31  -- Mars
            WHEN '05' THEN 30  -- Avril
            WHEN '06' THEN 31  -- Mai
            WHEN '07' THEN 30  -- Juin
            WHEN '08' THEN 31  -- Juillet
            WHEN '09' THEN 31  -- Aout
            WHEN '10' THEN 30  -- Septembre
            WHEN '11' THEN 31  -- Octobre
            WHEN '12' THEN 30  -- Novembre
        END) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcmbl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1 + 
        CASE strftime('%m', 'now')
            WHEN '01' THEN 31  -- Decembre
            WHEN '02' THEN 31  -- Janvier
            WHEN '03' THEN 28 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0))  -- Fevrier
            WHEN '04' THEN 31  -- Mars
            WHEN '05' THEN 30  -- Avril
            WHEN '06' THEN 31  -- Mai
            WHEN '07' THEN 30  -- Juin
            WHEN '08' THEN 31  -- Juillet
            WHEN '09' THEN 31  -- Aout
            WHEN '10' THEN 30  -- Septembre
            WHEN '11' THEN 31  -- Octobre
            WHEN '12' THEN 30  -- Novembre
        END) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcmwl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1 + 
        CASE strftime('%m', 'now')
            WHEN '01' THEN 31  -- Decembre
            WHEN '02' THEN 31  -- Janvier
            WHEN '03' THEN 28 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0))  -- Fevrier
            WHEN '04' THEN 31  -- Mars
            WHEN '05' THEN 30  -- Avril
            WHEN '06' THEN 31  -- Mai
            WHEN '07' THEN 30  -- Juin
            WHEN '08' THEN 31  -- Juillet
            WHEN '09' THEN 31  -- Aout
            WHEN '10' THEN 30  -- Septembre
            WHEN '11' THEN 31  -- Octobre
            WHEN '12' THEN 30  -- Novembre
        END) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcmrl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%d', 'now') - 1 + 
        CASE strftime('%m', 'now')
            WHEN '01' THEN 31  -- Decembre
            WHEN '02' THEN 31  -- Janvier
            WHEN '03' THEN 28 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0))  -- Fevrier
            WHEN '04' THEN 31  -- Mars
            WHEN '05' THEN 30  -- Avril
            WHEN '06' THEN 31  -- Mai
            WHEN '07' THEN 30  -- Juin
            WHEN '08' THEN 31  -- Juillet
            WHEN '09' THEN 31  -- Aout
            WHEN '10' THEN 30  -- Septembre
            WHEN '11' THEN 31  -- Octobre
            WHEN '12' THEN 30  -- Novembre
        END) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
### Année
  - name: hpab
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpaw
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpar
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcab
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcaw
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcar
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
### Année -1
  - name: hpabl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0)) * 365) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hpawl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0)) * 365) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hparl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhpjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0)) * 365) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcabl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjb'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0)) * 365) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcawl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id =  'sensor.em_maison_bbrhcjw'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0)) * 365) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;
  - name: hcarl
    column: "state"
    query: >
      SELECT
        statistics.state
      FROM
        statistics
        INNER JOIN statistics_meta ON
          statistics.metadata_id = statistics_meta.id
      WHERE
        statistic_id = 'sensor.em_maison_bbrhcjr'
        AND created_ts <= (strftime('%s', 'now') - ((strftime('%j', 'now') - 1 + (strftime('%Y', 'now') % 4 = 0 AND (strftime('%Y', 'now') % 100 != 0 OR strftime('%Y', 'now') % 400 = 0)) * 365) * 86400) + 21600)
      ORDER BY
        created_ts DESC
      LIMIT
        1;

redémarrer home assistant, vous devriez alors avoir les entités suivantes
**

**

1 « J'aime »

Explications carte TEMPO - 2

La carte utilise custom button card https://github.com/custom-cards/button-card

a la racine de lovelace utiliser button_card_templates, il vous faudra ici créer votre propre template sub_button_style, le mien est dépendant de tout le reste du thème, il serait bien trop long à tout mettre mais aussi a expliquer

button_card_templates:
#############################        
  conso_label:
    show_label: true
    show_icon: false
    template: 
      - sub_button_style
    styles:
      label:
        - font-size: 11px
      icon:
        - padding-left: 0px
        - width: 15px
      card:
        - border-radius: 12px
        - height: 20px
        - padding: 0px
        - line-height: 77%
#############################        
  conso_head_label:
    template: conso_label
    styles:
      card:
        - width: 35px
        - background-color: var(--color-img-cell-green)
#############################        
  conso_total_label:
    template: conso_label
    layout: name_label
    styles:
      card:
        - background-color: var(--color-img-cell-green)        
#############################        
  conso_blue_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-img-cell-blue)
#############################        
  conso_blue_hp_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-img-cell-blue)
#############################        
  conso_blue_hc_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-card-blue)        
#############################        
  conso_white_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-img-cell-orange)
#############################        
  conso_white_hp_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-img-cell-orange) 
#############################        
  conso_white_hc_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-card-orange)         
#############################        
  conso_red_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-img-cell-red) 
#############################        
  conso_red_hp_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-img-cell-red) 
#############################        
  conso_red_hc_label:
    template: conso_label
    styles:
      card:
        - background-color: var(--color-card-red)         
#############################        
  conso_blank:
    template: conso_label
    styles:
      card:
        - border-color: rgba(0, 0, 0, 0.0)
        - box-shadow: none
#############################        
  conso_blank_space:
    template: conso_blank
    styles:
      card:
        - height: 1px
        - border_bottom: 1px dashed white

la carte à adapter totalement

type: custom:button-card
entity: sensor.rte_tempo_couleur_actuelle
template:
  - base_high
  - card_state
name: Linky
styles:
  card:
    - height: 770px
  custom_fields:
    table:
      - position: absolute
      - top: 26%
      - left: 50%
      - width: calc(95% + 1px)
      - background-color: var(--primary-background-color)
      - padding: 6px
      - border-radius: 15px
      - transform: translate(-50%, calc(-50% + 10px))
      - '--paper-card-background-color': rgba(0, 0, 0, 0.0)
      - '--ha-card-background': rgba(0, 0, 0, 0.0)
      - '--ha-card-box-shadow': none
      - '--ha-card-border-width': 0px
    table_cost:
      - position: absolute
      - top: 78%
      - left: 50%
      - width: calc(95% + 1px)
      - background-color: var(--primary-background-color)
      - padding: 6px
      - border-radius: 15px
      - transform: translate(-50%, calc(-50% + 10px))
      - '--paper-card-background-color': rgba(0, 0, 0, 0.0)
      - '--ha-card-background': rgba(0, 0, 0, 0.0)
      - '--ha-card-box-shadow': none
      - '--ha-card-border-width': 0px
    label_boutons:
      - position: absolute
      - top: 4%
      - left: 48%
      - width: calc(75% + 1px)
      - transform: translate(-50%, calc(-50% + 10px))
      - '--paper-card-background-color': rgba(0, 0, 0, 0.0)
      - '--ha-card-background': rgba(0, 0, 0, 0.0)
      - '--ha-card-box-shadow': none
      - '--ha-card-border-width': 0px
    prices:
      - position: absolute
      - top: 52%
      - left: 50%
      - width: calc(95% + 1px)
      - background-color: var(--primary-background-color)
      - padding: 6px
      - border-radius: 15px
      - transform: translate(-50%, calc(-50% + 10px))
      - '--paper-card-background-color': rgba(0, 0, 0, 0.0)
      - '--ha-card-background': rgba(0, 0, 0, 0.0)
      - '--ha-card-box-shadow': none
      - '--ha-card-border-width': 0px
custom_fields:
  label_boutons:
    card:
      type: horizontal-stack
      cards:
        - type: custom:button-card
          entity: binary_sensor.rte_tempo_heures_creuses
          label: " [[[ return states['sensor.rte_tempo_cycle_jours_deja_places_bleu'].state + '/' + states['sensor.rte_tempo_cycle_jours_restants_bleu'].state ]]]"
          template: sub_button_mini_label_style
          styles:
            card:
              - background-color:  var(--color-card-blue)
            icon:
              - color: var(--color-icon-blue)
            img_cell:
              - background-color: var(--color-img-cell-blue)
        - type: custom:button-card
          entity: binary_sensor.rte_tempo_heures_creuses
          label: " [[[ return states['sensor.rte_tempo_cycle_jours_deja_places_blanc'].state + '/' + states['sensor.rte_tempo_cycle_jours_restants_blanc'].state ]]]"
          template: sub_button_mini_label_style
          styles:
            card:
              - background-color:  var(--color-card-orange)
            icon:
              - color: var(--color-icon-orange)
            img_cell:
              - background-color: var(--color-img-cell-orange)
        - type: custom:button-card
          entity: binary_sensor.rte_tempo_heures_creuses
          label: " [[[ return states['sensor.rte_tempo_cycle_jours_deja_places_rouge'].state + '/' + states['sensor.rte_tempo_cycle_jours_restants_rouge'].state ]]]"
          template: sub_button_mini_label_style
          styles:
            card:
              - background-color:  var(--color-card-red)
            icon:
              - color: var(--color-icon-red)
            img_cell:
              - background-color: var(--color-img-cell-red)
        - type: custom:button-card
          entity: binary_sensor.rte_tempo_heures_creuses
          label: >-
            [[[ return (states['binary_sensor.rte_tempo_heures_creuses'].state
            == 'on') ? 'HC' : 'HP' ]]]
          template: sub_button_mini_label_style
        - type: custom:button-card
          entity: sensor.rte_tempo_prochaine_couleur
          label: " [[[ return states['sensor.rte_tempo_prochaine_couleur'].state ]]]"
          template: sub_button_mini_label_style    
  table:
    card:
      type: vertical-stack
      cards:
        - type: custom:button-card
          entity: sensor.rte_tempo_couleur_actuelle
          label: CONSOMMATION
          template: conso_total_label
        - type: horizontal-stack
          cards:
            - type: vertical-stack
              cards:
                - type: horizontal-stack
                  cards:
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpdb'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpdb'].state - states['sensor.hpdbl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpsb'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpsb'].state - states['sensor.hpsbl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpmb'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpmb'].state - states['sensor.hpmbl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpab'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpab'].state - states['sensor.hpabl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                    - type: vertical-stack
                      cards: 
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcdb'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcdb'].state - states['sensor.hcdbl'].state;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcsb'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcsb'].state - states['sensor.hcsbl'].state;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcmb'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcmb'].state - states['sensor.hcmbl'].state;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcab'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcab'].state - states['sensor.hcabl'].state;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
            - type: vertical-stack
              cards:
                - type: horizontal-stack
                  cards:
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                              let resultat = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpdw'].state;
                              if (resultat == 0) return;
                              return resultat.toFixed(2);
                             ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpdw'].state - states['sensor.hpdwl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                              let resultat = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpsw'].state;
                              if (resultat == 0) return;
                              return resultat.toFixed(2);
                             ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpsw'].state - states['sensor.hpswl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                              let resultat = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpmw'].state;
                              if (resultat == 0) return;
                              return resultat.toFixed(2);
                             ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpmw'].state - states['sensor.hpmwl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                              let resultat = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpaw'].state;
                              if (resultat == 0) return;
                              return resultat.toFixed(2);
                             ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpaw'].state - states['sensor.hpawl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcdw'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcdw'].state - states['sensor.hcdwl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcsw'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcsw'].state - states['sensor.hcswl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcmw'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcmw'].state - states['sensor.hcmwl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcaw'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcaw'].state - states['sensor.hcawl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
            - type: vertical-stack
              cards:
                - type: horizontal-stack
                  cards:
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpdr'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpdr'].state - states['sensor.hpdrl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpsr'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpsr'].state - states['sensor.hpsrl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpmr'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpmr'].state - states['sensor.hpmrl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpar'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hpar'].state - states['sensor.hparl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcdr'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcdr'].state - states['sensor.hcdrl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcsr'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcsr'].state - states['sensor.hcsrl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcmr'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcmr'].state - states['sensor.hcmrl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          label: |
                            [[[
                             let resultat = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcar'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = states['sensor.hcar'].state - states['sensor.hcarl'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
            - type: vertical-stack
              cards:
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpjb = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpdb'].state;
                     let hpjw = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpdw'].state;
                     let hpjr = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpdr'].state;
                     let hcjb = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcdb'].state;
                     let hcjw = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcdw'].state;
                     let hcjr = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcdr'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'J | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpjb = states['sensor.hpdb'].state - states['sensor.hpdbl'].state;
                     let hpjw = states['sensor.hpdw'].state - states['sensor.hpdwl'].state;
                     let hpjr = states['sensor.hpdr'].state - states['sensor.hpdrl'].state;
                     let hcjb = states['sensor.hcdb'].state - states['sensor.hcdbl'].state;
                     let hcjw = states['sensor.hcdw'].state - states['sensor.hcdwl'].state;
                     let hcjr = states['sensor.hcdr'].state - states['sensor.hcdrl'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'J-1 | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: input_boolean.off
                  label: ' '
                  template: conso_blank_space
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpsb = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpsb'].state;
                     let hpsw = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpsw'].state;
                     let hpsr = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpsr'].state;
                     let hcsb = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcsb'].state;
                     let hcsw = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcsw'].state;
                     let hcsr = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcsr'].state;
                     let resultat = hpsb + hpsw + hpsr + hcsb + hcsw + hcsr;
                     if (resultat == 0) return;
                     return 'S | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpsb = states['sensor.hpsb'].state - states['sensor.hpsbl'].state;
                     let hpsw = states['sensor.hpsw'].state - states['sensor.hpswl'].state;
                     let hpsr = states['sensor.hpsr'].state - states['sensor.hpsrl'].state;
                     let hcsb = states['sensor.hcsb'].state - states['sensor.hcsbl'].state;
                     let hcsw = states['sensor.hcsw'].state - states['sensor.hcswl'].state;
                     let hcsr = states['sensor.hcsr'].state - states['sensor.hcsrl'].state;
                     let resultat = hpsb + hpsw + hpsr + hcsb + hcsw + hcsr;
                     if (resultat == 0) return;
                     return 'S-1 | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: input_boolean.off
                  label: ' '
                  template: conso_blank_space
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpjb = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpmb'].state;
                     let hpjw = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpmw'].state;
                     let hpjr = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpmr'].state;
                     let hcjb = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcmb'].state;
                     let hcjw = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcmw'].state;
                     let hcjr = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcmr'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'M | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpjb = states['sensor.hpmb'].state - states['sensor.hpmbl'].state;
                     let hpjw = states['sensor.hpmw'].state - states['sensor.hpmwl'].state;
                     let hpjr = states['sensor.hpmr'].state - states['sensor.hpmrl'].state;
                     let hcjb = states['sensor.hcmb'].state - states['sensor.hcmbl'].state;
                     let hcjw = states['sensor.hcmw'].state - states['sensor.hcmwl'].state;
                     let hcjr = states['sensor.hcmr'].state - states['sensor.hcmrl'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'M-1 | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: input_boolean.off
                  label: ' '
                  template: conso_blank_space
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpjb = states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpab'].state;
                     let hpjw = states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpaw'].state;
                     let hpjr = states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpar'].state;
                     let hcjb = states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcab'].state;
                     let hcjw = states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcaw'].state;
                     let hcjr = states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcar'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'A | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpjb = states['sensor.hpab'].state - states['sensor.hpabl'].state;
                     let hpjw = states['sensor.hpaw'].state - states['sensor.hpawl'].state;
                     let hpjr = states['sensor.hpar'].state - states['sensor.hparl'].state;
                     let hcjb = states['sensor.hcab'].state - states['sensor.hcabl'].state;
                     let hcjw = states['sensor.hcaw'].state - states['sensor.hcawl'].state;
                     let hcjr = states['sensor.hcar'].state - states['sensor.hcarl'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'A-1 | ' + resultat.toFixed(2) + ' Kwh';
                    ]]]
                  template: conso_total_label
  table_cost:
    card:
      type: vertical-stack
      cards:
        - type: custom:button-card
          entity: sensor.rte_tempo_couleur_actuelle
          label: FACTURE
          template: conso_total_label
        - type: horizontal-stack
          cards:
            - type: vertical-stack
              cards: 
                - type: horizontal-stack
                  cards:
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpdb'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpdb'].state - states['sensor.hpdbl'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpsb'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpsb'].state - states['sensor.hpsbl'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpmb'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpmb'].state - states['sensor.hpmbl'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpab'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpab'].state - states['sensor.hpabl'].state) * states['input_number.hp_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hp_label
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcdb'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcdb'].state - states['sensor.hcdbl'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcsb'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcsb'].state - states['sensor.hcsbl'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcmb'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcmb'].state - states['sensor.hcmbl'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_blue_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcab'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcab'].state - states['sensor.hcabl'].state) * states['input_number.hc_bleu'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_blue_hc_label
            - type: vertical-stack
              cards:
                - type: horizontal-stack
                  cards:
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpdw'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpdw'].state - states['sensor.hpdwl'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpsw'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpsw'].state - states['sensor.hpswl'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpmw'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpmw'].state - states['sensor.hpmwl'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpaw'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpaw'].state - states['sensor.hpawl'].state) * states['input_number.hp_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hp_label
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcdw'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcdw'].state - states['sensor.hcdwl'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcsw'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcsw'].state - states['sensor.hcswl'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcmw'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcmw'].state - states['sensor.hcmwl'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_white_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcaw'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcaw'].state - states['sensor.hcawl'].state) * states['input_number.hc_blanc'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_white_hc_label
            - type: vertical-stack
              cards:
                - type: horizontal-stack
                  cards:
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpdr'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpdr'].state - states['sensor.hpdrl'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpsr'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpsr'].state - states['sensor.hpsrl'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpmr'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpmr'].state - states['sensor.hpmrl'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hp_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpar'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hpar'].state - states['sensor.hparl'].state) * states['input_number.hp_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hp_label
                    - type: vertical-stack
                      cards:
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcdr'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcdr'].state - states['sensor.hcdrl'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcsr'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcsr'].state - states['sensor.hcsrl'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcmr'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcmr'].state - states['sensor.hcmrl'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
                        - type: custom:button-card
                          entity: input_boolean.off
                          label: ' '
                          template: conso_blank_space
                        - type: custom:button-card
                          entity: sensor.rte_tempo_couleur_actuelle
                          template: conso_red_hc_label
                          label: |
                            [[[
                             let resultat = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcar'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                        - type: custom:button-card
                          entity: sensor.rte_tempo_prochaine_couleur
                          label: |
                            [[[
                             let resultat = (states['sensor.hcar'].state - states['sensor.hcarl'].state) * states['input_number.hc_rouge'].state;
                             if (resultat == 0) return;
                             return resultat.toFixed(2);
                            ]]]
                          template: conso_red_hc_label
            - type: vertical-stack
              cards:
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpjb = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpdb'].state) * states['input_number.hp_bleu'].state;
                     let hpjw = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpdw'].state) * states['input_number.hp_blanc'].state;
                     let hpjr = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpdr'].state) * states['input_number.hp_rouge'].state;
                     let hcjb = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcdb'].state) * states['input_number.hc_bleu'].state;
                     let hcjw = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcdw'].state) * states['input_number.hc_blanc'].state;
                     let hcjr = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcdr'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'J | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpjb = (states['sensor.hpdb'].state - states['sensor.hpdbl'].state) * states['input_number.hp_bleu'].state;
                     let hpjw = (states['sensor.hpdw'].state - states['sensor.hpdwl'].state) * states['input_number.hp_blanc'].state;
                     let hpjr = (states['sensor.hpdr'].state - states['sensor.hpdrl'].state) * states['input_number.hp_rouge'].state;
                     let hcjb = (states['sensor.hcdb'].state - states['sensor.hcdbl'].state) * states['input_number.hc_bleu'].state;
                     let hcjw = (states['sensor.hcdw'].state - states['sensor.hcdwl'].state) * states['input_number.hc_blanc'].state;
                     let hcjr = (states['sensor.hcdr'].state - states['sensor.hcdrl'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'J-1 | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: input_boolean.off
                  label: ' '
                  template: conso_blank_space
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpsb = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpsb'].state) * states['input_number.hp_bleu'].state;
                     let hpsw = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpsw'].state) * states['input_number.hp_blanc'].state;
                     let hpsr = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpsr'].state) * states['input_number.hp_rouge'].state;
                     let hcsb = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcsb'].state) * states['input_number.hc_bleu'].state;
                     let hcsw = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcsw'].state) * states['input_number.hc_blanc'].state;
                     let hcsr = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcsr'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpsb + hpsw + hpsr + hcsb + hcsw + hcsr;
                     if (resultat == 0) return;
                     return 'S | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpsb = (states['sensor.hpsb'].state - states['sensor.hpsbl'].state) * states['input_number.hp_bleu'].state;
                     let hpsw = (states['sensor.hpsw'].state - states['sensor.hpswl'].state) * states['input_number.hp_blanc'].state;
                     let hpsr = (states['sensor.hpsr'].state - states['sensor.hpsrl'].state) * states['input_number.hp_rouge'].state;
                     let hcsb = (states['sensor.hcsb'].state - states['sensor.hcsbl'].state) * states['input_number.hc_bleu'].state;
                     let hcsw = (states['sensor.hcsw'].state - states['sensor.hcswl'].state) * states['input_number.hc_blanc'].state;
                     let hcsr = (states['sensor.hcsr'].state - states['sensor.hcsrl'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpsb + hpsw + hpsr + hcsb + hcsw + hcsr;
                     if (resultat == 0) return;
                     return 'S-1 | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: input_boolean.off
                  label: ' '
                  template: conso_blank_space
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpjb = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpmb'].state) * states['input_number.hp_bleu'].state;
                     let hpjw = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpmw'].state) * states['input_number.hp_blanc'].state;
                     let hpjr = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpmr'].state) * states['input_number.hp_rouge'].state;
                     let hcjb = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcmb'].state) * states['input_number.hc_bleu'].state;
                     let hcjw = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcmw'].state) * states['input_number.hc_blanc'].state;
                     let hcjr = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcmr'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'M | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpjb = (states['sensor.hpmb'].state - states['sensor.hpmbl'].state) * states['input_number.hp_bleu'].state;
                     let hpjw = (states['sensor.hpmw'].state - states['sensor.hpmwl'].state) * states['input_number.hp_blanc'].state;
                     let hpjr = (states['sensor.hpmr'].state - states['sensor.hpmrl'].state) * states['input_number.hp_rouge'].state;
                     let hcjb = (states['sensor.hcmb'].state - states['sensor.hcmbl'].state) * states['input_number.hc_bleu'].state;
                     let hcjw = (states['sensor.hcmw'].state - states['sensor.hcmwl'].state) * states['input_number.hc_blanc'].state;
                     let hcjr = (states['sensor.hcmr'].state - states['sensor.hcmrl'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'M-1 | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: input_boolean.off
                  label: ' '
                  template: conso_blank_space
                - type: custom:button-card
                  entity: sensor.rte_tempo_couleur_actuelle
                  label: |
                    [[[
                     let hpjb = (states['sensor.em_maison_bbrhpjb'].state - states['sensor.hpab'].state) * states['input_number.hp_bleu'].state;
                     let hpjw = (states['sensor.em_maison_bbrhpjw'].state - states['sensor.hpaw'].state) * states['input_number.hp_blanc'].state;
                     let hpjr = (states['sensor.em_maison_bbrhpjr'].state - states['sensor.hpar'].state) * states['input_number.hp_rouge'].state;
                     let hcjb = (states['sensor.em_maison_bbrhcjb'].state - states['sensor.hcab'].state) * states['input_number.hc_bleu'].state;
                     let hcjw = (states['sensor.em_maison_bbrhcjw'].state - states['sensor.hcaw'].state) * states['input_number.hc_blanc'].state;
                     let hcjr = (states['sensor.em_maison_bbrhcjr'].state - states['sensor.hcar'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'A | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
                - type: custom:button-card
                  entity: sensor.rte_tempo_prochaine_couleur
                  label: |
                    [[[
                     let hpjb = (states['sensor.hpab'].state - states['sensor.hpabl'].state) * states['input_number.hp_bleu'].state;
                     let hpjw = (states['sensor.hpaw'].state - states['sensor.hpawl'].state) * states['input_number.hp_blanc'].state;
                     let hpjr = (states['sensor.hpar'].state - states['sensor.hparl'].state) * states['input_number.hp_rouge'].state;
                     let hcjb = (states['sensor.hcab'].state - states['sensor.hcabl'].state) * states['input_number.hc_bleu'].state;
                     let hcjw = (states['sensor.hcaw'].state - states['sensor.hcawl'].state) * states['input_number.hc_blanc'].state;
                     let hcjr = (states['sensor.hcar'].state - states['sensor.hcarl'].state) * states['input_number.hc_rouge'].state;
                     let resultat = hpjb + hpjw + hpjr + hcjb + hcjw + hcjr;
                     if (resultat == 0) return;
                     return 'A-1 | ' + resultat.toFixed(2) + ' €';
                    ]]]
                  template: conso_total_label
  prices:
    card:
      type: vertical-stack
      cards:
        - type: custom:button-card
          entity: sensor.rte_tempo_couleur_actuelle
          label: TARIFS
          template: conso_total_label
        - type: horizontal-stack
          cards:
            - type: custom:button-card
              entity: input_number.hp_bleu
              label: '[[[ return states["input_number.hp_bleu"].state + " €/Kwh"]]]'
              template: conso_blue_hp_label
            - type: custom:button-card
              entity: input_number.hp_blanc
              label: '[[[ return states["input_number.hp_blanc"].state + " €/Kwh" ]]]'
              template: conso_white_hp_label
            - type: custom:button-card
              entity: input_number.hp_rouge
              label: '[[[ return states["input_number.hp_rouge"].state + " €/Kwh" ]]]'
              template: conso_red_hp_label
        - type: horizontal-stack
          cards:
            - type: custom:button-card
              entity: input_number.hc_bleu
              label: '[[[ return states["input_number.hc_bleu"].state + " €/Kwh" ]]]'
              template: conso_blue_hc_label
            - type: custom:button-card
              entity: input_number.hc_blanc
              label: '[[[ return states["input_number.hc_blanc"].state + " €/Kwh" ]]]'
              template: conso_white_hc_label
            - type: custom:button-card
              entity: input_number.hc_rouge
              label: '[[[ return states["input_number.hc_rouge"].state + " €/Kwh" ]]]'
              template: conso_red_hc_label      

1 « J'aime »

Hello @Nemesis24 et merci pour l’énorme boulot pour la carte.

Tout c’est bien passé en remplacant par mes propres entités.
Par contre comme tous les labels sont définis par rapport au template « sub_button_style », aurais tu quelques infos à nous fournir sur celui-ci, s’il te plait ? Je vois vraiment pas quoi mettre dedans, du coup le rendu est pas terrible :wink: .

Merci.

1 « J'aime »

Super, tant mieux ! c’est difficile de mon côté de décortiquer mais essaie de ce côté là.
je me rends compte en voyant l’image que les entités dans le code de la carte doivent être adaptées:
binary_sensor.rte_tempo_heures_creuses
sensor.rte_tempo_prochaine_couleur
sensor.rte_tempo_couleur_actuelle (a savoir que dans les retours d’infos de la base elles ne servent à rien)
et il y a aussi un input_boolean.off, un inter qui ne sert à rien, il permet juste de créer des espaces vides.
Je ne sais pas si je suis très clair, je dois avouer que ce n’est pas facile de retranscrire ce que j’ai mis en place.

  css_on_card:
    styles:
      card:
        - border-color: rgba(12, 12, 14, 0.2)
        - border-style: outset
        - border-width: 1px
        - box-shadow: 1px 1px 2px 0px rgba(10, 10, 10,0.2)

###########################         
  css_icon:
    styles:
      icon:
        - filter: drop-shadow(0px 2px 2px rgba(0,0,0,0.3))
        - width: 50%		

########################### 				
  sub_button_style:
    show_name: false
    show_icon: true
    template:
      - css_icon
      - css_on_card
    styles:
      icon:
        - width: 15px      
      card:
        - border-radius: 12px
        - height: 30px
        - padding: 0px
        - line-height: 77% 

Hello @Nemesis24 ,

J’ai fait quelque qui s’inspire grandement de ton code, mais sans passer par les templates (faudrait que je potasse un peu plus).

J’ai pas encore beaucoup de données, ça date de la semaine dernière.
Y’a juste un souci au niveau de l’année, je ne sais pas pourquoi ça ne remonte rien.
Merci encore pour l’énorme travail :wink:

1 « J'aime »

beau boulot, j’aimerais récupérer les conso jour avec le prix mais j’ai pas vu dans ton code.
Comment tu as fait pour faire le sensor ?

@Ludoc Ton tarif tempo est celui du 08-23. Il a changé au 02-24.

1 « J'aime »

Effectivement, je les avais récupéré la veille du changement, justement quand j’ai changé d’abonnement à cause de la hausse de 10% :wink:

Merci.

les sensor sont dans le fichier sql.yaml

J’ai pas ça moi, c’est pas toi qui l’a écrit ?