Bonjour,
Où as tu trouvé ces URL ? Elles ne semblent pas fonctionner.
Merci
Idem. Une alternative en attendant c’est d’utiliser RTE comme source via l’intégration HA. Mais bon ça nécessite un compte développeur…etc
Autre alternative: je récupére la couleur du lendemain directement sur le Linky avec le ZLinky_TIC. L’inconvénient c’est que l’info ne tombe que vers 20h, pas pratique pour anticiper un éventuel jour rouge…
J’espère que demain ou lundi ça sera rétabli et que c’est « juste » lié au début de la nouvelle saison TEMPO.
Si si , ça fonctionne. Tu peux le faire directement sur la page https://www.api-couleur-tempo.fr/api ( fait via Swagger API ). Il y a des infos sur https://www.api-couleur-tempo.fr
Si vous souhaitez utiliser les api RTE sur ESP32, vous pouvez utiliser mon fork de tasmota dédié aux contrats Linky qui gère nativement les api RTE et qui publie le résultat via MQTT.
Pour info, les api RTE sont en avance de plusieurs heures pour les annonces de couleur des jours … car elles en sont la source !
Bonjour, côté EDF toujours pas de possibilité de récupérer les informations Tempo ?
Merci
Vous avez essayé cet intégration ?
J’ai réussi à déduire les jours restant avec api-couleur-tempo:
Dans rest.yaml:
- resource: https://www.api-couleur-tempo.fr/api/joursTempo?periode=2024-2025
scan_interval: 36
sensor:
- name: "Jours Rouge past"
value_template: >
{{ (value_json | default([]) | selectattr('codeJour', 'equalto', 3) | list | count) | default('unknown') }}
- name: "Jours Blanc past"
value_template: >
{{ (value_json | default([]) | selectattr('codeJour', 'equalto', 2) | list | count) | default('unknown') }}
- name: "Jours Bleu past"
value_template: >
{{ (value_json | default([]) | selectattr('codeJour', 'equalto', 1) | list | count) | default('unknown') }}
puis dans configuration.yaml:
rest: !include rest.yaml
sensor:
- platform: template
sensors:
jours_rouge_restants:
friendly_name: "Jours Rouge restants"
value_template: >
{{ 22 - (states('sensor.jours_rouge_past') | int) }}
jours_blanc_restants:
friendly_name: "Jours Blanc restants"
value_template: >
{{ 43 - (states('sensor.jours_blanc_past') | int) }}
jours_bleu_restants:
friendly_name: "Jours Bleu restants"
value_template: >
{{ 300 - (states('sensor.jours_bleu_past') | int) }}
Pour la couleur tempo aujourd’hui et demain:
Dans rest.yaml:
- resource: https://www.api-couleur-tempo.fr/api/jourTempo/today
scan_interval: 3600
sensor:
- name: "Tempo Aujourd'hui"
value_template: >
{% set codes = {0: "inconnu", 1: "bleu", 2: "blanc", 3: "rouge"} %}
{{ codes[value_json.codeJour] }}
json_attributes:
- dateJour
- codeJour
- periode
- resource: https://www.api-couleur-tempo.fr/api/jourTempo/tomorrow
scan_interval: 60
sensor:
- name: "Tempo Demain"
value_template: >
{% set codes = {0: "inconnu", 1: "bleu", 2: "blanc", 3: "rouge"} %}
{{ codes[value_json.codeJour] }}
json_attributes:
- dateJour
- codeJour
- periode
J’utilise aussi cette intégration et elle est parfaite.
Aucun bug et très réactive.
Les entités sont faciles a récupérer pour créer des notifications.
Bien vu tikismoke
Merci Nicdu40.
Je propose un légère variante qui récupère tout en une seule requête
- resource_template: >
{% set Y1 = now().year if now().month>8 else now().year-1 %}
{{ "https://www.api-couleur-tempo.fr/api/joursTempo?periode=%s-%s" % (Y1, Y1+1) }}
headers:
Content-Type: application/json
User-Agent: Wget/1.20.3 (linux-gnu)
sensor:
- name: Tempo bleus
unique_id: tempo_bleus
value_template: >
{{ value_json
| selectattr('codeJour','eq',1)
| list | count }}
- name: Tempo blancs
unique_id: tempo_blancs
value_template: >
{{ value_json
| selectattr('codeJour','eq',2)
| list | count }}
- name: Tempo rouges
unique_id: tempo_rouges
value_template: >
{{ value_json
| selectattr('codeJour','eq',3)
| list | count }}
- name: Tempo demain
unique_id: tempo_demain
value_template: >
{% set data = value_json
| selectattr('dateJour','eq',(now()+timedelta(days=1)).strftime('%Y-%m-%d'))
|list %}
{% set couleur = {0: "", 1: "BLEU", 2: "BLANC", 3: "ROUGE"} %}
{{ couleur[data.0.codeJour] }}
- name: Tempo jour
unique_id: tempo_jour
value_template: >
{% set data = value_json
| selectattr('dateJour','eq',now().strftime('%Y-%m-%d'))
|list %}
{% set couleur = {0: "", 1: "BLEU", 2: "BLANC", 3: "ROUGE"} %}
{{ couleur[data.0.codeJour] }}
Merci befour,
Du coup avec ton code, pour ceux qui veulent les jours restants:
configuration.yaml :
rest: !include rest.yaml
- platform: template
sensors:
jours_rouge_restants:
friendly_name: "Jours Rouge restants"
value_template: >
{{ 22 - (states('sensor.tempo_rouges') | int) }}
jours_blanc_restants:
friendly_name: "Jours Blanc restants"
value_template: >
{{ 43 - (states('sensor.tempo_blancs') | int) }}
jours_bleu_restants:
friendly_name: "Jours Bleu restants"
value_template: >
{{ 300 - (states('sensor.tempo_bleus') | int) }}
Pour avoir ceci:
Couleur des vignettes tempo jour /demain:
show_name: true
show_icon: false
show_state: true
type: glance
entities:
- entity: sensor.tempo_jour
card_mod:
style: |
:host .name {
font-weight: normal;
font-size: 80%;
}
:host {
font-weight: bold;
border-style: solid;
border-radius: 15px;
{% if is_state('sensor.tempo_jour', 'ROUGE') %}
background-color: red;
{% elif is_state('sensor.tempo_jour', 'BLANC') %}
background-color: white;
{% elif is_state('sensor.tempo_jour', 'BLEU') %}
background-color: DodgerBlue;
{% else %}
background-color: lightgrey;
{% endif %}
{% if is_state('sensor.tempo_jour', 'blanc') %}
color: black;
{% else %}
color: white;
{% endif %}
}
- entity: sensor.tempo_demain
card_mod:
style: |
:host .name {
font-weight: normal;
font-size: 80%;
}
:host {
font-weight: bold;
border-style: double;
border-radius: 15px;
{% if is_state('sensor.tempo_demain', 'ROUGE') %}
background-color: red;
{% elif is_state('sensor.tempo_demain', 'BLANC') %}
background-color: white;
{% elif is_state('sensor.tempo_demain', 'BLEU') %}
background-color: DodgerBlue;
{% else %}
background-color: lightgrey;
{% endif %}
{% if is_state('sensor.tempo_demain', 'blanc') %}
color: black;
{% else %}
color: white;
{% endif %}
}
state_color: true
Pour les jours restant:
show_name: true
show_icon: false
show_state: true
type: glance
entities:
- entity: sensor.tempo_jour
card_mod:
style: |
:host .name {
font-weight: normal;
font-size: 80%;
}
:host {
font-weight: bold;
border-style: solid;
border-radius: 15px;
{% if is_state('sensor.tempo_jour', 'ROUGE') %}
background-color: red;
{% elif is_state('sensor.tempo_jour', 'BLANC') %}
background-color: white;
{% elif is_state('sensor.tempo_jour', 'BLEU') %}
background-color: DodgerBlue;
{% else %}
background-color: lightgrey;
{% endif %}
{% if is_state('sensor.tempo_jour', 'blanc') %}
color: black;
{% else %}
color: white;
{% endif %}
}
- entity: sensor.tempo_demain
card_mod:
style: |
:host .name {
font-weight: normal;
font-size: 80%;
}
:host {
font-weight: bold;
border-style: double;
border-radius: 15px;
{% if is_state('sensor.tempo_demain', 'ROUGE') %}
background-color: red;
{% elif is_state('sensor.tempo_demain', 'BLANC') %}
background-color: white;
{% elif is_state('sensor.tempo_demain', 'BLEU') %}
background-color: DodgerBlue;
{% else %}
background-color: lightgrey;
{% endif %}
{% if is_state('sensor.tempo_demain', 'blanc') %}
color: black;
{% else %}
color: white;
{% endif %}
}
state_color: true
