Ha oui , il y en a plusieurs ? c’est celui de HEKMON
voici le lien github
Merci
Salut
ç’est pourtant clair dans la documentation :
Une fois sur la page de l’API Tempo, sélectionnez
Abonnez-vous à l'API
et créez une application (ou sélectionnez une existante que vous utilisez déjà pour votre Home Assistant).
Tu fais le login et tu vas ici : Catalogue API - API Data RTE
Merci mais si je m’abonne je n’ai rien , je vais essayer autre butineur …cdtl
Dans ce cas là, il faut voir avec RTE. Mais dernièrement, il y a pas mal de soucis avec RTE…
Changement de butineur , je me suis bien abonné à une appli … par contre je ne vois pas ou trouver id et pwd
Je tiens d’abord a dire merci a l’auteur de rtetempo
Mais, moi, je suis contre de devoir crée un compte chez RTE pour récupérer 1 ou 3 fois par jour une information presque du domaine publique …
Et comme tempo est une spécificité d’EDF, je récupère cette information sur le site d’edf (au format json)
Alors, je vous propose une autre façon de faire (sûrement moins robuste mais qui fonctionne très bien depuis 10mois chez moi )
-
1/ installer multiscrape via hacs
ps : il est possible de passer par le scrape « normal » mais alors il faut augmenter le nombre de requêtes sur leurs API et résoudre les soucis de jours temps (un jour tempo commencer a 6h et fini a 6h). -
2/ changer le fichier configuration.yml avec
multiscrape: !include multiscrape.yaml
ps: état facultative, on peut mettre le code de la partie3:
directement dans configuration.yaml mais ça aide pas la lisibilité du code , … -
3/ Utiliser ce code dans multiscrape.yml
Code a mettre dans multiscrape.yml
- name: edf_tempo
resource: https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant={{now().strftime("%Y-%m-%d")}}
scan_interval: 0
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)
button:
- name: EDF Force refresh Tempo Information
unique_id: rte_refresh
sensor:
- name: EDF Tempo Couleur Aujourd'hui
unique_id: edf_tempo_current
icon: mdi:flash
value_template: >
{% if value_json.couleurJourJ in ['TEMPO_BLEU','TEMPO_BLANC','TEMPO_ROUGE'] %}
{{ value_json.couleurJourJ |regex_replace(find='^TEMPO_', replace='') }}
{% else %}
unknown
{% endif %}
- name: EDF Tempo Couleur Demain
unique_id: edf_tempo_tomorrow
icon: mdi:flash-outline
value_template: >
{% if value_json.couleurJourJ1 in ['TEMPO_BLEU','TEMPO_BLANC','TEMPO_ROUGE'] %}
{{ value_json.couleurJourJ1 |regex_replace(find='^TEMPO_', replace='') }}
{% else %}
unknown
{% endif %}
- name: EDF Tempo Tarif Demain
unique_id: edf_tempo_tomorrow_cost
icon: mdi:currency-eur
device_class: monetary
unit_of_measurement: "€/kWh"
value_template: >
{% if (value_json.couleurJourJ1 == 'TEMPO_BLEU') %}
0.1369
{% elif (value_json.couleurJourJ1 == 'TEMPO_BLANC') %}
0.1654
{% elif (value_json.couleurJourJ1 == 'TEMPO_ROUGE') %}
0.7324
{% else %}
0
{% endif %}
- name: EDF Tempo Tarif Aujourd'hui
unique_id: edf_tempo_current_cost
icon: mdi:currency-eur
device_class: monetary
unit_of_measurement: "€/kWh"
value_template: >
{% if (value_json.couleurJourJ == 'TEMPO_BLEU') %}
{% if ((now()| as_local).hour >= 22 or (now()|as_local).hour < 6) %}
0.1056
{% else %}
0.1369
{% endif %}
{% elif (value_json.couleurJourJ == 'TEMPO_BLANC') %}
{% if ((now()| as_local).hour >= 22 or (now()|as_local).hour < 6) %}
0.1246
{% else %}
0.1654
{% endif %}
{% elif (value_json.couleurJourJ == 'TEMPO_ROUGE') %}
{% if ((now()| as_local).hour >= 22 or (now()|as_local).hour < 6) %}
0.1328
{% else %}
0.7324
{% endif %}
{% else %}
0
{% endif %}
- name: EDF Tempo Hier
unique_id: edf_tempo_hier
icon: mdi:currency-eur
value_template: >
{{ states('sensor.edf_tempo_current') }}
- name: rte_tempo_planning
resource: https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays?TypeAlerte=TEMPO
scan_interval: 86400
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)
sensor:
- name: EDF Tempo jours bleu restant
unique_id: edf_tempo_blue_remaining
value_template: "{{ value_json.PARAM_NB_J_BLEU | int }}"
unit_of_measurement: "jours"
icon: mdi:flash-outline
- name: EDF Tempo jours blanc restant
unique_id: edf_tempo_white_remaining
value_template: "{{ value_json.PARAM_NB_J_BLANC | int }}"
unit_of_measurement: "jours"
icon: mdi:flash
- name: EDF Tempo jours rouge restant
unique_id: edf_tempo_red_remaining
value_template: "{{ value_json.PARAM_NB_J_ROUGE | int }}"
unit_of_measurement: "jours"
icon: mdi:flash-alert
-
4/ Recharger la configuration de multiscrape via Outils de développement / YAML / MULTISCRAPE SCRAPING COMPONENT
-
5/ Crée une automation pour refresh tempo a la bonne heure
pour faire un refresh des infos temps juste pour résoudre « le souci des jours temps » et limiter le nombre de requetes, voici l’automatisation a utiliser :
Code a mettre dans automatisation.yaml
alias: EDF Tempo Force Refresh tempo Bleu/Blanc/Rouge Sensor/Tarif
description: Force refresh at 6h00, 11h40, 22h00
trigger:
- platform: time
at: 06:00:01
- platform: time
at: '11:40:00'
- platform: time
at: '22:00:01'
condition: []
action:
- service: multiscrape.trigger_edf_tempo
data: {}
mode: single
- 6/ Optionnel: notification attention demain tarif rouge
Voici un code pour faire une notification (texte & vocale) sur un smartphone si demain est un jour rouge
Code a mettre dans automatisation.yaml
id: '1673281984434'
alias: EDF Tarif Rouge Notification
description: 'Notification Alerte tempo : quand demain sera un tarifs rouge'
trigger:
- platform: state
entity_id:
- sensor.edf_tempo_tomorrow
from: unknown
to: ROUGE
condition: []
action:
- service: notify.mobile_app_XXXX
data:
message: TTS
data:
ttl: 0
priority: high
media_stream: alarm_stream_max
tts_text: Attention Demain EDF tarif Rouge
- service: notify.mobile_app_XXX
data:
title: EDF tarif Rouge
message: Attention Demain EDF tarif Rouge
data:
ttl: 0
priority: high
- 7/ Optionnel: affiche tempo via 2 badges
Il y a plein de façon d’afficher le « jour tempo » mais, pour moi, la plus visuel et réduite est avec les badges :
Sur le tableau de bord : Trois petits points : Modifier le tableau de bord / Trois petits points : Éditeur de configuration
code a mettre dans le dashboard
badges:
- entity: sensor.edf_tempo_current_cost
name: Aujourd'hui
card_mod:
style: |
:host {
{% set state = states('sensor.edf_tempo_current') %}
{% if state == 'BLEU' %}
--label-badge-red: DodgerBlue;
{% elif state == 'BLANC' %}
--label-badge-red: silver;
{% elif state == 'ROUGE' %}
--label-badge-red: red;
{% else %}
--label-badge-red: grey;
{% endif %}
}
- entity: sensor.edf_tempo_tomorrow_cost
name: Demain
card_mod:
style: |
:host {
{% set state = states('sensor.edf_tempo_tomorrow') %}
{% if state == 'BLEU' %}
--label-badge-red: DodgerBlue;
{% elif state == 'BLANC' %}
--label-badge-red: silver;
{% elif state == 'ROUGE' %}
--label-badge-red: red;
{% else %}
--label-badge-red: grey;
{% endif %}
}
Bon tempo à vous.
Bonjour , merci pour cette solution mais cela me parait trop compliqué pour mon petit cerveau de retraité lol , de mon coté problème résolut , pb coté butineur et pas RTE .
Cordialement . Xavier
Installé et fonctionnel.
Merci à toi.
Histoire de chipoter , manque juste une petite carte sympatoche pour les jours restants.
Installé aussi, merci pour le travail.
adopté aussi.
merci pour le partage
Bonjour. Ultra débutant sous HA, j’ai suivi ce tuto mais j’ai du me rater quelque part car mes badges restent désespérement rouges. Pourtant, quand je fait manuellement un appel au service Multiscrape scraping component: Trigger an update of edf_tempo
, 1 clic sur les badges montre bien qu’il y a eu mise à jour. Que dois-je faire ?
Edit : Trouvé ici. Il me manquait l’ajout de card-mod
Bonjour n’ayant pas réussi à installer l’API tempo depuis HACS, j’ai utilisé votre solution qui fonctionne bien pour délester les jours rouges. Mais j’ai deux petites pannes
- la couleur jour précédent est fausse, il dit que hier dimanche était rouge
- la coloration des badges ne fonctionne pas
Une idée pour résoudre
je voudrais aussi savoir s’il existe des outils de debug, des moyens d’évaluer du code js comme dans openHAB ou peut on passe par un navigateur pour évaluer le code js ?
merci à tous
Bonjour,
Perso, ça fonctionne sans souci chez moi :
Sans détails ni infos, personne ne pourra t’aider sur ton souci…
pour le débug :
- d’abord regarder l’état des sensors (et quand il a était mise a jour) :
outils de devéloppement / états
- la mise a jour étant faites par une automatisation, tu peut voir comment elle se sont passer via
Parametres / automatisation et scénes / automatisation / clique sur la bonne / historique des executions
- puis si le souci est dans le multiscrape, tu peut mettre le niveau de log en debug : via le fichier
configuration.yaml, puis reboot :
...
...
logger:
default: warning
logs:
custom_components.multiscrape: debug
...
Bonjour, merci pour ces infos très utiles. Pour le moment, je n’ai rien trouvé d’anormal. L’image que tu montres fonctionne aussi chez moi. pourrais tu vérifier sur une carte historique comme celle-ci que tu n’as pas le même problème que moi :
Le code d’hier n’est pas optimal et il servait a connaître l’ancien état (le code de base c’est pas moi qui l’a écrit, moi je l’ai améliorer). Ce qui était utile quand utiliser via le scraping « normale » exécuter toutes les heures, …
il sert a rien maintenant et peut être supprimer.
D’ailleurs, c’est pas vraiment l’état d’hier comme tu peut le voir :
- name: EDF Tempo Hier
unique_id: edf_tempo_hier
icon: mdi:currency-eur
value_template: >
{{ states('sensor.edf_tempo_current') }}
Pour la coloration, tu peut copier/coller le code dans outils de devéloppement / modèle
{% set state = states('sensor.edf_tempo_current') %}
{% if state == 'BLEU' %}
--label-badge-red: DodgerBlue;
{% elif state == 'BLANC' %}
--label-badge-red: silver;
{% elif state == 'ROUGE' %}
--label-badge-red: red;
{% else %}
--label-badge-red: grey;
{% endif %}
Pour moi, ca affiche--label-badge-red: red;
(aujourd’huit)
Super c’est l’info que je cherchais. donc l’évaluation des expressions ou code js/yaml se fait dans modèle. J’ai bien le bon résultat.
Mais pour moi même une coloration statique ne marche pas ni sur raspi3 ni sur raspi4
le début de mon code :
views:
- title: Vue 1
badges:
- entity: sensor.edf_tempo_hier
- entity: sensor.edf_tempo_current
style: |
:host {
color: orange;
--label-badge-red: cyan;
--label-badge-background-color: yellow;
}
- entity: sensor.edf_tempo_tomorrow
- entity: sensor.edf_tempo_red_remaining
- entity: sensor.edf_tempo_current_cost
name: Aujourd'
- entity: sensor.edf_tempo_tomorrow_cost
name: Demain
- entity: automation.edf_tempo_force_refresh_tempo_bleu_blanc_rouge_sensor_tarif
name: Rafraîchir
cards:
y a t il une option à valider pour pouvoir colorer?
Ahh, ton souci semble être lié a une évolution de card-mod,
cf Release Card-mod 3.4.2 · thomasloven/lovelace-card-mod · GitHub
je vais mettre a jour mon exemple pour rajouter la ligne card_mod
avant le style
, …
Ceci fonctionne mais ça n’a pas la compacité de tes badges
cards:
- type: entities
entities:
- entity: sensor.edf_tempo_current
card_mod:
style: |
ha-card {
{% set state = states('sensor.edf_tempo_current') %}
{% if state == 'BLEU' %}
color: DodgerBlue;
{% elif state == 'BLANC' %}
color: orange;
{% elif state == 'ROUGE' %}
color: red;
{% else %}
color: black;
{% endif %}
}
- type: entities
entities:
- entity: sensor.edf_tempo_tomorrow
card_mod:
style: |
ha-card {
{% set state = states('sensor.edf_tempo_tomorrow') %}
{% if state == 'BLEU' %}
color: DodgerBlue;
{% elif state == 'BLANC' %}
color: orange;
{% elif state == 'ROUGE' %}
color: red;
{% else %}
color: black;
{% endif %}
}
Il semblerait que les dernières mises à jour de multiscrape nécessitent de remettre les mains dans le cambouis. Lien