[Tuto] Calcul consomation et coûts d'un appareil electrique en mode HP/HC

Le contexte:

Il y a quelques semaines, je suis tombé sur l’article de @Sigalou (www) qui montre comment suivre la consommation électrique d’un appareil électroménager à l’aide d’un prise connectée.

C’était la première intégration dans mon tableau de bord. J’ai raté, j’ai recommencé, j’ai râler (beaucoup), mais j’y ai surtout beaucoup appris. Merci @Sigalou et tout ceux qui prennent du temps pour partager leur savoir.

Le problème:

Le capteur qui calcul le coût d’un cycle se base sur un prix kWh unique.

Dans mon cas, j’ai un abonnement avec des prix qui varient en fonction de plages horaires heures creuse (HC) et heures pleines (HP). Du coup, comment puis-je calculer de manière fiable le coût d’un cycle d’une machine à laver (par exemple) en fonction de l’heure de début et de fin de cycle ? Et si le cycle débute en HP et se termine en HC ? et si et si…

En voila un beau challenge !

Une solution:

Voici les modifications que j’ai faite pour le coût d’un cycle tienne compte des HC/HP.

Les prérequis:

  • 2 entrées de type « Nombre » pour enregistrer le prix du kWh en HC/HP
  • 2 entrées de type « Nombre » pour sauvegarder la consommation du dernier cycle de l’appareil électroménager
  • 1 entrée de type « Compteur de services publics » pour enregistrer en temp réél la consomation du cycle de l’appareil électroménager en fonction de la plage horaire
  • 2 automatisations pour basculer le « Compteur de services publics » en HC/HP en fonction de l’heure

1°) Définir le prix du kWh en HC/HP avec 2 entrées numériques (input number):

  • Paramètres > Appareils et services > Onglet Entrées > Créer une entrée
  • Choisir « Nombre »

Les informations à modifier sont les suivantes:

  • Nom: le nom de l’entrée en fonction de vos habitudes de notation pour les HC
  • Paramètres avancés: choisir « Champ de saisie » et définir l’unité de mesure en €

Faire de meme pour créer l’entrée « nombre » pour les HP

Lorsqu’elles sont crées, cliquer sur chacune des entrées pour définir le prixde vos HC et HP.

2°) Créer 2 entrées numériques (input number) pour enregistrer les consommations en fin de cycle

  • Paramètres > Appareils et services > Onglet Entrées > Créer une entrée
  • Choisir « Nombre »

Les informations à modifier sont les suivantes:

  • Nom: le nom de l’entrée en fonction de vos habitudes de notation pour les HC
  • Paramètres avancés: choisir « Champ de saisie » et définir l’unité de mesure en kWh

Faire de meme pour créer l’entrée « nombre » pour les HP

3°) Gérer le problème HC/HP avec un Compteur de service (utility meter):

  • Paramètres > Appareils et services > Onglet Entrées > Créer une entrée
  • Choisir « Compteur de services publics »

Les informations à modifier sont les suivantes:

  • Nom: le nom du compteur de service en fonction de vos habitudes de notation
  • Capteur d’entrée: choisir le capteur de votre prise connectée qui mesure l’énergie consommé en kWh.
  • Cycle de remise à zéro: Pas de cycle
  • Tarifs pris en charge: hc et hp (à entrer manuellement)

Valider pour enregistrer les modifications. 3 nouvelles entrées sont créés:

  • Une entrée de type select dans laquelle on sélectionne si on est en HC ou HP.
  • 2 entrées de type capteur. Elles enregistreront l’energie consommé en fonction de la valeur de l’entrée précédente.

4°) Gérer le passage HC/HP avec des automatisations:

Dans mon cas, les plages horaires HC/HP sont les suivantes:

  • HC: de 1h40 à 7h10 et de 12h10 à 14h40
  • HP: le reste du temps

J’ai créé les 2 automatisations suivantes:

  • Passage en HC
alias: Machine à Laver - Passer en tarif HC
description: ""
triggers:
  - trigger: time
    at: "01:40:00"
  - trigger: time
    at: "12:10:00"
conditions: []
actions:
  - action: select.select_option
    data:
      option: hc
    target:
      entity_id:
        - select.machine_a_laver_energy
mode: single
  • Passage en HP
alias: Machine à Laver - Passer en tarif HP
description: ""
triggers:
  - trigger: time
    at: "07:10:00"
  - trigger: time
    at: "14:40:00"
conditions: []
actions:
  - action: select.select_option
    data:
      option: hp
    target:
      entity_id: select.machine_a_laver_energy
mode: single

5°) Enregistrer la consommation HC/HP à la fin d’un cycle et reset du compteur de service

Dans l’automatisation de fin de cycle (« Cycle lave-vaisselle - Fin » dans l’article original), il faudra remplacer:

actions:
  - action: input_number.set_value
    data:
      entity_id: input_number.dernier_cycle_lave_vaisselle_conso_a_la_fin
      value: "{{ states('sensor.lave_vaisselle_energy') | float }}"
    alias: Sauvegarder la conso à la fin

