Mise en place des tarifs EDF
Je vais maintenant me concentrer sur la mise en place des différents tarifs d’EDF.
EDF Tempo
Je suis chez EDF avec le tarif TEMPO. Celui-ci est composé de 6 tarifs différents qui varient suivant les heures pleines / heure creuses (HP /HC) et la couleur du jour.
Voici par ex les tarifs au 01/02/2024
Pour gérer au mieux l’électricité via home assistant, il nous faut donc récupérer la couleur du jour, si on est en HP ou HC …
Il existe un site qui peut envoyer ces informations directement vers home assistant. Nous allons donc l’utiliser.
Créer un compte RTE
Pour commencer, créer un compte sur RTE. C’est un compte gratuit !
https://data.rte-france.com/
Puis, rechercher « tempo like supply contract » dans la barre de recherche et trouvez la tuile correspondante :
Cliquez ensuite sur « Abonnez-vous à l’API »
Vous obtiendrez alors un ID client ainsi qu’un ID secret.
Gardez ces deux ID de côté pour l’instant.
Installer l’intégration RTE
Retour sur Home Assistant, si vous n’avez pas encore installé HACS, suivez le tuto que j’ai réalisé ici : HACS
Puis sur la page HACS, dans Intégration, cliquez sur les trois petits points en haut à gauche pour ajouter un nouveau dépôt.
Copiez ensuite ce lien dans le dépots et choisissez intégration en dessous
https://github.com/hekmon/rtetempo
Une fois installé, redémarrer votre HomeAssistant.
Ensuite, dans paramètres, intégration, recherchez cette nouvelle intégration.
Vous allez ensuite pouvoir entrer les ID que nous avons eue sur le site RTE.
Et voilà !
Ce nouveau capteur nous permet donc de savoir quelle est la couleur du jour, celle du lendemain (souvent plus rapidement que via l’appli EDF) et si nous sommes en HC ou HP.
Création des inputs tarifs
Pour créer les tarifs liés aux différentes couleurs et HP/HC, nous allons utiliser le File Editor.
Si ce n’est pas encore en place chez vous, rdv ici : File Editor
Pour commencer, nous allons créer un nouveau fichier dans le file editor (petit dossier en haut puis new file) et on le nomme :
input_numbers.yaml
Ensuite voici le contenu à copier-coller dans ce nouveau fichier :
# EDF Tarif Bleu Option Base
tarif_edf_base:
name: EDF Base
initial: 0.2516
min: 0
max: 1
step: 0.0001
mode: slider
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
# EDF Tarif Bleu Option HP/HC
tarif_edf_base_hc:
name: EDF Base HC
initial: 0.2068
min: 0
max: 1
step: 0.0001
mode: slider
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
tarif_edf_base_hp:
name: EDF Base HP
initial: 0.2700
min: 0
max: 1
step: 0.0001
mode: slider
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
# EDF Tarif Bleu Option Tempo
tarif_edf_tempo_bleu_hc:
name: EDF Tempo Bleu HC
initial: 0.1296
min: 0
max: 1
step: 0.0001
mode: slider
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
tarif_edf_tempo_bleu_hp:
name: EDF Tempo Bleu HP
initial: 0.1609
min: 0
max: 1
step: 0.0001
mode: slider
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
tarif_edf_tempo_blanc_hc:
name: EDF Tempo Blanc HC
initial: 0.1486
min: 0
max: 1
step: 0.0001
mode: slider
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
tarif_edf_tempo_blanc_hp:
name: EDF Tempo Blanc HP
initial: 0.1894
min: 0
max: 1
step: 0.0001
mode: box
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
tarif_edf_tempo_rouge_hc:
name: EDF Tempo Rouge HC
initial: 0.1568
min: 0
max: 1
step: 0.0001
mode: box
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
tarif_edf_tempo_rouge_hp:
name: EDF Tempo Rouge HP
initial: 0.7562
min: 0
max: 1
step: 0.0001
mode: box
unit_of_measurement: "€ /kWh"
icon: mdi:cash-lock
On y retrouve tous les prix des options Base, HC/HP et Tempo d’EDF.
Une fois le fichier créé, il faut l’appeler dans le fichier configuration.yaml pour qu’il soit pris en compte.
Pour cela, ouvrez le fichier configuration.yaml et ajouter cette ligne à la suite des autres :
input_number: !include input_numbers.yaml
Création des sensors
Les tarifs sont maintenant entrés dans HA. Nous allons donc créer les capteurs indiquant le tarif actuel et à venir suivant les informations fournies par RTE.
Pour cela, nous allons créer un nouveau fichier dans le File Editor.
Il doit être nommé :
templates.yaml
Et il contient le code suivant :
- unique_id: "tempo_time_prices"
sensor:
- name: "EDF Tempo Prix Actuel"
unique_id: "current"
device_class: 'monetary'
unit_of_measurement: "c€/kWh"
icon: 'mdi:cash-check'
availability: >
{{ not 'unavailable' in
[
states('sensor.rte_tempo_couleur_actuelle'),
states('binary_sensor.rte_tempo_heures_creuses'),
] and not 'unknown' in
[
states('sensor.rte_tempo_couleur_actuelle'),
states('binary_sensor.rte_tempo_heures_creuses'),
states('input_number.tarif_edf_tempo_bleu_hp'),
states('input_number.tarif_edf_tempo_bleu_hc'),
states('input_number.tarif_edf_tempo_blanc_hp'),
states('input_number.tarif_edf_tempo_blanc_hc'),
states('input_number.tarif_edf_tempo_rouge_hp'),
states('input_number.tarif_edf_tempo_rouge_hc')
]
}}
state: >
{%- if is_state('sensor.rte_tempo_couleur_actuelle', "Bleu") %}
{%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'off') %}
{{ states('input_number.tarif_edf_tempo_bleu_hp') | float * 100 }}
{%- else %}
{{ states('input_number.tarif_edf_tempo_bleu_hc') | float * 100 }}
{%- endif %}
{%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Blanc") %}
{%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'off') %}
{{ states('input_number.tarif_edf_tempo_blanc_hp') | float * 100 }}
{%- else %}
{{ states('input_number.tarif_edf_tempo_blanc_hc') | float * 100 }}
{%- endif %}
{%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Rouge") %}
{%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'off') %}
{{ states('input_number.tarif_edf_tempo_rouge_hp') | float * 100 }}
{%- else %}
{{ states('input_number.tarif_edf_tempo_rouge_hc') | float * 100 }}
{%- endif %}
{%- else %}
0
{%- endif %}
- name: "EDF Tempo Prochain Prix"
unique_id: "next"
device_class: 'monetary'
unit_of_measurement: "c€/kWh"
icon: 'mdi:cash-clock'
availability: >
{{ not 'unavailable' in
[
states('sensor.rte_tempo_couleur_actuelle'),
states('sensor.rte_tempo_prochaine_couleur'),
states('binary_sensor.rte_tempo_heures_creuses'),
] and not 'unknown' in
[
states('sensor.rte_tempo_couleur_actuelle'),
states('sensor.rte_tempo_prochaine_couleur'),
states('binary_sensor.rte_tempo_heures_creuses'),
states('input_number.tarif_edf_tempo_bleu_hp'),
states('input_number.tarif_edf_tempo_bleu_hc'),
states('input_number.tarif_edf_tempo_blanc_hp'),
states('input_number.tarif_edf_tempo_blanc_hc'),
states('input_number.tarif_edf_tempo_rouge_hp'),
states('input_number.tarif_edf_tempo_rouge_hc')
]
}}
state: >
{%- if is_state('binary_sensor.rte_tempo_heures_creuses', 'on') %}
{%- if is_state('sensor.rte_tempo_prochaine_couleur', "Bleu") %}
{{ states('input_number.tarif_edf_tempo_bleu_hp') | float * 100 }}
{%- elif is_state('sensor.rte_tempo_prochaine_couleur', "Blanc") %}
{{ states('input_number.tarif_edf_tempo_blanc_hp') | float * 100 }}
{%- elif is_state('sensor.rte_tempo_prochaine_couleur', "Rouge") %}
{{ states('input_number.tarif_edf_tempo_rouge_hp') | float * 100 }}
{%- else %}
0
{%- endif %}
{%- else %}
{%- if is_state('sensor.rte_tempo_couleur_actuelle', "Bleu") %}
{{ states('input_number.tarif_edf_tempo_bleu_hc') | float * 100 }}
{%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Blanc") %}
{{ states('input_number.tarif_edf_tempo_blanc_hc') | float * 100 }}
{%- elif is_state('sensor.rte_tempo_couleur_actuelle', "Rouge") %}
{{ states('input_number.tarif_edf_tempo_rouge_hc') | float * 100 }}
{%- else %}
0
{%- endif %}
{%- endif %}
Il nous reste à l’appeler dans le fichier configuration.yaml en ajoutant la ligne suivante :
template: !include templates.yaml
On redémarre Home Assistant et c’est bon :
Tous nos capteurs sont en place !
Vous pouvez les retrouver dans paramètres, appareil et services, entités et filtrer en entrant Tempo dans la barre de recherche.
Tuile du tableau de bord
J’ai réalisé une petite tuile pour reprendre la couleur et les tarifs du jour et à venir.
Dans le tableau de bord souhaité ajouter une tuile et faite une pile verticale.
J’ai ensuite ajouté une carte Entités (avec le s).
Puis avec le petit + j’ajoute une nouvelle tuile entité :
Et voilà le résultat