Skip to content

Instantly share code, notes, and snippets.

@richiethom
Last active October 12, 2025 07:28
Show Gist options
  • Select an option

  • Save richiethom/a2acd818d6669ecac74b642684f8f718 to your computer and use it in GitHub Desktop.

Select an option

Save richiethom/a2acd818d6669ecac74b642684f8f718 to your computer and use it in GitHub Desktop.
Lire et transformer données EDF Tempo

Télécharger les données via l'API EDF

Il faut se connecter à la console EDF et afficher la consommation. Utiliser les devtools du navigateur afin de trouver une requête GET vers suiviconso. Copier la requête en format curl et modifier la requête pour trouver la plage de données souhaitée:

curl 'https://suiviconso.edf.fr/api/v2/sites/-/consumptions?beginTs=2024-08-31T23:00:00.000Z&endTs=2025-08-31T23:00:00.000Z&stepUnit=DAYS&stepValue=1&withEstimated=SURROUNDING_ESTIMATED&withLoadCurveCompletion=true&isGlobalConsumptionWanted=true'

Transformer les données

La réponse est un paquet JSON; les donées intéressantes se trouvent dans consumptions, avec un objet par jour.

ex:

 {
      "period": {
        "startTime": "2024-09-01T01:00:00+02:00",
        "endTime": "2024-09-02T01:00:00+02:00"
      },
      "energyMeter": {
        "total": 24.22100000,
        "byTariffHeading": {
          "HCJROUGE": 0,
          "HPJROUGE": 0,
          "HPJBLANC": 0,
          "HPJBLEU": 4.986,
          "HCJBLEU": 19.23500000,
          "HCJBLANC": 0
        }
      },
      "cost": {
        "total": 3.943242288888889,
        "standingCharge": 0.6481388888888889,
        "standingChargeByComponents": {},
        "byTariffHeading": {
          "HCJROUGE": 0.0,
          "HPJROUGE": 0.0,
          "HPJBLANC": 0.0,
          "HPJBLEU": 0.8022473999999999,
          "HCJBLEU": 2.4928559999999997,
          "HCJBLANC": 0.0
        }
      },
      "quality": 1.0,
      "errorFlags": [],
      "indexNatures": [
        "LINKY_OK"
      ],
      "status": "COMPLETE",
      "nature": "REAL",
      "aggregated": true,
      "usingLoadCurve": true
    }

Transformer les données en CSV

La commande jq suivante transforme en csv avec colonnes pour date, consommation en kwh par couleur et en heures creuses/pleines:

jq -r '["Date", "HPJBLEU", "HCJBLEU", "HPJBLANC", "HCJBLANC", "HPJROUGE", "HCJROUGE"],
       (.consumptions[] | 
        [.period.startTime[0:10],
         .energyMeter.byTariffHeading.HPJBLEU,
         .energyMeter.byTariffHeading.HCJBLEU,
         .energyMeter.byTariffHeading.HPJBLANC,
         .energyMeter.byTariffHeading.HCJBLANC,
         .energyMeter.byTariffHeading.HPJROUGE,
         .energyMeter.byTariffHeading.HCJROUGE]) |
       @csv' electricitydata.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment