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
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.
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 ^^)
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
**
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
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 .
Merci.
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
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.
Effectivement, je les avais récupéré la veille du changement, justement quand j’ai changé d’abonnement à cause de la hausse de 10%
Merci.
les sensor sont dans le fichier sql.yaml
J’ai pas ça moi, c’est pas toi qui l’a écrit ?