Bonjour à tous,
Je suis en train de configurer mon tableau de bord Home Assistant et j’aimerais afficher le tarif journalier de mon électricité en fonction des heures pleines et des heures creuses.
Voici les détails de ma situation :
Heures creuses : de 20h à 8h et de 13h à 18h
Tarif heure creuse : 0.1795 €/kWh
Tarif heure pleine : 0.27 €/kWh
Je souhaiterais créer un capteur qui calcule automatiquement le tarif en fonction de l’heure actuelle et l’affiche sur une carte dans le tableau de bord.
Mais il doit retire l’apport en solaire voici mon code actuel (qui ne marche pas ) :
sensor:
- platform: template
sensors:
consommation_nette_watts:
friendly_name: "Consommation Nette (W)"
unit_of_measurement: 'W'
value_template: >
{% set consommation_totale = states('sensor.shellyem_ec64c9c69a76_channel_1_power') | float %}
{% set production_solaire = states('sensor.shellyem_c45bbee18779_channel_2_power') | float %}
{% if consommation_totale > production_solaire %}
{{ (consommation_totale - production_solaire) | round(2) }}
{% else %}
0
{% endif %}
- platform: template
sensors:
consommation_heures_creuses:
friendly_name: "Consommation Heures Creuses (W)"
unit_of_measurement: 'W'
value_template: >
{% set heure = now().hour %}
{% set consommation_totale = states('sensor.shellyem_ec64c9c69a76_channel_1_power') | float %}
{% if (heure >= 13 and heure < 18) or (heure >= 20 or heure < 8) %}
{{ consommation_totale }}
{% else %}
0
{% endif %}
- platform: template
sensors:
consommation_heures_pleines:
friendly_name: "Consommation Heures Pleines (W)"
unit_of_measurement: 'W'
value_template: >
{% set heure = now().hour %}
{% set consommation_totale = states('sensor.shellyem_ec64c9c69a76_channel_1_power') | float %}
{% if (heure >= 8 and heure < 13) or (heure >= 18 and heure < 20) %}
{{ consommation_totale }}
{% else %}
0
{% endif %}
- platform: template
sensors:
cout_heures_creuses_journalier:
friendly_name: "Coût Journalier Heures Creuses (€)"
unit_of_measurement: '€'
value_template: >
{% set consommation_heures_creuses = states('sensor.consommation_heures_creuses') | float %}
{% if consommation_heures_creuses == 0 %}
0
{% else %}
{{ (consommation_heures_creuses * 0.1795 / 1000) | round(2) }}
{% endif %}
- platform: template
sensors:
cout_heures_pleines_journalier:
friendly_name: "Coût Journalier Heures Pleines (€)"
unit_of_measurement: '€'
value_template: >
{% set consommation_heures_pleines = states('sensor.consommation_heures_pleines') | float %}
{% if consommation_heures_pleines == 0 %}
0
{% else %}
{{ (consommation_heures_pleines * 0.27 / 1000) | round(2) }}
{% endif %}
je pense faire fausse route car il m’affiche en cts et instantané mais je veut du journalier
exemple sur 24h 3.47€ heure pleine et 1.48€ heure creuse donc rafraichie toute les 24h
Bonjour,
un indice peut être : ce n’est pas la puissance qui a un coût mais c’est l’energie. L’energie, c’est l’intégration de la puissance sur le temps.
ici pour 1000w jai bien 0.1795cts pourtant
rebonjour,
pour qu’une formule soit valable, elle doit être homogène. on ne peut multiplier des choux avec des carottes.
ici ta consommation_heures_creuse est une mesure de Puissance donc des watts (W)
ton prix de 0.1795 est en €/kWh. C’est un prix par consommation d’énergie (et pas de puissance)
si on divise par 1000 ton prix est en €/Wh
donc ta formule c’est des W multiplié par des €/Wh ce qui donne des €/h donc non tu n’as pas 1000W qui donne 0.1795cts mais 1000W qui donne 0.1795€/h. Ta formule n’est pas homogène car tu veux trouver des €
Il te faut des capteurs d’energie et pas de puissance pour faire tes calculs
1 « J'aime »
Je comprend mais ducoup vous pouvez m’aider pour la refonte du code ?
Bonjour,
comme je l’ai dit il faut travailler avec des capteurs d’energie
Pour par exemple transformer la capteur de puissance nette en capteur d’energie nette voici comment procéder :
1 - Création du capteur de puissance nette
template:
- sensor:
- name: PuissanceNette
unit_of_measurement: W
state: >
{% set puissance_totale = states('sensor.shellyem_ec64c9c69a76_channel_1_power') | float(default=0) %}
{% set puissance_solaire = states('sensor.shellyem_c45bbee18779_channel_2_power') | float(default=0) %}
{% if puissance_totale > puissance_solaire %}
{{ (puissance_totale - puissance_solaire) | round(2) }}
{% else %}
0
{% endif %}
availability: >
{{ states('sensor.shellyem_ec64c9c69a76_channel_1_power') != 'unavailable' and states('sensor.shellyem_c45bbee18779_channel_2_power') != 'unavailable' }}
2 - Intégration des valeurs de ce capteur dans un capteur d’energie nette
il faut que tu crées un capteur d’energie nette
parametres/Appareils et services/Entrées/ Créer une entrée/Capteur d’intégrale
D’accord je vient de comprendre le capteur a été crée maintenant je doit remplacer mon capteur shelly par le nouveau capteur créé ?
Quel ligne je doit remplacer ? Ou alors faut t’il tout refaire si oui:
pouvez vous me guider car j’ai utiliser chat gpt pour le code initial
j’ai modifier comme cela ducoup :
sensor:
- platform: template
sensors:
consommation_nette_watts:
friendly_name: "Consommation Nette (W)"
unit_of_measurement: 'W'
value_template: >
{% set consommation_totale = states('sensor.energienette') | float %}
{% set production_solaire = states('sensor.shellyem_c45bbee18779_channel_2_power') | float %}
{% if consommation_totale > production_solaire %}
{{ (consommation_totale - production_solaire) | round(2) }}
{% else %}
0
{% endif %}
- platform: template
sensors:
consommation_heures_creuses:
friendly_name: "Consommation Heures Creuses (W)"
unit_of_measurement: 'W'
value_template: >
{% set heure = now().hour %}
{% set consommation_totale = states('sensor.energienette') | float %}
{% if (heure >= 13 and heure < 18) or (heure >= 20 or heure < 8) %}
{{ consommation_totale }}
{% else %}
0
{% endif %}
- platform: template
sensors:
consommation_heures_pleines:
friendly_name: "Consommation Heures Pleines (W)"
unit_of_measurement: 'W'
value_template: >
{% set heure = now().hour %}
{% set consommation_totale = states('sensor.energienette') | float %}
{% if (heure >= 8 and heure < 13) or (heure >= 18 and heure < 20) %}
{{ consommation_totale }}
{% else %}
0
{% endif %}
- platform: template
sensors:
cout_heures_creuses_journalier:
friendly_name: "Coût Journalier Heures Creuses (€)"
unit_of_measurement: '€'
value_template: >
{% set consommation_heures_creuses = states('sensor.consommation_heures_creuses') | float %}
{% if consommation_heures_creuses == 0 %}
0
{% else %}
{{ (consommation_heures_creuses * 0.1795 / 1000) | round(2) }}
{% endif %}
- platform: template
sensors:
cout_heures_pleines_journalier:
friendly_name: "Coût Journalier Heures Pleines (€)"
unit_of_measurement: '€'
value_template: >
{% set consommation_heures_pleines = states('sensor.consommation_heures_pleines') | float %}
{% if consommation_heures_pleines == 0 %}
0
{% else %}
{{ (consommation_heures_pleines * 0.27 / 1000) | round(2) }}
{% endif %}
template:
- sensor:
- name: PuissanceNette
unit_of_measurement: W
state: >
{% set puissance_totale = states('sensor.shellyem_ec64c9c69a76_channel_1_power') | float(default=0) %}
{% set puissance_solaire = states('sensor.shellyem_c45bbee18779_channel_2_power') | float(default=0) %}
{% if puissance_totale > puissance_solaire %}
{{ (puissance_totale - puissance_solaire) | round(2) }}
{% else %}
0
{% endif %}
availability: >
{{ states('sensor.shellyem_ec64c9c69a76_channel_1_power') != 'unavailable' and states('sensor.shellyem_c45bbee18779_channel_2_power') != 'unavailable' }}
Lexyan
Janvier 4, 2025, 10:15
8
Hello,
Simple question, pourquoi faire le calcul de l’énergie (riemann) par homeassistant alors que l’information est disponible de base sur le Shelly EM sensor.shelly_*_total_active_energy
A+
Toujours pas réussi rien ny fait je but