Messages : 3,392
Sujets : 39
Inscription : Mar 2013
23/03/2024, 12:29:08
(Modification du message : 23/03/2024, 13:45:21 par Ives.)
(23/03/2024, 11:07:44)XeNo a écrit : Même si je ne suis pas @aureOhwo , voici quelques éléments de réponses pour commencer !
Je vois bien sur la droite le sous flux mais comment l'afficher ?
Dans la barre de gauche de Node-Red il y les nœuds avec une rubrique sous-flux, il suffit de double cliquer sur le sous-flux pour l'afficher dans un onglet.
Il manque aussi un type d'élements visiblement à l'import "knxUltimate"
Dans Node-Red, il faut cliquer sur le pictogramme en haut à droite (3 petites barres horizontales), sélectionner "Gérer la palette" puis à partir de l'onglet "installer" , installer "node-red-contrib-knx-ultimate"
tu parles d'input_number, cela se place à quel endroit ? je n'ai jamais utilisé ce type dans les fichiers yaml
Dans HA, tu vas dans paramètres/Appareils et Services/ Entrée et tu ajoutes des entrées de type "Nombre"
Ensuite tu parles de sensor. Je vois le terme template donc ca c'est ok, je le place dans sensor.yaml
Les sensors "index" apparaitront dans HA dès qu'ils auront été créés dans Node-Red. Il reste dans le yaml à créer ceux des totaux.
Par contre tu parles ensuite d'automation globale ? kasako ?
Le terme actuel dans HA est automatisation à créer depuis Paramètres/Automatisations et scènes soit avec l'assistant, soit en yaml (ou un mixte des deux)
Messages : 125
Sujets : 7
Inscription : Sep 2015
(23/03/2024, 12:14:07)Ives a écrit : Merci pour la précision.
Dans le code suivant il n'y a pas de "*" devant et/ou derrière "energie" ; il trouve quelque soit la position du mot "energie" dans le nom de l'entité ?
target:
entity_id: >
{{ states.select | selectattr('name','search','energie') |
map(attribute='entity_id') | list }}
Oui ça marche sans avoir besoin de caractère "joker"
Tu peux tester dans Outils de développement > Modèle pour voir si ça fonctionne chez toi aussi et adapter si nécessaire
Messages : 125
Sujets : 7
Inscription : Sep 2015
@Xeno : je te conseille de lire cet article ou tout est correctement expliqué (hormis la partie Node Red mais avec les réponses d'Ives ca devrait le faire) : https://www.canaletto.fr/post/home-assis...nd-energie
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
(23/03/2024, 14:00:17)aureOhwo a écrit : Tu peux tester dans Outils de développement > Modèle pour voir si ça fonctionne chez toi aussi et adapter si nécessaire
As-tu trouvé une astuce pour simuler une période tarifaire autre que celle en cours afin de faire des tests ?
Messages : 125
Sujets : 7
Inscription : Sep 2015
Suite à ta remarque Ives sur le template manquant, je viens de mettre à jour mon message ou j'expliquai mon comptage : https://www.knx-fr.com/showthread.php?ti...0#pid62710
Je me contentais d'attendre un peu pour tester mais si tu es pressé tu dois pouvoir bidouiller un peu ce template en question pour obtenir le tarif que tu veux
Messages : 446
Sujets : 23
Inscription : Feb 2020
24/03/2024, 11:51:13
(Modification du message : 24/03/2024, 13:19:19 par XeNo.)
Merci Ives et aureOhwo !
Avec vos infos j'arrive à mes fins
J'ai encore 3 interrogations :
@aureOhwo
Je n'arrive pas à interpréter ta condition et ce qu'elle fait réellement, tu pourrais expliquer stp ?
Code : - service: select.select_option
data:
option: |
{{
states('sensor.electricite_teleinfo_tarif_en_cours_texte')
}}
target:
entity_id: >
{{ states.select | selectattr('name','search','energie') |
map(attribute='entity_id') | list }}
J'arrive à calculer un tarif tempo en simulant tout (j'ai la saisie des tarifs et je récupère le tarif tempo chez edf)
Et mes conso viennent des TE331 donc elles sont exposées sur HA.
Du coup, je ne comprends pas pourquoi il y a du Node Red ?
Et enfin, on est d'accord que sur une journée complète, on peut avoir 2 HC différents + 1 HP ?
Merci d'avance !
Messages : 125
Sujets : 7
Inscription : Sep 2015
Salut Xeno,
La condition va récupérer la valeur textuelle du tarif en cours à partir de l'entier du TE331 (ex : 8 -> BLeu HC) et va le sélectionner dans tous les select des utility meters qui contienne le mot energie (j'en ai un sacré paquet chez moi, ca serait rébarbatif à écrire autrement).
Je viens de mettre à jour mes explications sur la page précédente pour avoir quelque chose de clair et au nouveau format de template, je te conseille de revérifier et de modifier chez toi si nécessaire.
Je te confirme que tu peux bien avoir 3 tarifs différents en tempo dans une même journée
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
25/03/2024, 12:05:59
(Modification du message : 25/03/2024, 13:30:55 par Ives.)
(24/03/2024, 11:51:13)XeNo a écrit : J'arrive à calculer un tarif tempo en simulant tout (j'ai la saisie des tarifs et je récupère le tarif tempo chez edf)
Et mes conso viennent des TE331 donc elles sont exposées sur HA.
Du coup, je ne comprends pas pourquoi il y a du Node Red ? Je ne comprends pas comment du récupères les consommations des 6 plages horaires du TE331 sans utiliser NR ?
Pour disposer des 6 index TEMPO, le TE331 doit être configuré en mode 6 octets (énergie et information tarifaire) ; chaque octet étant émis sur le bus à intervalle de 5 secondes, il faut ensuite "trier".
Le DPT utilisé est le 235.001 dont le format est le suivant :
Si tu as trouvé une solution plus simple je suis preneur.
Messages : 182
Sujets : 20
Inscription : Mar 2019
25/03/2024, 13:37:15
(Modification du message : 25/03/2024, 13:42:18 par Nitro24.)
Perso j'utilise une automatisation HA déclenchée sur un KNX_event pour "trier" les 6 tarifs dans 6 inputs numbers en fonction de la valeur de l'octet n°2 du DPT.
Dans l'exemple ci dessous, la GA 10/5/1 correspond au comptage d'énergie du chauffage.
il me semble que cette méthode avait déjà été décrite ici.
Code : alias: Comptage KNX Chauffage
description: ""
trigger:
- platform: event
event_type: knx_event
condition:
- condition: template
value_template: "{{ trigger.event.data.destination == '10/5/1' }}"
action:
- choose:
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 8 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_chauffage_hp_bleu
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 9 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_chauffage_hp_blanc
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 10 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_chauffage_hp_rouge
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 5 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_chauffage_hc_bleu
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 6 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_chauffage_hc_blanc
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 7 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_chauffage_hc_rouge
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
mode: single
Pour completer, j'utilise un template pour tout additionner et mettre en forme
Code : # Chauffage
- name: Compteur Energie Chauffage
unique_id: ec237bc5-f71b-4b0c-a1c6-523fa6313079
state: "{{ [ states('input_number.energie_chauffage_hc_bleu'),
states('input_number.energie_chauffage_hp_bleu'),
states('input_number.energie_chauffage_hc_blanc'),
states('input_number.energie_chauffage_hp_blanc'),
states('input_number.energie_chauffage_hc_rouge'),
states('input_number.energie_chauffage_hp_rouge')] | map('float') | sum | multiply(0.001) }}"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
25/03/2024, 15:37:50
(Modification du message : 25/03/2024, 15:56:57 par Ives.)
@Nitro24
C'est très astucieux mais, sauf erreur de ma part, je ne pense pas que cette solution ait été évoquée ici.
Les input_number sont normalement utilisés lorsqu'on souhaite avoir la possibilité de modifier leur valeur via le Dashboard ?
Par ailleurs, j'ai 5 TE331 (ils sont répartis dans 3 tableaux) et une borne de charge de VE. J'ai connecté à la sortie TIC du Linky la borne de charge ainsi que deux des cinq TE331. Si j'en connecte un troisième, la transmission TIC ne fonctionne plus (trop chargée je suppose).
Quelqu'un est-il confronté au même problème et a-t-il trouvé une solution ?
Messages : 182
Sujets : 20
Inscription : Mar 2019
[quote pid='62807' dateline='1711377470']
Par ailleurs, j'ai 5 TE331 (ils sont répartis dans 3 tableaux) et une borne de charge de VE. J'ai connecté à la sortie TIC du Linky la borne de charge ainsi que deux des cinq TE331. Si j'en connecte un troisième, la transmission TIC ne fonctionne plus (trop chargée je suppose).
Quelqu'un est-il confronté au même problème et a-t-il trouvé une solution ?
[/quote]
Surprenant, j'ai moi-même 4 récepteurs connectés (1 TE331, 2 TXA230 et un recepteur TIC) à la sortie TIC du linky sans problème.
Il faudrait verifier avec un oscillosope lequel des TE331 ou borne de charge fait s'écrouler le signal.
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
25/03/2024, 16:26:09
(Modification du message : 25/03/2024, 16:49:38 par Ives.)
@Nitro24
C'est ce que je vais faire !
Je viens de faire un copié/collé ton automatisation (et également créé un input_ number. energie_nom_appareil_hp_bleu qui correspond au tarif en cours) mais elle ne s'exécute pas ; je pointe pourtant la même GA que celle utilisée dans NR avec laquelle je récupère bien les 6 index.
J'ai ajouté ceci dans mon knx.yaml (l'adresse de la GA du trigger.event.data.destination) mais l'automatisation ne s'exécute jamais
Code : event:
- address:
- "9/1/4"
Messages : 182
Sujets : 20
Inscription : Mar 2019
25/03/2024, 17:26:03
(Modification du message : 25/03/2024, 17:32:12 par Nitro24.)
Oui, j'ai aussi ce type d'entrée, as tu essayé de redémarrer complétement HA ?
Edit: je pense qu'il te manque une indentation sur la dernière ligne de ton event, voici le mien:
Code : event:
- address:
- "10/5/*"
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
25/03/2024, 18:02:31
(Modification du message : 25/03/2024, 18:04:20 par Ives.)
Il devait effectivement manquer une indentation car elle s'exécute mais dans la chronologie de l'exécution, j'ai le message suivant (j'ai créé tous les input_number et redémarré HA)
S"topped because a condition failed at 25 mars 2024 à 17:56:55 (runtime: 0.00 seconds)"
Code : alias: Comptage Pompe Puisard
description: ""
trigger:
- platform: event
event_type: knx_event
condition:
- condition: template
value_template: "{{ trigger.event.data.destination == '9/2/7' }}"
action:
- choose:
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 8 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_puisard_hp_bleu
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 9 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_puisard_hp_blanc
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 10 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_puisard_hp_rouge
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 5 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_puisard_hc_bleu
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 6 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_puisard_hc_blanc
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
- conditions:
- condition: template
value_template: "{{trigger.event.data.data[4] == 7 }}"
sequence:
- service: input_number.set_value
target:
entity_id: input_number.energie_puisard_hc_rouge
data:
value: |-
{{ (trigger.event.data.data[0] * 2**24) +
(trigger.event.data.data[1] * 2**16) +
(trigger.event.data.data[2] * 2**8) +
(trigger.event.data.data[3] * 2**0) }}
mode: single
Messages : 182
Sujets : 20
Inscription : Mar 2019
dans event tu déclare le GA "9/1/4" et dans l'automatisation trigger.event.data.destination == '9/2/7', normal ?
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
Oups !
Comme j'ai déconnecté la TIC de deux TE331 (dont celui qui gère le puisard), pour tester l'automatisation j'ai "piqué" la GA d'un autre appareil et oublié de la changer dans l'event !
Merci car l'automatisation fonctionne...
Messages : 125
Sujets : 7
Inscription : Sep 2015
Bonsoir,
@nitro24 :
C'est peut être moi qui avait posté la façon de mettre à jour les index par automatisation mais ça partait en vrille chez moi à chaque redémarrage de HA au niveau de mes utility_meters, depuis que j'ai implémenté l'exemple Node Red fourni par Ives je peux redémarrer autant que je veux sans pb (si vous n'utilisez pas d'utility_meters, alors cette solution reste viable par contre).
@Ives :
Chez moi je n'ai branché qu'un seul TE331 sur le teleinfo linky, et j'ai configuré les autres pour se mettre à jour à partir de l'objet Tarif En cours du premier, ca fonctionne bien sans se prendre la tête :
Messages : 182
Sujets : 20
Inscription : Mar 2019
25/03/2024, 23:02:51
(Modification du message : 25/03/2024, 23:03:09 par Nitro24.)
Bonsoir,
j'utilise les utility_meters et je n'ai aucun problème, même lors des redémarrages de HA ou du réseau KNX.
__________________________________________________________
Full KNX, même la sonnette ! Home Assistant, automate WAGO, DALI-2
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
(02/02/2024, 23:13:43)aureOhwo a écrit :
Pourrais-tu poster le code de la carte "Répartitions" et celui de "Conso jour" ?
Messages : 125
Sujets : 7
Inscription : Sep 2015
(27/03/2024, 20:34:53)Ives a écrit : (02/02/2024, 23:13:43)aureOhwo a écrit :
Pourrais-tu poster le code de la carte "Répartitions" et celui de "Conso jour" ?
Je viens d'éditer mon tuto pour ajouter des précisions sur la façon d'obtenir le tarif en cours et le code source de ce dashboard : https://www.knx-fr.com/showthread.php?ti...0#pid62710
Messages : 125
Sujets : 7
Inscription : Sep 2015
(25/03/2024, 23:02:51)Nitro24 a écrit : Bonsoir,
j'utilise les utility_meters et je n'ai aucun problème, même lors des redémarrages de HA ou du réseau KNX.
Le code de ton template est légèrement différent de celui que j'utilisais, je testerai quand j'aurais un peu de temps (même si la solution Node Red me donne entièrement satisfaction pour le moment).
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
(28/03/2024, 22:57:51)aureOhwo a écrit : Je viens d'éditer mon tuto pour ajouter des précisions sur la façon d'obtenir le tarif en cours et le code source de ce dashboard : https://www.knx-fr.com/showthread.php?
Merci @aureOhwo pour le suivi et les mises à jour successives de ce tuto.
Pour afficher la consommation des appareils dans le Dashboard Energy, j'ai ajouté les entités sensor.electricite_nom_appareil_index_total_kWh mais je n'ai pas trouvé comment changer le nom des appareils dans le Dashboard (sans le changer dans la configuration HA car il est bien explicite).
Messages : 125
Sujets : 7
Inscription : Sep 2015
(29/03/2024, 18:41:20)Ives a écrit : (28/03/2024, 22:57:51)aureOhwo a écrit : Je viens d'éditer mon tuto pour ajouter des précisions sur la façon d'obtenir le tarif en cours et le code source de ce dashboard : https://www.knx-fr.com/showthread.php?
Merci @aureOhwo pour le suivi et les mises à jour successives de ce tuto.
Pour afficher la consommation des appareils dans le Dashboard Energy, j'ai ajouté les entités sensor.electricite_nom_appareil_index_total_kWh mais je n'ai pas trouvé comment changer le nom des appareils dans le Dashboard (sans le changer dans la configuration HA car il est bien explicite).
Pas de problème @Ives, surtout vu le nombre de fois où tu m'as sorti du pétrin
Pour pouvoir personnaliser "sensor.electricite_nom_appareil_index_total_kWh", vu qu'ils sont déclarés en yaml, il faut leur ajouter un unique_id, par ex :
Code : template:
- sensor:
# Total KWh Index (source des utility_meter)
- name: Electricite Energie Lave Linge Index Total Kwh
unique_id: electricite_energie_lave_linge_index_total_kwh-uid
state: >
{{ (states('sensor.nr_energie_lave_linge_index_hc_blanc_kwh')|float(0) +
states('sensor.nr_energie_lave_linge_index_hc_bleu_kwh')|float(0) +
states('sensor.nr_energie_lave_linge_index_hc_rouge_kwh')|float(0) +
states('sensor.nr_energie_lave_linge_index_hp_blanc_kwh')|float(0) +
states('sensor.nr_energie_lave_linge_index_hp_bleu_kwh')|float(0) +
states('sensor.nr_energie_lave_linge_index_hp_rouge_kwh')|float(0)) |round(3) }}
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Ensuite tu redémarres HA, et tu pourras personnaliser le nom (Paramètres > Appareils et services > Entité > Nom de l'appareil) puis cliquer sur la roue cranté et donner un nom :
Messages : 3,392
Sujets : 39
Inscription : Mar 2013
Encore merci @aureOhwo, c'est parfait !
Messages : 446
Sujets : 23
Inscription : Feb 2020
01/04/2024, 17:47:57
(Modification du message : 01/04/2024, 17:49:09 par XeNo.)
(25/03/2024, 12:05:59)Ives a écrit : (24/03/2024, 11:51:13)XeNo a écrit : J'arrive à calculer un tarif tempo en simulant tout (j'ai la saisie des tarifs et je récupère le tarif tempo chez edf)
Et mes conso viennent des TE331 donc elles sont exposées sur HA.
Du coup, je ne comprends pas pourquoi il y a du Node Red ? Je ne comprends pas comment du récupères les consommations des 6 plages horaires du TE331 sans utiliser NR ?
Pour disposer des 6 index TEMPO, le TE331 doit être configuré en mode 6 octets (énergie et information tarifaire) ; chaque octet étant émis sur le bus à intervalle de 5 secondes, il faut ensuite "trier".
Le DPT utilisé est le 235.001 dont le format est le suivant :
Si tu as trouvé une solution plus simple je suis preneur.
Salut Ives,
Ca y est, j'ai enfin réussi !
Donc perso je rappelle, je suis en tarification classique et j'aimerai projeter du Tempo. Déjà pour voir la différence réélle sur ma conso, et aussi parce que le board Energy ne sait pas gérer le multitarifs (ou du moins je n'ai pas vu à quel endroit encore)
Donc en premier lieu, dans le configuration.yaml :
Code : homeassistant:
packages: !include_dir_named packages
input_number: !include input_number.yaml
rest: !include rest.yaml
- Le fichier input_number.yaml pour le calcul des coûts
Code : ####################################
# Input des tarifs Tempo
####################################
electricite_general_cout_actuel:
name: Cout Kwh en cours
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
electricite_general_cout_kwh_bleu_hp:
name: Cout Kwh Bleu HP
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
electricite_general_cout_kwh_bleu_hc:
name: Cout Kwh Bleu HC
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
electricite_general_cout_kwh_blanc_hp:
name: Cout Kwh Blanc HP
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
electricite_general_cout_kwh_blanc_hc:
name: Cout Kwh Blanc HC
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
electricite_general_cout_kwh_rouge_hp:
name: Cout Kwh Rouge HP
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
electricite_general_cout_kwh_rouge_hc:
name: Cout Kwh Rouge HC
mode: box
min: 0
max: 100
unit_of_measurement: "€/kWh"
icon: mdi:currency-eur
- Fichiers yaml dans packages
Alors voici un exemple d'un fichier yaml dans le repertoire package :
ici pour l'ECS :
Code : ################################################
### Energy_ecs.yaml ###
### Fichier d'integration des energies Tempo ###
### ###
### Mesure concernée = ECS ###
### Consommations et Couts ###
### - Journalier (6 Tarifs) ###
### - Hebdomadaire (6 Tarifs) ###
### - Mensuel (6 Tarifs) ###
### - Annuel (6 Tarifs) ###
### ###
################################################
############### SENSORS ###################
sensor:
- platform: template
sensors:
############### Total Energie Jour/Semaine/Mois/Année
###### Total journalier
energy_total_ecs_daily:
friendly_name: 'Energie totale journalière ECS consommée Tempo'
entity_id:
- sensor.energy_total_ecs_usage_daily_bleu_hp
- sensor.energy_total_ecs_usage_daily_bleu_hc
- sensor.energy_total_ecs_usage_daily_blanc_hp
- sensor.energy_total_ecs_usage_daily_blanc_hc
- sensor.energy_total_ecs_usage_daily_rouge_hp
- sensor.energy_total_ecs_usage_daily_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_daily_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_daily_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_daily_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_daily_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_daily_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_daily_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "kWh"
cout_total_ecs_daily:
friendly_name: 'Cout total journée ECS Tempo'
entity_id:
- sensor.energy_total_ecs_usage_daily_bleu_hp
- sensor.energy_total_ecs_usage_daily_bleu_hc
- sensor.energy_total_ecs_usage_daily_blanc_hp
- sensor.energy_total_ecs_usage_daily_blanc_hc
- sensor.energy_total_ecs_usage_daily_rouge_hp
- sensor.energy_total_ecs_usage_daily_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_daily_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_daily_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_daily_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_daily_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_daily_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_daily_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "€"
###### Total semaine
energy_total_ecs_weekly:
friendly_name: 'Energie totale semaine ECS consommée Tempo'
entity_id:
- sensor.energy_total_ecs_usage_weekly_bleu_hp
- sensor.energy_total_ecs_usage_weekly_bleu_hc
- sensor.energy_total_ecs_usage_weekly_blanc_hp
- sensor.energy_total_ecs_usage_weekly_blanc_hc
- sensor.energy_total_ecs_usage_weekly_rouge_hp
- sensor.energy_total_ecs_usage_weekly_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_weekly_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_weekly_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_weekly_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_weekly_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_weekly_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_weekly_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "kWh"
cout_total_ecs_weekly:
friendly_name: 'Cout total semaine ECS Tempo'
entity_id:
- sensor.energy_total_ecs_usage_weekly_bleu_hp
- sensor.energy_total_ecs_usage_weekly_bleu_hc
- sensor.energy_total_ecs_usage_weekly_blanc_hp
- sensor.energy_total_ecs_usage_weekly_blanc_hc
- sensor.energy_total_ecs_usage_weekly_rouge_hp
- sensor.energy_total_ecs_usage_weekly_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_weekly_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_weekly_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_weekly_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_weekly_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_weekly_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_weekly_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "€"
###### Total mensuel
energy_total_ecs_monthly:
friendly_name: 'Energie totale mensuelle ECS consommée Tempo'
entity_id:
- sensor.energy_total_ecs_usage_monthly_bleu_hp
- sensor.energy_total_ecs_usage_monthly_bleu_hc
- sensor.energy_total_ecs_usage_monthly_blanc_hp
- sensor.energy_total_ecs_usage_monthly_blanc_hc
- sensor.energy_total_ecs_usage_monthly_rouge_hp
- sensor.energy_total_ecs_usage_monthly_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_monthly_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_monthly_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_monthly_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_monthly_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_monthly_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_monthly_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "kWh"
cout_total_ecs_monthly:
friendly_name: 'Cout total mensuel ECS Tempo'
entity_id:
- sensor.energy_total_ecs_usage_monthly_bleu_hp
- sensor.energy_total_ecs_usage_monthly_bleu_hc
- sensor.energy_total_ecs_usage_monthly_blanc_hp
- sensor.energy_total_ecs_usage_monthly_blanc_hc
- sensor.energy_total_ecs_usage_monthly_rouge_hp
- sensor.energy_total_ecs_usage_monthly_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_monthly_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_monthly_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_monthly_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_monthly_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_monthly_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_monthly_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "€"
###### Total annuel
energy_total_ecs_yearly:
friendly_name: 'Energie totale annuelle ECS consommée Tempo'
entity_id:
- sensor.energy_total_ecs_usage_yearly_bleu_hp
- sensor.energy_total_ecs_usage_yearly_bleu_hc
- sensor.energy_total_ecs_usage_yearly_blanc_hp
- sensor.energy_total_ecs_usage_yearly_blanc_hc
- sensor.energy_total_ecs_usage_yearly_rouge_hp
- sensor.energy_total_ecs_usage_yearly_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_yearly_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_yearly_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_yearly_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_yearly_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_yearly_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_yearly_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "kWh"
cout_total_ecs_yearly:
friendly_name: 'Cout total annuel ECS Tempo'
entity_id:
- sensor.energy_total_ecs_usage_yearly_bleu_hp
- sensor.energy_total_ecs_usage_yearly_bleu_hc
- sensor.energy_total_ecs_usage_yearly_blanc_hp
- sensor.energy_total_ecs_usage_yearly_blanc_hc
- sensor.energy_total_ecs_usage_yearly_rouge_hp
- sensor.energy_total_ecs_usage_yearly_rouge_hc
value_template: "{{ (((states('sensor.energy_total_ecs_usage_yearly_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float) + (states('sensor.energy_total_ecs_usage_yearly_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float) + (states('sensor.energy_total_ecs_usage_yearly_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float) + (states('sensor.energy_total_ecs_usage_yearly_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float) + (states('sensor.energy_total_ecs_usage_yearly_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float) + (states('sensor.energy_total_ecs_usage_yearly_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float))/1000)|round(3) }}"
unit_of_measurement: "€"
############### Total Coûts par période Jour/Semaine/Mois/Année et par tarifs
############### TEMPO BLEU
###### Journalier
cout_total_ecs_daily_bleu_hp:
friendly_name: 'Coût journalier ECS Bleu HP'
entity_id:
- sensor.energy_total_ecs_usage_daily_bleu_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_daily_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_daily_bleu_hc:
friendly_name: 'Coût journalier ECS Bleu HC'
entity_id:
- sensor.energy_total_ecs_usage_daily_bleu_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_daily_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Hebdomadaire
cout_total_ecs_weekly_bleu_hp:
friendly_name: 'Coût hebdomadaire ECS Bleu HP'
entity_id:
- sensor.energy_total_ecs_usage_weekly_bleu_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_weekly_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_weekly_bleu_hc:
friendly_name: 'Coût hebdomadaire ECS Bleu HC'
entity_id:
- sensor.energy_total_ecs_usage_weekly_bleu_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_weekly_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Mensuel
cout_total_ecs_monthly_bleu_hp:
friendly_name: 'Coût mensuel ECS Bleu HP'
entity_id:
- sensor.energy_total_ecs_usage_monthly_bleu_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_monthly_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_monthly_bleu_hc:
friendly_name: 'Coût mensuel ECS Bleu HC'
entity_id:
- sensor.energy_total_ecs_usage_monthly_bleu_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_monthly_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Annuel
cout_total_ecs_yearly_bleu_hp:
friendly_name: 'Coût annuel ECS Bleu HP'
entity_id:
- sensor.energy_total_ecs_usage_yearly_bleu_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_yearly_bleu_hp')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_yearly_bleu_hc:
friendly_name: 'Coût annuel ECS Bleu HC'
entity_id:
- sensor.energy_total_ecs_usage_yearly_bleu_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_yearly_bleu_hc')|float)*(states('input_number.electricite_general_cout_kwh_bleu_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
############### TEMPO BLANC
###### Journalier
cout_total_ecs_daily_blanc_hp:
friendly_name: 'Coût journalier ECS Blanc HP'
entity_id:
- sensor.energy_total_ecs_usage_daily_blanc_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_daily_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_daily_blanc_hc:
friendly_name: 'Coût journalier ECS Blanc HC'
entity_id:
- sensor.energy_total_ecs_usage_daily_blanc_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_daily_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Hebdomadaire
cout_total_ecs_weekly_blanc_hp:
friendly_name: 'Coût hebdomadaire ECS Blanc HP'
entity_id:
- sensor.energy_total_ecs_usage_weekly_blanc_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_weekly_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_weekly_blanc_hc:
friendly_name: 'Coût hebdomadaire ECS Blanc HC'
entity_id:
- sensor.energy_total_ecs_usage_weekly_blanc_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_weekly_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Mensuel
cout_total_ecs_monthly_blanc_hp:
friendly_name: 'Coût mensuel ECS Blanc HP'
entity_id:
- sensor.energy_total_ecs_usage_monthly_blanc_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_monthly_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_monthly_blanc_hc:
friendly_name: 'Coût mensuel ECS Blanc HC'
entity_id:
- sensor.energy_total_ecs_usage_monthly_blanc_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_monthly_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Annuel
cout_total_ecs_yearly_blanc_hp:
friendly_name: 'Coût annuel ECS Blanc HP'
entity_id:
- sensor.energy_total_ecs_usage_yearly_blanc_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_yearly_blanc_hp')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_yearly_blanc_hc:
friendly_name: 'Coût annuel ECS Blanc HC'
entity_id:
- sensor.energy_total_ecs_usage_yearly_blanc_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_yearly_blanc_hc')|float)*(states('input_number.electricite_general_cout_kwh_blanc_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
############### TEMPO ROUGE
###### Journalier
cout_total_ecs_daily_rouge_hc:
friendly_name: 'Coût journalier ECS Rouge HC'
entity_id:
- sensor.energy_total_ecs_usage_daily_rouge_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_daily_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_daily_rouge_hp:
friendly_name: 'Coût journalier ECS Rouge HP'
entity_id:
- sensor.energy_total_ecs_usage_daily_rouge_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_daily_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Hebdomadaire
cout_total_ecs_weekly_rouge_hp:
friendly_name: 'Coût hebdomadaire ECS Rouge HP'
entity_id:
- sensor.energy_total_ecs_usage_weekly_rouge_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_weekly_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_weekly_rouge_hc:
friendly_name: 'Coût hebdomadaire ECS Rouge HC'
entity_id:
- sensor.energy_total_ecs_usage_weekly_rouge_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_weekly_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Mensuel
cout_total_ecs_monthly_rouge_hp:
friendly_name: 'Coût mensuel ECS Rouge HP'
entity_id:
- sensor.energy_total_ecs_usage_monthly_rouge_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_monthly_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_monthly_rouge_hc:
friendly_name: 'Coût mensuel ECS Rouge HC'
entity_id:
- sensor.energy_total_ecs_usage_monthly_rouge_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_monthly_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Annuel
cout_total_ecs_yearly_rouge_hp:
friendly_name: 'Coût annuel ECS Rouge HP'
entity_id:
- sensor.energy_total_ecs_usage_yearly_rouge_hp
value_template: "{{ ((states('sensor.energy_total_ecs_usage_yearly_rouge_hp')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hp')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
cout_total_ecs_yearly_rouge_hc:
friendly_name: 'Coût annuel ECS Rouge HC'
entity_id:
- sensor.energy_total_ecs_usage_yearly_rouge_hc
value_template: "{{ ((states('sensor.energy_total_ecs_usage_yearly_rouge_hc')|float)*(states('input_number.electricite_general_cout_kwh_rouge_hc')|float)/1000)|round(3) }}"
unit_of_measurement: "€"
###### Creation des variables d'energie en kwh
###### Journalier
energy_total_ecs_usage_daily_bleu_hp_kwh:
friendly_name: "Energie Jour ECS Bleu HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_daily_bleu_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_daily_bleu_hc_kwh:
friendly_name: "Energie Jour ECS Bleu HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_daily_bleu_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_daily_blanc_hp_kwh:
friendly_name: "Energie Jour ECS Blanc HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_daily_blanc_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_daily_blanc_hc_kwh:
friendly_name: "Energie Jour ECS Blanc HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_daily_blanc_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_daily_rouge_hp_kwh:
friendly_name: "Energie Jour ECS Rouge HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_daily_rouge_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_daily_rouge_hc_kwh:
friendly_name: "Energie Jour ECS Rouge HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_daily_rouge_hc.state | float) /1000) | round(2) }}'
###### Hebdomadaire
energy_total_ecs_usage_weekly_bleu_hp_kwh:
friendly_name: "Energie Semaine ECS Bleu HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_weekly_bleu_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_weekly_bleu_hc_kwh:
friendly_name: "Energie Semaine ECS Bleu HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_weekly_bleu_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_weekly_blanc_hp_kwh:
friendly_name: "Energie Semaine ECS Blanc HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_weekly_blanc_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_weekly_blanc_hc_kwh:
friendly_name: "Energie Semaine ECS Blanc HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_weekly_blanc_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_weekly_rouge_hp_kwh:
friendly_name: "Energie Semaine ECS Rouge HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_weekly_rouge_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_weekly_rouge_hc_kwh:
friendly_name: "Energie Semaine ECS Rouge HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_weekly_rouge_hc.state | float) /1000) | round(2) }}'
###### Mensuel
energy_total_ecs_usage_monthly_bleu_hp_kwh:
friendly_name: "Energie Mois ECS Bleu HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_monthly_bleu_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_monthly_bleu_hc_kwh:
friendly_name: "Energie Mois ECS Bleu HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_monthly_bleu_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_monthly_blanc_hp_kwh:
friendly_name: "Energie Mois ECS Blanc HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_monthly_blanc_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_monthly_blanc_hc_kwh:
friendly_name: "Energie Mois ECS Blanc HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_monthly_blanc_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_monthly_rouge_hp_kwh:
friendly_name: "Energie Mois ECS Rouge HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_monthly_rouge_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_monthly_rouge_hc_kwh:
friendly_name: "Energie Mois ECS Rouge HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_monthly_rouge_hc.state | float) /1000) | round(2) }}'
###### Annuel
energy_total_ecs_usage_yearly_bleu_hp_kwh:
friendly_name: "Energie Annee ECS Bleu HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_yearly_bleu_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_yearly_bleu_hc_kwh:
friendly_name: "Energie Annee ECS Bleu HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_yearly_bleu_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_yearly_blanc_hp_kwh:
friendly_name: "Energie Annee ECS Blanc HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_yearly_blanc_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_yearly_blanc_hc_kwh:
friendly_name: "Energie Annee ECS Blanc HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_yearly_blanc_hc.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_yearly_rouge_hp_kwh:
friendly_name: "Energie Annee ECS Rouge HP kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_yearly_rouge_hp.state | float) /1000) | round(2) }}'
energy_total_ecs_usage_yearly_rouge_hc_kwh:
friendly_name: "Energie Annee ECS Rouge HC kWh"
unit_of_measurement: "kWh"
device_class: energy
value_template: '{{ ((states.sensor.energy_total_ecs_usage_yearly_rouge_hc.state | float) /1000) | round(2) }}'
############### UTILITY METERS #################
utility_meter:
###### Total journalier
energy_total_ecs_usage_daily:
source: sensor.energie_totale_ecs
name: "Energie Journaliere Tempo ECS"
cycle: daily
tariffs:
- Bleu HP
- Bleu HC
- Blanc HP
- Blanc HC
- Rouge HP
- Rouge HC
###### Total hebdomadaire
energy_total_ecs_usage_weekly:
source: sensor.energie_totale_ecs
name: "Energie hebdomadaire Tempo ECS"
cycle: weekly
tariffs:
- Bleu HP
- Bleu HC
- Blanc HP
- Blanc HC
- Rouge HP
- Rouge HC
###### Total mensuel
energy_total_ecs_usage_monthly:
source: sensor.energie_totale_ecs
name: "Energie mensuelle Tempo ECS"
cycle: monthly
tariffs:
- Bleu HP
- Bleu HC
- Blanc HP
- Blanc HC
- Rouge HP
- Rouge HC
###### Total annuel
energy_total_ecs_usage_yearly:
source: sensor.energie_totale_ecs
name: "Energie annuelle Tempo ECS"
cycle: yearly
tariffs:
- Bleu HP
- Bleu HC
- Blanc HP
- Blanc HC
- Rouge HP
- Rouge HC
Côté explication, c'est simple, cela me crée mes templates de sensor :
D'abord tous les totaux puissances et coûts pour le jour/semaine/mois/annee
- energy_total_ecs_daily
- cout_total_ecs_daily
- energy_total_ecs_weekly
- cout_total_ecs_weekly
- energy_total_ecs_monthly
- cout_total_ecs_monthly
- energy_total_ecs_yearly
- cout_total_ecs_yearly
Puis les coûts totaux par périodes BLEU/BLANC/ROUGE (ici juste BLEU pour le principe)
- cout_total_ecs_daily_bleu_hp
- cout_total_ecs_daily_bleu_hc
- cout_total_ecs_weekly_bleu_hp
- cout_total_ecs_weekly_bleu_hc
- cout_total_ecs_monthly_bleu_hp
- cout_total_ecs_monthly_bleu_hc
- cout_total_ecs_yearly_bleu_hp
- cout_total_ecs_yearly_bleu_hc
Ensuite je convertis les sensors de consommations de l'utility_meter qui sont en Wh en kWh
ici uniquement le journalier, mais il faut la même chose pour chaque cycle
- energy_total_ecs_usage_daily_bleu_hp_kwh
- energy_total_ecs_usage_daily_bleu_hc_kwh
- energy_total_ecs_usage_daily_blanc_hp_kwh
- energy_total_ecs_usage_daily_blanc_hc_kwh
- energy_total_ecs_usage_daily_rouge_hp_kwh
- energy_total_ecs_usage_daily_rouge_hc_kwh
Et enfin les utility_meter à mesurer :
Ce qui compte ici c'est la source de la mesure, qui vient des mesures knx d'un TE331, sensor.energie_totale_ecs pour moi pour ce fichier là
- energy_total_ecs_usage_daily
- energy_total_ecs_usage_weekly
- energy_total_ecs_usage_monthly
- energy_total_ecs_usage_yearly
Il faut ensuite multiplier ce fichier par le nombre de mesures, et renommer ECS sur la cible concernées (Prises, Froid, Lumières, etc.)
Viens ensuite la partie déclenchement, j'ai buté quelque temps pour essayer de passer une variable mais quelque chose ne va pas donc j'ai fait autrement.
J'ai donc 6 Automations comme celles-ci :
- Tempo HC Bleu
- Tempo HP Bleu
- Tempo HC Blanc
- Tempo HP Blanc
- Tempo HC Rouge
- Tempo HP Rouge
Exemple pour Tempo HC Bleu :
Code : alias: Tempo HC Bleu
description: ""
trigger:
- platform: time
at: "22:00:00"
variables:
tariff: Bleu HC
condition:
- condition: state
entity_id: sensor.tempo_aujourd_hui
state: BLEU
action:
- service: select.select_option
target:
entity_id: select.energy_total_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_ecs_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_ecs_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_ecs_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_ecs_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lt_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lt_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lt_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lt_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lumieres_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lumieres_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lumieres_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_lumieres_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_prises_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_prises_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_prises_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_prises_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_groupesfroid_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_groupesfroid_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_groupesfroid_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_groupesfroid_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrocuisine_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrocuisine_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrocuisine_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrocuisine_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrobuanderie_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrobuanderie_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrobuanderie_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_electrobuanderie_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffage_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffage_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffage_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffage_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagevmc_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagevmc_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagevmc_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagevmc_usage_yearly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagesdb_usage_daily
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagesdb_usage_weekly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagesdb_usage_monthly
data:
option: "{{ tariff }}"
- service: select.select_option
target:
entity_id: select.energy_total_chauffagesdb_usage_yearly
data:
option: "{{ tariff }}"
mode: single
- Les récupérations des infos Tempo
Le fichier rest.yaml :
Code : - resource_template: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
scan_interval: 21600
sensor:
- name: "Tempo Demain"
value_template: "{{ value_json['couleurJourJ1']|regex_replace(find='^TEMPO_', replace='') }}"
- name: "Tempo Aujourd'hui"
value_template: "{{ value_json['couleurJourJ']|regex_replace(find='^TEMPO_', replace='') }}"
- resource: https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
scan_interval: 21600
sensor:
- name: "Jours Rouge restants"
value_template: "{{ value_json.PARAM_NB_J_ROUGE }}"
- name: "Jours Blanc restants"
value_template: "{{ value_json.PARAM_NB_J_BLANC }}"
- name: "Jours Bleu restants"
value_template: "{{ value_json.PARAM_NB_J_BLEU }}"
Et enfin, le dashboard associé à tout cela :
Voilà pour moi, sans usage de nodered du tout du coup. (J'ai toujours pas compris à quoi ça servait )
|