par:

 actions:
  - action: input_number.set_value
    data:
      value: "{{ states('sensor.machine_a_laver_energy_hc') | float(0) }}"
    target:
      entity_id: input_number.machine_a_laver_dernier_cycle_kwh_hc
  - action: input_number.set_value
    data:
      value: "{{ states('sensor.machine_a_laver_energy_hp') | float(0) }}"
    target:
      entity_id: input_number.machine_a_laver_dernier_cycle_kwh_hp
  - action: utility_meter.reset
    target:
      entity_id: select.machine_a_laver_energy

6°) Affichage dans le Tableau de bord avec des cartes mushroom template:
image

Conso dernier cycle

type: custom:mushroom-template-card
primary: Conso dernier cycle
secondary: >
  {{ ( states('input_number.machine_a_laver_dernier_cycle_kwh_hc') | float(0) +
  states('input_number.machine_a_laver_dernier_cycle_kwh_hp') | float(0) ) |
  round(2) }} kWh
icon: mdi:lightning-bolt-circle
features_position: bottom
tap_action:
  action: none
icon_tap_action:
  action: none
color: goldenrod

Coût dernier cycle

type: custom:mushroom-template-card
primary: Coût dernier cycle
secondary: >-
  {{ ( states('input_number.machine_a_laver_dernier_cycle_kwh_hc') | float(0) *
  states('input_number.prix_kwh_hc') | float(0) +
  states('input_number.machine_a_laver_dernier_cycle_kwh_hp') | float(0) *
  states('input_number.prix_kwh_hp') | float(0) ) | round(2) }} €
icon: mdi:currency-eur
features_position: bottom
tap_action:
  action: none
icon_tap_action:
  action: none
color: goldenrod

Bonus: Si vous avez un compteur Linky avec un Module TIC, vous devriez avoir un capteur LTARF qui indique si vous êtes en « HEURE CREUSE » ou en « HEURE PLEINE »
image

Dans ce cas, vous pouvez remplacer les 2 automatisations du 4°) par une seule.

alias: Energy - Passage en HC/HP
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.jardin_parking_linky_current_price
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            state:
              - HEURE CREUSE
            entity_id: sensor.jardin_parking_linky_current_price
        sequence:
          - action: select.select_option
            data:
              option: hc
            target:
              entity_id: select.machine_a_laver_energy
      - conditions:
          - condition: state
            entity_id: sensor.jardin_parking_linky_current_price
            state:
              - HEURE PLEINE
        sequence:
          - action: select.select_option
            data:
              option: hp
            target:
              entity_id: select.machine_a_laver_energy
mode: single
2 « J'aime »

Merci aussi de ton partage. Juste une question, si tu as un compteur Linky, tu pourrais récupérer automatiquement l’information HC/HP.

Tu as raison, c’est une autre possibilité pour ceux qui ont un compteur Linky + Module TIC.

Hello,

Sympa le tuto, j’aime bien pour le nom des entrées en fonction de vos habitudes de notation.

Juste une remarque concernant le reset Quotidien des compteurs de services, ça fonctionne bien pour toi car tes HC ne sont pas à cheval sur 2 jours, de mon côté les HC sont de 22h à 6h donc si je lance le LV à 23h et qu’il se fini a 1h avec le reset à minuit il me manquera la moitié de la conso.

A+

1 « J'aime »

ah mince :sweat_smile:

Dans ce cas, tu peux faire la chose suivante:

  • Tu changes le cycle de remise à zéro du Compteur de service. Au lieu de « Quotidien », tu le met à « Pas de cycle »
  • Tu reset le cycle toi meme via l’automatisation de fin de cycle
action: utility_meter.reset
metadata: {}
data: {}
target:
  entity_id: select.machine_a_laver_energy

En fait, c’est même mieux de faire cela. Ca couvre le cas des HC/HP a cheval sur deux jours et le cas où tu fais plusieurs cycle de machine a laver par exemple.

J’ai mis a jour le tuto pour prendre en compte ce cas.

Ben sinon y a une intégration tout faites qui le fait avec :

Suffit juste de se crée un sensor avec le tarif en cours (pareil dispo soit dans l’intégration EDF ou tempo je sais plus, et facilement creable sinon soit avec les infos du linky ou les tranches horaires)

1 « J'aime »

Hello,

Y a beaucoup plus simple.

Un input_number hc, un input_number hp, et un capteur template.
Dans le template, tu viens indiquer que :

Si de X à Y heure, alors multiplie input_number_hc par la consommation en temps réel de l’appareil en question. Et si de Y heure à X heure, alors multiplie input_number_hp par la consommation en temps réel de l’appareil en question.

Tu as donc un capteur template qui te donne le prix de ton appareil sur une journée en prenant bien en compte le montant du kwh suivant la période hp ou hc.

Sinon, tu crées juste le capteur template qui change de prix suivant l’heure, et tu l’ajoutes dans Energie pour le prix du kwh de la maison, et tu ajoutes l’appareil en appareil individuel. Il te fera un historique de sa consommation.

Je le fais avec TEMPO et ses 6 tarifs. J’ai qu’un seul capteur template pour le prix du kWh, qui se met à jour automatiquement.

Voilà, bonne continuation. :slight_smile:

1 « J'aime »