Calcul consommation énergie

Mon problème

  • Bonsoir tout le monde,
    Je viens vous demander un peu d’aide sur mon nouveau projet,
    En effet, je souhaite faire le calcul journalier, hebdomadaire, mensuel et annuel de ma consommation électrique,
    Pour ce faire j’utilise le module Zlinky_TIC, les données transitent par mosquitto (docker) puis par zigbee2mqtt (également docker). Les informations remontent sans aucun souci,
    Depuis Home Assistant, j’ai un premier fichier template.yaml dont voici le contenu:
- platform: template
  sensors:
    # Consommation électrique #
    # Daily energy
    daily_total_energy:
      friendly_name: "Energie journalière consommée"
      unit_of_measurement: "kWh"
      value_template: "{{ (states('sensor.daily_energy_easf02_hp')) | float(0) + (states('sensor.daily_energy_easf01_hc')) | float(0) | round(2) }}"
    # Weekly energy
    weekly_total_energy:
      friendly_name: "Energie hebdomadaire consommée"
      unit_of_measurement: "kWh"
      value_template: "{{ (states('sensor.weekly_energy_easf02_hp')) | float(0) + (states('sensor.weekly_energy_easf01_hc')) | float(0) | round(2) }}"
    # Monthly energy
    monthly_total_energy:
      friendly_name: "Energie mensuelle consommée"
      unit_of_measurement: "kWh"
      value_template: "{{ (states('sensor.monthly_energy_easf02_hp')) | float(0) + (states('sensor.monthly_energy_easf01_hc')) | float(0) | round(2) }}"
    # Yearly energy
    yearly_total_energy:
      friendly_name: "Energie annuelle consommée"
      unit_of_measurement: "kWh"
      value_template: "{{ (states('sensor.yearly_energy_easf02_hp')) | float(0) + (states('sensor.yearly_energy_easf01_hc')) | float(0) | round(2) }}"

Puis un second fichier utility_meter.yaml:

# Consommation jour / semaine / mois / année #
# Daily energy heure pleine
daily_energy_easf02:
  source: sensor.zlinky_tic_easf02
  name: Daily Energy HP
  cycle: daily
  tariffs:
    - hp
# Daily energy heure creuse
daily_energy_easf01:
  source: sensor.zlinky_tic_easf01
  name: Daily Energy HC
  cycle: daily
  tariffs:
    - hc
# Weekly energy heure pleine
weekly_energy_easf02:
  source: sensor.zlinky_tic_easf02
  name: Weekly Energy HP
  cycle: weekly
  tariffs:
    - hp
# Weekly energy heure creuse
weekly_energy_easf01:
  source: sensor.zlinky_tic_easf01
  name: Weekly Energy HC
  cycle: weekly
  tariffs:
    - hc
# Monthly energy heure pleine
monthly_energy_easf02:
  source: sensor.zlinky_tic_easf02
  name: Monthly Energy HP
  cycle: monthly
  tariffs:
    - hp
# Monthly energy heure creuse
monthly_energy_easf01:
  source: sensor.zlinky_tic_easf01
  name: Monthly Energy HC
  cycle: monthly
  tariffs:
    - hc
# Yearly energy heure pleine
yearly_energy_easf02:
  source: sensor.zlinky_tic_east02
  name: Yearly Energy HP
  cycle: yearly
  tariffs:
    - hp
# Yearly energy heure creuse
yearly_energy_easf01:
  source: sensor.zlinky_tic_east01
  name: Yearly Energy HC
  cycle: yearly
  tariffs:
    - hc

Voici le rendu depuis mon Dashboard:

On peut ce rendre comte que la consommation hebdomadaire et annuelle n’est pas du tout cohérente; je ne comprends pas pourquoi et comment je peux résoudre ça,

Merci pour retours,
Au plaisir, bonne soirée,
*

Ma configuration


System Information

version core-2023.10.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.5
os_name Linux
os_version 6.1.45
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4996
Installed Version 1.33.0
Stage running
Available Repositories 1306
Downloaded Repositories 14
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 10.5
update_channel stable
supervisor_version supervisor-2023.10.0
agent_version 1.5.1
docker_version 23.0.6
disk_total 30.8 GB
disk_used 6.9 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.7.1), Studio Code Server (5.11.0)
Dashboards
dashboards 2
resources 8
views 19
mode storage
Recorder
oldest_recorder_run 7 octobre 2023 à 15:04
current_recorder_run 8 octobre 2023 à 22:45
estimated_db_size 565.32 MiB
database_engine sqlite
database_version 3.41.2
___
1 « J'aime »

Bonjour,
moi j’additionne les indexes HP + HC et fait un utility_meter avec le tarif hp et hc.

le template sensor:

    - name: zlinky_metering_HC_HP_sum
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: >-
          {% set HC = states('sensor.0x00158d0005d299cf_hchc')|float(default=0)*1000 %}
          {% set HP = states('sensor.0x00158d0005d299cf_hchp')|float(default=0)*1000 %}
          {{ HC + HP | int(default=0) }}
      availability: "{{ states('sensor.0x00158d0005d299cf_hchc')|is_number and states('sensor.0x00158d0005d299cf_hchp')|is_number }}"

