Bonjour,
je ne peux pas créer des tutos, mais je voulais quand même partager ma solution pour avoir le coût par device en plus du lixee ou autre moniteur de linky.
Note: c’est actuellement en test, pour le moment j’ai ajouter la remonter du lixee dans mon dashboard energy pour m’assurée que la conso total corresponds bien a 2x ma conso réel (a une vache près ^^)
alors voila le tuto:
Etape 1: creer les entity qui nous seront utils
pour cela allez dans paramètre/Appareils et services/entrées
A) On va creer une entité de type texte pour sauvegarder la consommation total de nos devices
je lui donne le nom de « Consommation électrique par devices »
cela donnera l’entity id suivant : input_text.consommation_electrique_par_devices (cela sera utiles plu tard)
Note: j’ai utilisé un input text car je n’ai pas vraiment a me soucier de la longueur du nombre max
B) On va creer une entité de type texte pour sauvegarder la différence entre notre consommation total du lixee et notre consommation total par device (point A)
je lui donne le nom de « Consommation électrique autre value »
cela donnera l’entity id suivant : input_text.consommation_electrique_autre_value (cela sera utiles plu tard)
Note: j’ai utilisé un input text car je n’ai pas vraiment a me soucier de la longueur du nombre max
C) On va creer une entité de type template pour creer une entity energy pour le dashboard energy qui reposera sur l’input text du point B
je lui donne le nom de « Consommation électrique autre energy » (qui pourra etre renommé plu tard)
il faut ensuite choisir : Modéliser un capteur
Nom : Consommation électrique autre energy
Modèle d’état : {{ states('input_text.consommation_electrique_autre_value') | float }}
Unité de mesure : kWh
Classe d’appareil: Energie
classe d’état: Total en augmentation
cela donnera l’entity id suivant : sensor.consommation_electrique_autre_energy (cela sera utiles plu tard)
Etape 2: l’automatisation
alias: 0000-Compteur-Energy-Calculator
description: ""
trigger:
- platform: state
entity_id:
- sensor.compteur_electrique_base
condition: []
action:
- variables:
listkwh: >-
{{ states.sensor | selectattr('attributes.unit_of_measurement',
'equalto', 'kWh') | rejectattr('entity_id', 'eq',
'sensor.consommation_electrique_autre_energy') | rejectattr('entity_id',
'search', 'sensor.compteur_electrique*') | rejectattr('entity_id',
'search', 'sensor.compteur_gaz*') | rejectattr('entity_id', 'search',
'sensor.compteur_eau*') | map(attribute="entity_id") | list }}
oldconso: "{{ states('input_text.consommation_electrique_autre_value') | float }}"
- service: input_text.set_value
data:
value: "0"
target:
entity_id: input_text.consommation_electrique_par_devices
- repeat:
sequence:
- if:
- condition: not
conditions:
- condition: template
value_template: "{{ states(repeat.item) == 'unavailable' }}"
enabled: true
- condition: template
value_template: "{{ states(repeat.item) == 'unknown' }}"
enabled: true
- condition: template
value_template: "{{ states(repeat.item) == 'none' }}"
enabled: true
- condition: not
conditions:
- condition: template
value_template: >-
{{ states('input_text.consommation_electrique_par_devices')
== 'unavailable' }}
- condition: template
value_template: >-
{{ states('input_text.consommation_electrique_par_devices')
== 'unknown' }}
- condition: template
value_template: >-
{{ states('input_text.consommation_electrique_par_devices')
== 'none' }}
enabled: true
then:
- service: input_text.set_value
data:
value: >-
{{ states(repeat.item) | float +
states('input_text.consommation_electrique_par_devices') |
float | round(3) }}
target:
entity_id: input_text.consommation_electrique_par_devices
else:
- stop: calcule faussé, car un appareil est indisponible
error: true
for_each: "{{ listkwh }}"
- condition: template
value_template: |-
{{ oldconso < (states('sensor.compteur_electrique_base') | float -
states('input_text.consommation_electrique_par_devices') | float) | round(3) | abs }}
- service: input_text.set_value
data:
value: >-
{{ (states('sensor.compteur_electrique_base') | float -
states('input_text.consommation_electrique_par_devices') | float) |
round(3) | abs }}
target:
entity_id: input_text.consommation_electrique_autre_value
mode: single
sensor.compteur_electrique_base => c’est le sensor de la consommation total remonté par votre lixee a vous de mettre votre sensor
si vous avez respecté les mêmes nom que moi alors c’est tout sinon ajuster a coup de replace les entity id
Note : la variable listkwh contient la liste de tout vos devices qui on l’attribute unit_of_measurement sur la valeur kWh, a l’exception des sensors commençant par sensor.compteur_electrique, sensor.compteur_gaz, sensor.compteur_eau et du sensor créer qui contient la soustraction entre le lixee et vos devices (consommation_electrique_autre_energy)
une fois bien tout remplacer avez les entity dans l’automatisation, vous n’avez plus qu’a retirer le tota lixee du dashboard energy, mettre tout vos devices dans consommation et d’ajouter le sensor créér dans ce tuto.
ainsi vous aurez votre consommation total de tout vos appareils et la différence de consommation se trouvera dans le sensor consommation_electrique_autre_energy, et biensur le prix pour chacun
Recommandation:
supprimer les entity temporaire de l’historisation, pour cela editer le fichier configuration.yaml et ajouter :
recorder:
exclude:
entities:
- input_text.consommation_electrique_par_devices
- input_text.consommation_electrique_autre_value
si vous voulez purger les entitées manuellement, vous pouvez jouer cette automatisation ou la planifier si vous ne voulez pas supprimer ces entitées du record
alias: 0000-Purge-Record
description: ""
trigger: []
condition: []
action:
- service: recorder.purge_entities
data:
domains: []
entity_globs: []
keep_days: 0
enabled: true
target:
entity_id:
- input_text.consommation_electrique_autre_value
- input_text.consommation_electrique_par_devices
mode: single
Edite 12/02/2024 à 12:01 => ajout recommandation pour l’historisation des données temporaire
Edite 12/02/2024 à 18:38 => Version 2 => ajout de round(3) dans le calcule du script + abs pour avoir la valeur absolue (dans le cas ou le compteur a une valeur inferieur au total des devices
Edite 14/02/2024 à 21:00 => ajout d’indication si le lixee est en mode standard
Edite 27/02/2024 à 19:22 => modification des script version 1 afin d’ajouter un contrôle d’état (unavailable et unknown) sur les entités ajouté + une modification dans la liste d’exclusion, tout les sensor commençant par sensor.compteur_electrique, sensor.compteur_gaz, sensor.compteur_eau seront excluent + suppression de la version 2
Edite 29/02/2024: add check none
Edite 02/03/2024: ajout d’un arrêt du script si l’une des entité n’est pas disponible, pour ne pas faussé le calcule