Get EDF Tempo information

Bonjour,
idem pour moi, impossible de trouver le serveur qui fournit les données EJP du jour et du lendemain.
seul le nombre de jours est accessible.

si quelqu’un à la bonne adresse

merci

Salut,

désolé pour la réponse tardive.

Voici ce que j’ai fait pour utiliser l’API RTE (qui fonctionne de nouveau seulement depuis quelques jours, down depuis avril).

Il faut dĂ©jĂ  que tu te crĂ©es une apiKey sur le site de l’API RTE Tempo-Like-Supply-Contract : API Catalog - API Data RTE
→ Abonnez-vous à l’API

Ensuite voilà ce que j’ai dans mon sensors.yaml (ancienne version, je n’ai pas mis à jour depuis)

  - platform: rest
    name: rte_token
    resource: https://digital.iservices.rte-france.com/token/oauth
    method: GET
    scan_interval: 7000
    headers:
      Authorization: Basic <ici_tu_mets_ton_apiKey_rte>
      Content-Type: application/x-www-form-urlencoded
    value_template: >
      {% if value_json.access_token %}
        {{value_json.access_token}}
      {% else %}
        KO
      {% endif %}
      
  - platform: command_line
    name: color_2days
    command: "curl -X GET 'https://digital.iservices.rte-france.com/open_api/tempo_like_supply_contract/v1/tempo_like_calendars?start_date={{now().strftime(states('input_text.date_format_rte'))}}&end_date={{(now()+timedelta(days=2)).strftime(states('input_text.date_format_rte'))}}' -H 'Authorization: Bearer {{ states('sensor.rte_token') }}'"
    scan_interval: 1800
    value_template: 'OK'
    json_attributes:
      - tempo_like_calendars

  - platform: template
    sensors:
      rte_today_color:
        friendly_name: Aujourd'hui
        value_template: >
          {% set today = now().strftime(states('input_text.date_format_rte')) %}
          {% set today_item = states.sensor.color_2days.attributes['tempo_like_calendars']['values'] | selectattr('start_date', 'eq', today) | list | first %}
          {{ today_item.value }}
      rte_tomorrow_color:
        friendly_name: Demain
        value_template: >
          {% set tomorrow = (now()+timedelta(days=1)).strftime(states('input_text.date_format_rte')) %}
          {% set tomorrow_item = states.sensor.color_2days.attributes['tempo_like_calendars']['values'] | selectattr('start_date', 'eq', tomorrow) | list | first %}
          {{ tomorrow_item.value }}

le premier appel rest te permet de te gĂ©nĂ©rer un token d’authentification pour appeler l’api tempo.
le deuxiĂšme appel rest te permet de rĂ©cupĂ©rer les infos tempo dans un json et de ne rĂ©cupĂ©rer que ‘tempo_like_calendar’
le template te permet de faire 2 sensors ‘today’ et ‘tomorrow’

(vous pouvez voir 2 façons de faire des appels Rest, soit par la platform ‘rest’ soit par la platform ‘commande line’ en faisant un ‘curl’, je ne suis pas arrivĂ© Ă  utiliser la platform ‘rest’ pour le 2Ăšme appel mais ça fonctionne trĂšs bien)

vous remarquerez que j’ai mis le format de la date dans une variable (une entrĂ©e texte) ‘input_text.date_format_rte’, ça m’évitait Ă  l’époque de redĂ©marrer pour tester le format de cette foutue date.

Ensuite cĂŽtĂ© HA et Lovelace j’ai ça :
image

Avec le code suivant :

type: entities
entities:
  - entity: input_text.date_format_rte
  - entity: sensor.rte_token
    name: token
    secondary_info: last-updated
  - entity: sensor.color_2days
    secondary_info: last-updated
  - entity: sensor.rte_today_color
  - entity: sensor.rte_tomorrow_color
state_color: false
title: ParamĂštres globaux