l’utility_meter:

energie_quotidienne_home:
  source: sensor.zlinky_metering_hc_hp_sum
  cycle: daily
  tariffs:
    - hp
    - hc

l’automatisation pour changer de tarif:

alias: Energie Maison Tarif
description: ""
trigger:
  - platform: time
    at: "04:56:00"
    variables:
      tariff: hp
  - platform: time
    at: "20:56:00"
    variables:
      tariff: hc
condition: []
action:
  - service: select.select_option
    target:
      entity_id:
        - select.energie_quotidienne_home
    data:
      option: "{{ tariff }}"
mode: single

et l’addition des hp +hc de l’utility_meter, le template sensor:

    - name: 'Energie home jour consommée'
      unique_id: energy_home_total_daily
      unit_of_measurement: "Wh"
      state: "{{ (states('sensor.energie_quotidienne_home_hp')|float(0) + states('sensor.energie_quotidienne_home_hc')|float(0)) |round(2) }}"
      availability: "{{ states('sensor.energie_quotidienne_home_hp')|is_number and states('sensor.energie_quotidienne_home_hc')|is_number }}"

Conseille, utilise dans t’es template l’option availability: pour eviter des erreurs de calcul quand tu fait un reboot.

Bonsoir @WarC0zes,

Merci pour ta réponse,

J’ai deux questions qui me viennent à l’esprit:

  • Quelle est la fonction/utilitée de l’option availability en règle générale ?
    Dans ton automatisation concernant la partie trigger, pourquoi tu n’utilises pas le current_price pour passer du tarif heure pleine au tarif heure creuse automatiquement ?

  • Est-ce que tu vois une/des erreur(s) dans ce que j’ai fait ? Je viens de me rendre compte en te lisant, que je n’ai pas créé d’automatisation pour le changement de tarification,

Merci,
Bonne soirée,

C’est expliquer dans la doc.

Car je découper les HP et HC, les trigger déclenche le changement de tarif suivant l’heure.
après je fais le calcul du prix avec un template sensor

    - name: 'Energie home jour € hp+hc'
      unique_id: energy_home_cout_daily
      unit_of_measurement: "€"
      state: "{{ (((states('sensor.energie_quotidienne_home_hp')|float(0))*states('input_number.prix_hp')|float(0)) + ((states('sensor.energie_quotidienne_home_hc')|float(0))*states('input_number.prix_hc')|float(0))) /1000 |round(3) }}"
      availability: "{{ states('sensor.energie_quotidienne_home_hp')|is_number and states('sensor.energie_quotidienne_home_hc')|is_number and states('input_number.prix_hp')|is_number and states('input_number.prix_hc')|is_number }}"

j’ai deux input_number pour les tarifs input_number.prix_hpet input_number.prix_hc.

si je regarde ta config, vu que tu utilise l’index hp et hc source je vois pas l’intérêt d’utiliser l’option tarif. le calcul tu le fais d’un Template.
Comme je t’es dit dans mon message précèdent, j’ai additionner mes HP et HC. J’ai une seule entité qui sera gérer par utility_meter pour découper les hp et hc avec leur tarif respectif. Dans ce cas faut faire une automatisation pour dire quand change le tarif.

Très bien, merci beaucoup pour toutes ces précisions,
Je vais revoir ma copie dans la soirée,

Au plaisir,
Bonne soirée,

Hello @Thomas_Mary ,

Une question (sans vouloir pourrir ton post), avec quelle carte fais tu les input_numbers avec les flèches verticales ? Merci
question

Bonsoir @Ludoc ,

Pas de problème, tu ne pourris pas mon post du tout,
J’ai seulement créé mon fichier input_number.yaml puis renseigné mes données,
Une fois enregistré puis avoir redémarré mon HomeAssistant, j’ai ajouté ce type de carte:

Capture d’écran 2023-10-09 à 22.06.02

Si t’as besoin d’autres renseignements, tu sais où me trouver :slight_smile:

Merci pour la carte entities, mais c’était plus savoir comment tu avais fait les fléches . J’ai cherché et pas trouvé quelque chose d’approchant.

Salut,

Voici un exemple de mon fichier input_number.yaml:

Capture d’écran 2023-10-10 à 09.01.35

Tu peux remarquer qu’il y a un plusieurs informations en-dessous de l’entité: name, initial, min, max, step, mode, icon et unit of measurement,
De souvenir, c’est grâce à mode: box que j’ai un tel affichage sur mon Dashboard,

Au plaisir,
Bonne journée,

Bonjour,
ta mal compris.

Ta carte, avec des input_number ou les flèches sont apparentes.
question

Chez moi, je n’est pas les flèches afficher en permance. Faut passer la souris dans le sélecteur pour quelle apparaissent.
input number box2

As tu modifier quelque chose d’autre pour que les flèches du selecteur soit afficher tout le temps et pas cacher ?

Nope je n’ai rien modifié, j’ai juste ajouté l’entité dans la carte citée plus haut

Ta un thème autre que celui par défaut ?

Nope aucun thème installé, je n’ai pas grand chose pour le moment sur mon HomeAssistant