cipherbliss_blog
Connaître la couleur des jours EDF Tempo en ligne de commande
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:
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 monscripttempo.py" en ayant le dossier où le script est placé dans votre variable d'environnement PATH.
import requests
import json
from datetime import datetime, timedelta
def date_il_y_a_un_an(date):
= datetime.strptime(date, "%Y-%m-%d")
date_obj = date_obj - timedelta(days=365)
date_il_y_a_un_an return date_il_y_a_un_an.strftime("%Y-%m-%d")
def get_tempo_for_today_and_tomorrow():
# Obtenir la date d'aujourd'hui
= datetime.now()
datenow = (datenow + timedelta(days=1))
sup
= date_il_y_a_un_an(datenow.strftime("%Y-%m-%d"))
inf
# Obtenir la date de demain
= sup.strftime("%Y-%m-%d")
sup = sup.replace("-0", "-")
sup = inf.replace("-0", "-")
inf
# URL de l'API d'EDF pour récupérer les informations sur les couleurs des jours de l'offre Tempo
= f"https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf={inf}&dateApplicationBorneSup={sup}&identifiantConsommateur=src"
url print(url)
# Effectuer la requête HTTP et récupérer la réponse JSON
= requests.get(url)
response = json.loads(response.text)
data
# Récupérer la liste des couleurs des jours pour les 30 prochains jours
= data["content"]["options"][0]["calendrier"]
calendrier
=""
texte_retour
# # Afficher les couleurs des jours pour le prochain jour
for jour in calendrier[-2:]:
= jour["dateApplication"]
date = jour["statut"]
code_couleur if code_couleur == "TEMPO_BLEU":
+=(f"\033[34m{date}: journée {code_couleur}\033[0m\n")
texte_retourelif code_couleur == "TEMPO_BLANC":
+=(f"\033[37m{date}: journée {code_couleur}\033[0m\n")
texte_retourelif code_couleur == "TEMPO_ROUGE":
+=(f"\033[31m{date}: journée {code_couleur}\033[0m\n")
texte_retourelse:
+=(f"{date}: journée {code_couleur}")
texte_retour
return texte_retour
= get_tempo_for_today_and_tomorrow()
texte print(texte)
Bonne réduction des pointes de conso!