Malheureusement je n’ai pas assez de temps à consacrer à tout ça pour l’optimiser mais ça fait une bonne base pour ceux qui veulent l’utiliser :wink:

3 Likes

Merci pour ce partage, c’est effectivement la maniùre la plus compacte.
Chez moi pas de couleurs affichées, on verra plus tard :slight_smile:

great job, please can you share your template code? steplait, steplait


Je n’ai pas le template de cette prĂ©sentation, c’est ce qu’il y a sur le site de rte-france.

J’avoue ne pas avoir de temps à consacrer à ça, dommage. :cry:

Voici mon oeuvre :slight_smile:

tempo HA
J’utilise une pile verticale de Lovelace et card_mod pour gĂ©rer l’affichage

Tuile N°1

show_name: true
show_icon: false
show_state: true
type: glance
entities:
  - entity: sensor.tempo_aujourd_hui
    card_mod:
      style: |
        :host .name {
          font-weight: normal;
          font-size: 80%;
           }
        :host {
          color: black;font-weight: bold;
          border-style: solid;
          border-radius: 15px;
          background: {% if is_state('sensor.tempo_aujourd_hui', 'ROUGE') %} 
                        red 
                      {% endif %}
                      {% if is_state('sensor.tempo_aujourd_hui', 'BLANC') %} 
                        white
                      {% endif %}
                      {% if is_state('sensor.tempo_aujourd_hui', 'BLEU') %} 
                        DodgerBlue
                      {% endif %}
                      {% if is_state('sensor.tempo_aujourd_hui', 'NON_DEFINI') %} 
                        lightgrey
                      {% endif %};
           color: {% if is_state('sensor.tempo_aujourd_hui', 'BLANC') %} 
                   black 
                  {% else %}
                   white 
                  {% endif %};
          }
  - entity: sensor.tempo_demain
    card_mod:
      style: |
        :host .name {
          font-weight: normal;
          font-size: 80%;
           }
        :host {
          color: black;font-weight: bold;
          border-style: double;
          border-radius: 15px;
          background: {% if is_state('sensor.tempo_demain', 'ROUGE') %} 
                        red 
                      {% endif %}
                      {% if is_state('sensor.tempo_demain', 'BLANC') %} 
                        white
                      {% endif %}
                      {% if is_state('sensor.tempo_demain', 'BLEU') %} 
                        DodgerBlue
                      {% endif %}
                      {% if is_state('sensor.tempo_demain', 'NON_DEFINI') %} 
                        lightgrey
                      {% endif %};
           color: {% if is_state('sensor.tempo_demain', 'BLANC') %} 
                   black 
                  {% else %}
                   white 
                  {% endif %};
          }
title: Couleur Tempo

Tuile N°2

show_name: true
show_icon: false
show_state: true
type: glance
entities:
  - entity: sensor.jours_bleu_restants
    card_mod:
      style: |
        :host {
          color: DodgerBlue;font-weight: bold;font-size: 24px;
           }
        :host .name {
          font-weight: normal;
          font-size: 12px;
           }
  - entity: sensor.jours_blanc_restants
    card_mod: null
    style: |
      :host {
        color: grey;font-weight: bold;font-size: 24px;
           }
      :host .name {
          font-weight: normal;
          font-size: 12px;
           }
  - entity: sensor.jours_rouge_restants
    card_mod: null
    style: |
      :host {
        color: tomato;font-weight: bold;font-size: 24px;
           }
      :host .name {
          font-weight: normal;
          font-size: 12px;
           }
7 Likes

Merci, c’est pas mal affichĂ© comme ça !

Par contre pour la 1ùre tuile, auj et demain sont blancs, ça donne du texte blanc sur fond blanc, du coup ça n’affiche rien :d

Il y a une condition qui teste si la couleur est BLANC et si c’est le cas, elle passe le texte en noir

