-------------------------------------------------------------------------------- id: 39744df0-f5c4-4e9b-9ca2-3aec58319751 title: cipherbliss_blog -------------------------------------------------------------------------------- ```{=org} #+CREATED: <2024-11-09 23:16:03> ``` ```{=org} #+TAGS: ``` ```{=org} #+SLUG: connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande ``` ```{=org} #+BLOG: cipherbliss_blog ``` # Connaître la couleur des jours EDF Tempo en ligne de commande {#connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande-1} EDF expose une API pour connaître les couleurs de jour TEMPO, mais cette api n'est pas bien référencée sur le wouaib, ce sont donc des sites qui n'ont rien à voir qui vous donneront cette info avec moult trackers et pubs de partout. Voici l'url dont vous avez besoin: > => https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf=%7Bdate_inf%C3%A9rieure%7D&dateApplicationBorneSup=%7Bdate_sup%C3%A9rieure%7D&identifiantConsommateur=src https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf=%7Bdate_inférieure%7D&dateApplicationBorneSup=%7Bdate_supérieure%7D&identifiantConsommateur=src Cette API de commerce EDF ne fonctionne que si vous demandez des dates ayant 365 jours d'écart de différence, et si vous ne mettez pas de zéro précédant le numéro de journée au format année-mois-jour. Autre limitation, la couleur du jour du lendemain vous sera donnée seulement à partir de 11h du matin dans la journée. Fabriquez vous un petit script en python pour aller pêcher ce calendrier, piocher les couleurs des deux derniers jours. Il vous suffira d'un alias de commande pour lancer "python mon~scripttempo~.py" en ayant le dossier où le script est placé dans votre variable d'environnement PATH. ``` python import requests import json from datetime import datetime, timedelta def date_il_y_a_un_an(date): date_obj = datetime.strptime(date, "%Y-%m-%d") date_il_y_a_un_an = date_obj - timedelta(days=365) return date_il_y_a_un_an.strftime("%Y-%m-%d") def get_tempo_for_today_and_tomorrow(): # Obtenir la date d'aujourd'hui datenow = datetime.now() sup = (datenow + timedelta(days=1)) inf = date_il_y_a_un_an(datenow.strftime("%Y-%m-%d")) # Obtenir la date de demain sup = sup.strftime("%Y-%m-%d") sup = sup.replace("-0", "-") inf = inf.replace("-0", "-") # print("Date inf :", inf) # print("Date sup:", sup) # URL de l'API d'EDF pour récupérer les informations sur les couleurs des jours de l'offre Tempo url = f"https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf={inf}&dateApplicationBorneSup={sup}&identifiantConsommateur=src" print(url) # Effectuer la requête HTTP et récupérer la réponse JSON response = requests.get(url) data = json.loads(response.text) # Récupérer la liste des couleurs des jours pour les 30 prochains jours calendrier = data["content"]["options"][0]["calendrier"] texte_retour="" # # Afficher les couleurs des jours pour le prochain jour for jour in calendrier[-2:]: date = jour["dateApplication"] code_couleur = jour["statut"] if code_couleur == "TEMPO_BLEU": texte_retour+=(f"\033[34m{date}: journée {code_couleur}\033[0m\n") elif code_couleur == "TEMPO_BLANC": texte_retour+=(f"\033[37m{date}: journée {code_couleur}\033[0m\n") elif code_couleur == "TEMPO_ROUGE": texte_retour+=(f"\033[31m{date}: journée {code_couleur}\033[0m\n") else: texte_retour+=(f"{date}: journée {code_couleur}") return texte_retour texte = get_tempo_for_today_and_tomorrow() print(texte) ``` Bonne réduction des pointes de conso!