Hi c4rr3r4
have you find a solution to integrate the RTE Api ?
can you share you code for the sensor and the display?
thank you
Hi c4rr3r4
have you find a solution to integrate the RTE Api ?
can you share you code for the sensor and the display?
thank you
Here the last code I use :
configuration.yaml
rest: !include rest.yaml
rest.yaml
- resource_template: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
scan_interval: 3600
sensor:
- name: "Tempo Demain"
value_template: "{{ value_json.couleurJourJ1 }}"
- name: "Tempo Aujourd'hui"
value_template: "{{ value_json.couleurJourJ }}"
- resource: https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
scan_interval: 3600
sensor:
- name: "Jours Rouge restants"
value_template: "{{ value_json.PARAM_NB_J_ROUGE }}"
- name: "Jours Blanc restants"
value_template: "{{ value_json.PARAM_NB_J_BLANC }}"
- name: "Jours Bleu restants"
value_template: "{{ value_json.PARAM_NB_J_BLEU }}"
Using rest in place of sensors permits to get all data from one API call.
Hello,
L’API d’EDF n’a pas l’air fameuse et semble surtout en retard par rapport à RTE (ce qui est logique car c’est eux qui définissent la couleur du jour il me semble).
J’ai fait quelque tests et comme l’indique @Florent_Coste il est assez simple de récuprer les infos depuis l’api RTE. En revanche il faut nécessairement faire une integration dédié pour gérer l’Oauth2 il me semble.
S’il y en a qui ont de l’expérience dans l’écriture d’une intégration HA et qui veulent m’aider je veux bien essayer de coder la partie authentification et récupération de datas
Fred
Merci pour le boulot ça fonctionne bien chez moi.
Pourquoi interroger toutes les heures ? Est-ce qu’une ou 2 fois par jour ne suffirait pas ? Cela limitera le risque de ban.
Petit détail, est-ce qu’on pourrait faire un affichage de la couleur du jour un peu plus sexy avec une image de la couleur par exemple ?
ça fonctionne bien pour moi avec la dernière proposition de TangiX et rest.yaml
Merci!
Bonjour à tous.
J’ai testé la méthode de TangiX mais rien n’y fait. Mes sensors restent silencieux.
Leurs valeurs restent « inconnu »
L’adresse est elle toujours bonne ?
Merci à vous et merci pour le partage.
Bonjour Archimède,
Pour moi ça fonctionne parfaitement. Laseule modification que j’ai faite est purement estétique, j’ai ajouté un regex pour supprimer le texte TEMPO_.
Voici ce que ça donne
- resource_template: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
scan_interval: 3600
sensor:
- name: "Tempo Demain"
value_template: "{{ value_json['couleurJourJ1']|regex_replace(find='^TEMPO_', replace='') }}"
- name: "Tempo Aujourd'hui"
value_template: "{{ value_json['couleurJourJ']|regex_replace(find='^TEMPO_', replace='') }}"
- resource: https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
scan_interval: 3600
sensor:
- name: "Jours Rouge restants"
value_template: "{{ value_json.PARAM_NB_J_ROUGE }}"
- name: "Jours Blanc restants"
value_template: "{{ value_json.PARAM_NB_J_BLANC }}"
- name: "Jours Bleu restants"
value_template: "{{ value_json.PARAM_NB_J_BLEU }}"
As-tu bien inclus le fichier rest.yaml dans configuration.yaml?
Merci beaucoup Patrice pour ta réponse.
Je pense avoir trouver le problème. Je me suis fait bloqué par les serveurs EDF.
Ca fait donc deux jours.
Je vais voir si je peu les contacter demain pour débloquer la situation.
je vous tiendrais au courant.
Bonjours à tous.
Petit retour sur mon expérience. En essayant plusieurs code différents pour ajouter Tempo à mon assistance je me suis fais black-listé par le site d’EDF (sans doute trop de raquettes en trop peu de temps). Il m’a donc fallu attendre un peu plus de 48h pour pouvoir de nouveau envoyer des requêtes au serveur.
Du coup maintenant tout marche correctement.
J’ai même pu utiliser le dernier code de PatriceL qui intègre un regex utile pour la mise en page dans Lovelace.
Merci à tous pour le partage.
Hi,
I would like to create an automation with this sensor. When it change from NON_DEFINI to BLEU or BLANC, I would do an action. The issue is I can’t put NON_DEFINI in the « FROM » box. Do you know why and what can I do ?
Thanks in advance
Hello Nouch77
I did this automation and it works fine for me. I received an alert on my mobile phone when the state moved from NON_DEFINI to BLEU.
Funilly enough, I forgot to put BLEU in the To: field, and I received the message, so you can do that if you just want to detect when the value change.
BR
Voici la carte que j’utilise à base de ‘multiple-entity-row’ installable via HACS :
C’est pas extraordinaire mais c’est compact et facilement lisible
type: entities
entities:
- entity: sensor.tempo_aujourd_hui
type: custom:multiple-entity-row
icon: mdi:currency-eur
name: Aujourd'hui
show_state: false
entities:
- name: false
icon: mdi:radiobox-blank
icon_color: blue
hide_if: TEMPO_BLEU
- name: false
icon: mdi:radiobox-marked
icon_color: blue
hide_if:
- TEMPO_BLANC
- TEMPO_ROUGE
- ND
- NON_DEFINI
- unknown
- name: false
icon: mdi:radiobox-blank
icon_color: light_grey
hide_if: TEMPO_BLANC
- name: false
icon: mdi:radiobox-marked
icon_color: light_grey
hide_if:
- TEMPO_BLEU
- TEMPO_ROUGE
- ND
- NON_DEFINI
- unknown
- name: false
icon: mdi:radiobox-blank
icon_color: red
hide_if: TEMPO_ROUGE
- name: false
icon: mdi:radiobox-marked
icon_color: light_grey
hide_if:
- TEMPO_BLEU
- TEMPO_BLANC
- ND
- NON_DEFINI
- unknown
- entity: sensor.tempo_demain
type: custom:multiple-entity-row
icon: mdi:currency-eur
name: Demain
show_state: false
entities:
- name: false
icon: mdi:radiobox-blank
icon_color: blue
hide_if: TEMPO_BLEU
- name: false
icon: mdi:radiobox-marked
icon_color: blue
hide_if:
- TEMPO_BLANC
- TEMPO_ROUGE
- ND
- NON_DEFINI
- unknown
- name: false
icon: mdi:radiobox-blank
icon_color: light_grey
hide_if: TEMPO_BLANC
- name: false
icon: mdi:radiobox-marked
icon_color: light_grey
hide_if:
- TEMPO_BLEU
- TEMPO_ROUGE
- ND
- NON_DEFINI
- unknown
- name: false
icon: mdi:radiobox-blank
icon_color: red
hide_if: TEMPO_ROUGE
- name: false
icon: mdi:radiobox-marked
icon_color: light_grey
hide_if:
- TEMPO_BLEU
- TEMPO_BLANC
- ND
- NON_DEFINI
- unknown
- entity: sensor.jours_rouge_restants
type: custom:multiple-entity-row
icon: mdi:calendar-today
name: Jours restants
show_state: false
entities:
- entity: sensor.jours_bleu_restants
name: false
- entity: sensor.jours_blanc_restants
name: false
- entity: sensor.jours_rouge_restants
name: false
title: Tempo
Bonjour,
quelqu’un aurait le code pour EJP au lieu de Tempo ? J’arrive toujours à récupérer le nombre de jours EJP restants mais plus EJP aujourd’hui ni EJP demain …
Merci
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 :
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
Merci pour ce partage, c’est effectivement la manière la plus compacte.
Chez moi pas de couleurs affichées, on verra plus tard
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.
Voici mon oeuvre
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;
}
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