Juste par curiositĂ©, du coup vous faites quoi avec l’info de la couleur du lendemain Ă  part l’afficher sur l’UI ? Y a aussi des choses automatisĂ©es en fonction du prochain tarif ? Ou des notifications du genre aujourd’hui c’est bleu, demain c’est rouge, tu devrais faire tourner une machine avant que ça bascule ?

Si j’ai bien captĂ© le Tempo (moi j’suis en jour/nuit classique), la distribution des jours rouge est assez alĂ©atoire et parfois il y a cinq jours rouges Ă  la suite. Ça doit ĂȘtre assez galĂšre Ă  automatiser qq chose autour de ça ?

Le premier besoin est d’avoir l’information le plus tĂŽt possible car en effet, la distribution des jours rouges est alĂ©atoire et demande de l’organisation.
EDF nous prĂ©viens maintenant via son application la veille, mais l’avoir sur son Dashboard est un plus.
CÎté automatisation:

  • je diminue la tempĂ©rature de la maison Ă  16°, juste au cas on nous soyons absent car j’utilise une autre source de chauffage.
  • Le chauffe eau ne fonctionne que deux heures les jours rouges creux.
  • Le matin des jours blanc et rouge, le chauffage dĂ©marre plus tĂŽt pour ĂȘtre coupĂ© plus tĂŽt
  • une alerte est envoyĂ©e Ă  tous les membres de ma famille pour que tout le monde soit conscient du coĂ»t de la consommation

Je me suis arrĂȘtĂ© lĂ  pour le moment mais il y a sĂ»rement d’autres bonnes idĂ©es

De mon cotĂ©, j’interdis la charge de la voiture en heures pleines mĂȘme en mode forcĂ© les jours rouges, je baisse d’un degrĂ© en rouge et je limite le dĂ©lestage (puissance max du compteur de la maison Ă  un instant t) en empĂ©chant les radiateurs de dĂ©marrer Ă  tour de rĂŽle. Ce dernier point est fait grace Ă  cette intĂ©gration: GitHub - jmcollin78/awesome_thermostat: An awesome thermostat with preset mode management + windows opening management + activity sensor management

1 Like

Ah d’accord, intĂ©ressant de voir comment les gens utilisent HA pour reduire l’impact des jours rouges. Je suppose que ceux qui font ça, vous vous chauffez pas en Ă©lĂ©ctrique ou avez un autre moyen de chauffage en plus ? Perso, nous on est en 90% Ă©lec ici (plus une grande cheminĂ©e ouverte plutĂŽt Ă  vocation dĂ©corative) et je pourrais pas m’imaginer de dĂ©lester le chauffage de cette maniĂšre, surtout quand il y a plusieurs jours rouges qui se suivent. LĂ  avec le froid qu’on se prend ici en FR pour l’instant (pour nous en Bretagne c’est pas normal d’ĂȘtre dans le nĂ©gatif :wink: ), c’est plutĂŽt l’inverse et nos radiateurs tournent bien jour et nuit


Je me demande si ça pourrait pas ĂȘtre utile d’écrire un ptit script qui prend l’historique des consommations par heure de la base statistique de HA et fait tourner une simulation sur les diffĂ©rents tarifs actuels d’EDF (ou concurrents) pour pouvoir rĂ©ellement comparer l’impact sur son propre profil de consommation. Avec Tempo, l’historique des couleurs est dispo pour l’annĂ©e prĂ©cĂ©dente, ça peut servir de base.

Oui, je suis full Ă©lectrique Ă  la maison et lorsqu’on a emmĂ©nagĂ©, on a remplacer la cheminĂ©e ouverte Ă  vocation dĂ©corative par un poele Ă  bois. On a fait une grand partie tout seul (dĂ©montage de la cheminĂ©e), un artisan est venu juste pour tuber le conduit et mettre en service le poele.

Quand c’est rouge, on chauffe au poele et ça chauffe toute la maison. C’est vite amortit un poele d’autant qu’il y a 40% de crĂ©dit d’impots si je me souviens bien.

