En France EDF nous propose différents contrats associés à différents types de facturation. La gestion du plus classique avec les heures pleines et les heures creuses est facile, il suffit de faire tourner la nuit les appareils les plus énergivores et on connait d'avance les bonnes heures Par contre pour EJP et Tempo, la couleur est annoncée la veille et il peut être intéressant d'adapter le fonctionnement de certains appareils quand le cout de l'électricité est surtaxé, par exemple en baissant le chauffage électrique de 1 ou deux degrés ou en verrouillant l'usage de certains appareils...
Mais encore faut t'il sous Home Assistant disposer de cet état que l'on reçoit généralement par SMS la veille. Ces informations sont disponibles sur le site Web du fournisseur au format JSON et voici comment faire pour en disposer sous Home Assistant
Tempo
On crée quelques sensor:
- platform: rest
name: 'Tempo Demain'
resource_template: https://particulier.edf.fr/bin/edf_rc/servlets/ejptemponew?Date_a_remonter={{now().strftime("%Y-%m-%d")}}&TypeAlerte=TEMPO
value_template: '{{ value_json.JourJ1.Tempo }}'
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
- platform: rest
name: "Tempo Aujourd'hui"
resource_template: https://particulier.edf.fr/bin/edf_rc/servlets/ejptemponew?Date_a_remonter={{now().strftime("%Y-%m-%d")}}&TypeAlerte=TEMPO
value_template: "{{ value_json['JourJ'].Tempo }}"
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
- platform: rest
name: 'Jours Rouge restants'
resource: https://particulier.edf.fr/bin/edf_rc/servlets/ejptempodaysnew?TypeAlerte=TEMPO
value_template: '{{ value_json.PARAM_NB_J_ROUGE }}'
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
- platform: rest
name: 'Jours Blanc restants'
resource: https://particulier.edf.fr/bin/edf_rc/servlets/ejptempodaysnew?TypeAlerte=TEMPO
value_template: '{{ value_json.PARAM_NB_J_BLANC }}'
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
- platform: rest
name: 'Jours Bleu restants'
resource: https://particulier.edf.fr/bin/edf_rc/servlets/ejptempodaysnew?TypeAlerte=TEMPO
value_template: '{{ value_json.PARAM_NB_J_BLEU }}'
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
Et après un redémarrage on doit obtenir ça :
EJP
Ici aussi on crée quelques sensor:
- platform: rest
name: "EJP Aujourd'hui"
resource_template: https://particulier.edf.fr/bin/edf_rc/servlets/ejptemponew?Date_a_remonter={{now().strftime("%Y-%m-%d")}}&TypeAlerte=EJP
value_template: '{{ value_json.JourJ.EjpSud }}'
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
- platform: rest
name: 'EJP Demain'
resource_template: https://particulier.edf.fr/bin/edf_rc/servlets/ejptemponew?Date_a_remonter={{now().strftime("%Y-%m-%d")}}&TypeAlerte=EJP
value_template: "{{ value_json['JourJ1'].EjpSud }}"
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
- platform: rest
name: 'Jours restants'
resource: https://particulier.edf.fr/services/rest/referentiel/historicEJPStore?searchType=ejp
value_template: '{{ 22 - value_json.SUD.TotalCurrentPeriod }}'
headers:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
Et on obtient :
Exploitation
Pour exploiter ces information dans Home Assistant il sera souvent plus facile d'utiliser un binary_sensor:
, voici donc l'exemple pour le tarif EJP :
- platform: template
sensors:
ejp_on:
friendly_name: "Edf : EJP"
value_template: "{{ is_state('sensor.ejp_aujourd_hui', 'EST_EJP') }}"
device_class: power
- platform: template
sensors:
ejp_on_demain:
friendly_name: "EdF : EJP Demain"
value_template: "{{ is_state('sensor.ejp_demain', 'EST_EJP') }}"
device_class: power
Ce qui donne :
Chacun pourra fignoler à sa guise, en modifiant la couleur des icônes en fonction de l'état ou en envoyant les notifications idoines... Merci à Patrice pour son aide !
Sources