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:

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 »

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