Je recommande fortement le poele (à granule, à bois, 
). Seul gros inconvénient, les corvées de bois.

J’ai tempo depuis pas trĂšs longtemps, mais j’ai fait cette simulation au jour le jour. Aujourd’hui (journĂ©e froide BLEU sans chauffage au bois), Ă  16h30, je gagne dĂ©jĂ  presque 3 euros:

Capture d’écran 2022-12-11 à 16.39.21

En passant a Tempo, EDF a baissĂ© ma mensualitĂ© de 278€ Ă  165€ directement. Ca vaut manifestement vraiment le coup si on peut diffĂ©rer son utilisation de l’électricitĂ© : chauffage alternatif, rechargement des voitures, chauffe-eau sont des bons candidats.

Demain c’est rouge, je devrais ĂȘtre perdant, on va voir.

Je pense de faire ça manuellement de jour en jour ça peut ĂȘtre trompeur, il faudrait comparer sur une plus longue periode, au moins plusieurs mois et sur diffĂ©rentes saisons. Les long term statistics de HA peuvent bien servir Ă  ça, les donnĂ©es sont dispo par tranche horaire.

Au niveau poele c’est sur que c’est efficace, en plus je fais du bois sur mon terrain (c’est une ferme). Mais j’aimerai garder ma jolie cheminĂ©e ouverte historique purement pour sa vocation esthĂ©tique :slight_smile: Enfin bon, on verra.

J’ai le mĂȘme en mensuel mais ca fait pas un mois que j’ai l’option TEMPO.

Excellent ! et merci pour le partage du code

Personnellement, j’ai fait une petite modification sur le sensor “Tempo demain” pour retourner une valeur conforme au site EDF :

    - name: "Tempo Demain"
      value_template: "{{ value_json.couleurJourJ1 | regex_replace(find='^TEMPO_', replace='') | regex_replace(find='^NON_DEFINI', replace='Indéterminé') }}"

Dans la mĂȘme optique, j’ai Ă©galement modifiĂ© lĂ©gĂšrement le code de la carte pour la couleur du fond :

background: {% if is_state('sensor.tempo_aujourd_hui', 'ROUGE') %} 
              red 
            {% elif is_state('sensor.tempo_aujourd_hui', 'BLANC') %} 
              white
            {% elif is_state('sensor.tempo_aujourd_hui', 'BLEU') %} 
              DodgerBlue
            {% elif is_state('sensor.tempo_aujourd_hui', 'NON_DEFINI') %} 
              Orange
            {% else %}
              DimGray
            {% endif %};

C’est cosmĂ©tique mais ça permet de faire la diffĂ©rence entre le Tempo demain “IndĂ©terminĂ©â€ et une valeur invalide (au cas oĂč).
Pour les couleurs
 chacun ses goûts !

4 Likes

Bonjour,
Tu dis “ici tu mets ton API key” : que faut-il mettre exactement ? Quand tu t’abonne, on t’attribue:

  • Un ID Client
  • Un ID Secret
  • La possibilitĂ© de copier en base 64

Lequel est le bon ?
Merci bcp

Bonjour Ă  tous et meilleurs voeux pour 2023,
Au risque de passer pour le dernier des charlots, je ne comprends comment intégrer le tempo sous ha aprÚs avec modifier les fichiers yaml (config et rest), puis avoir redémarré.
OĂč faut-il aller? Que faut-il faire?

Merci,
François

Bonjour François
Tu peux commencer par vĂ©rifier que tes entitĂ©s existent en allant dans le menu outils de dĂ©veloppement sous l’onglet Ă©tat et en filtrant sur le nom que tu as donnĂ© Ă  tes entitĂ©s .
Si elles sont bien là , tu peux alors éditer le tableau de bord et ajouter la carte « entités » puis ajouter les entités en question