Bonjour et merci c’est super! Je viens d’essayer et cela fonctionne parfaitement bien! Merci beaucoup pour votre aide (c’est beaucoup plus simple que ce que j’espérais faire via IFTTT Webhook et Cie…)
J’ai réussi à afficher les infos dans le Tableau de bord… Yes!!!
Par contre l’exemple de carte Markdown ne fonctionne pas, j’ai une erreur dans l’écran configuration </>UndefinedError: None has no attribute astimezone</> ???
Les différents sensors EJP sont définis comme des entités en lecture seule dans les paramètres et pas d’ID associé donc… et pas moyen en l’état des entités et de mes faibles connaissances de pouvoir utiliser l’information sensor.ejp_demain_etat en tant que déclencheur dans une automatisation par exemple, comment procéder?
Comment sont tes entités SENSOR.TEMPO_xxxx dans tes paramètres? Moi j’ai ça (voir fichier)
Je ne sais pas les transformer pour qu’ils ne soient plus en lecture seule… car en l’état je ne peux m’en servir pour automatiser quoi que ce soit…
Merci beaucoup ;o)
J’ai pareil que toi.
Je vous pas le rapport avec une automatisation. C’est sur qu’il serait certainement mieux que ça soit un booleen mais honnêtement, j’en sais rien j’y connais pas grand chose à Home Assistant, je bidouille.
Si je fais comme ça, ça a l’air de fonctionner mais bon j’imagine que c’est pas vraiment la bonne solution
Bien vu! Moi je n’avais pas vu que je pouvais le faire comme ça!
Sinon j’ai essayé de créer une entrée dans Paramètres / Créer une Entrée / Template / Modéliser un capteur binaire / Modèle d’état = {{ states(‹ sensor.ejp_aujourdhui_etat ›) }}
Je ne sais pas si c’est plus facile à gérer comme ça je verrai
Merci de cet échange constructif Christophe!
A+
si dans l’interface utilisateur il y a la lecture seule, c’est qu’ils n’ont pas été créés avec l’interface utilisateur mais avec un template dans configuration.yaml
il faut aller modifier le template à la main.
Bonjour,
J’ai essayé ta proposition pour les infos EJP : configuration.yaml et rest.yaml => ok
J’ai donc les sensors dans mes capteurs au niveau de l’aperçu de mon HA
Les configurations proposées s’appuient sur ton site : vont-elles perdurer?
C’est cassé chez moi aussi , c’est l’API EDF qui n’est plus disponible.
Je suis ne TEMPO, et en analysant la page web d’EDF, il y a 2 autres API:
calendrier, avec parametres debut/fin, donc possible de cibler à aujourd’hui/demain pour Tempo
jours restants
Mais ces API semblent n’être consultable qu’en GET, et le résultat json semble + compliqué à parser, d’autant plus que je ne suis pas un pro des template home assistant. Donc au final, je ne suis pas tiré d’affaire pour refaire marcher le truc, et j’envisage meme de passer par un autre plugin home assistant (restfull, command_line ou que sais-je…)
Et si quelqu’un est + rapide que moi, je prends aussi.
Finalement, en faisant une recherche, j’ai vu que quelqu’un a fait 2 intégrations HACS sympa pour Tempo. Les infos depuis l’API RTE (il faut se créer un compte, que j’avais déjà pour les infos ECOWATT/risques de coupures), et aussi un theme pour avoir les couleurs Tempo dans les tableau de bord énergie!
Sur gitbub:
Oui j’ai installé RTETEMPO et cela fonctionne très bien.
Par contre je n’ai pas TEMPO j’ai encore EJP, et les jours ROUGE TEMPO ne correspondent pas forcément aux jours ROUGE EJP
RTE donne accès aux informations TEMPO depuis son site, par contre il ne donne pas accès aux informations EJP…
Ne reste plus qu’à prendre les informations sur le site EDF mais je ne sais pas comment faire! De plus @Alain_L fournit une solution sur son site en json qui fonctionne à priori mais je ne connais pas sa source d’informations et je ne sais si elle est pérenne ou pas…
Depuis septembre ou octobre 2024 j’utilise ton dispositif pour alimenter mon HA avec les jours EJP et le fichier rest.yaml
Depuis 3 ou 4 jours plus d’info… cela ne fonctionne plus! Je suis désespéré à l’aube de la nouvelle campagne EJP qui s’annonce! Tu peux me dire si cela va refonctionner ou …???
Suite aux récents changements de l’API EDF, j’ai créé plusieurs sensors pour suivre le statut EJP en utilisant la plateforme REST de Home Assistant. Ces sensors permettent de savoir si aujourd’hui et demain sont des jours EJP, ainsi que le nombre de jours EJP restants pour la saison. Vous pouvez les ajouter dans votre sensors.yaml ou configuration.yaml, selon votre configuration.
Sensors :
EJP Aujourd’hui
Ce sensor interroge l’API pour savoir si la journée en cours est un jour EJP. Il renvoie le statut actuel basé sur la date du jour.
EJP Demain
Similaire au sensor précédent, mais pour la journée de demain. Cela permet de prévoir si demain sera un jour EJP.
Jours restants
Ce sensor calcule le nombre de jours EJP restants pour la saison en soustrayant le nombre de jours utilisés du total prévu.
Templates EJP
Enfin, deux sensors template (ejp_on et ejp_on_demain) indiquent si aujourd’hui ou demain sont des jours EJP sous forme booléenne, ce qui peut être utile pour les automatisations.
Voici le code à insérer dans votre fichier YAML :
# Sensor for EJP Aujourd'hui
- platform: rest
name: "EJP Aujourd'hui"
resource_template: "https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=EJP&dateApplicationBorneInf={{ (now().replace(year=now().year - 1) + timedelta(days=1)).strftime('%Y-%m-%d') }}&dateApplicationBorneSup={{ (now() + timedelta(days=1)).strftime('%Y-%m-%d') }}&identifiantConsommateur=src"
value_template: >-
{% if value_json.errors | length == 0 %}
{% set today = now().strftime('%Y-%m-%d') %}
{% for day in value_json.content.options[0].calendrier %}
{% if day.dateApplication == today %}
{{ day.statut }}
{% endif %}
{% endfor %}
{% else %}
{{ states('sensor.ejp_aujourdhui') }} # Keep the last valid value if there's an error
{% endif %}
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)
scan_interval: 3600 # Rafraîchissement toutes les heures
# Sensor for EJP Demain
- platform: rest
name: "EJP Demain"
resource_template: "https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=EJP&dateApplicationBorneInf={{ (now().replace(year=now().year - 1) + timedelta(days=1)).strftime('%Y-%m-%d') }}&dateApplicationBorneSup={{ (now() + timedelta(days=1)).strftime('%Y-%m-%d') }}&identifiantConsommateur=src"
value_template: >-
{% if value_json.errors | length == 0 %}
{% set tomorrow = (now() + timedelta(days=1)).strftime('%Y-%m-%d') %}
{% for day in value_json.content.options[0].calendrier %}
{% if day.dateApplication == tomorrow %}
{{ day.statut }}
{% endif %}
{% endfor %}
{% else %}
{{ states('sensor.ejp_demain') }} # Keep the last valid value if there's an error
{% endif %}
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)
scan_interval: 3600 # Rafraîchissement toutes les heures
- platform: rest
name: "Jours restants"
resource_template: "https://api-commerce.edf.fr/commerce/activet/v1/saisons/search?option=EJP&dateReference={{ now().strftime('%Y-%m-%d') }}"
value_template: >-
{% set total_days = value_json.content[0].nombreJours %}
{% set used_days = value_json.content[0].nombreJoursTires %}
{{ total_days - used_days }}
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: template
sensors:
ejp_on:
friendly_name: "EJP"
value_template: "{{ is_state('sensor.ejp_aujourd_hui', 'EJP') }}"
device_class: power
- platform: template
sensors:
ejp_on_demain:
friendly_name: "EJP Demain"
value_template: "{{ is_state('sensor.ejp_demain', 'EJP') }}"
device_class: power
scan_interval: 3600 # Rafraîchissement toutes les heures
Ces sensors sont paramétrables en fonction de votre configuration (dans sensors.yaml ou configuration.yaml). J’espère que cela pourra aider ceux d’entre vous qui suivent le statut EJP !
N’hésitez pas à me poser des questions si vous rencontrez des soucis de configuration.
EDIT: Ajout de la gestion des erreurs API car l’API ne semble pas ultra stable
EDIT 2: Le capteur « Jours restants » a été ajusté pour exclure le jour de demain si celui-ci est un jour EJP (l’API renvoie le nombre de jours passés + prévus). Désormais, le capteur vérifie le statut de demain et soustrait automatiquement 1 jour du total si demain est un jour EJP.
Bonjour Aihua,
Merci pour ton travail !
j’ai bien inséré dans configuration.yaml le lien > sensor: !include sensors.yaml
puis dans le fichier sensors.yaml les sensors proposés. Après vérification HA envoi le message suivant : « Unexpected error calling config validator: ‹ NoneType › object is not iterable »
une idée ?
merci
JP
Sauvegardes OK ! indentations vérifiées, mais impossible de redémarrer HA.
Pardon, je suis novice dans la discussion, pour insérer mes fichiers autrement que par un copier coller de leur contenu… ? ou des images ?
Si HA ne redémarre pas c’est qu’il y a un problème de syntaxe ou d’indentations. Tu peux demander a ChatGPT de vérifier ton code et son indentation, il est plutôt bon pour ca.