MAJ Tempo EDF

Forum pour tous les autres protocoles : Enocean, X10, les cartes piface.razberry ...
Pour les questions concernant le choix de protocoles, merci d'utiliser le forum Les autres objets.
Répondre
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

MAJ Tempo EDF

Message par lost »

Hello,

Depuis 3j, juste à la fin de l'année Tempo, plus de MAJ pour ma part via les API http:
https://particulier.edf.fr/services/res ... eRelevant=
https://particulier.edf.fr/services/res ... erte=TEMPO
qui retournent, au lieu du JSON habituel, RESTEASY003210: Could not find resource for...

A lire le forum jeedom, on aurait désormais ceci pour la partie compteurs avec un changement de format et API très capricieuse selon date/appels répétitifs pour tester.
https://api-commerce.edf.fr/commerce/ac ... 2024-08-31

Il semble qu'il y ait des gens payés pour faire chier le monde à changer ce qui fonctionnait pour un truc qui ne semble même pas avoir été testé...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: MAJ Tempo EDF

Message par Keros »

Ton lien https://api-commerce.edf.fr/commerce/ac ... 2024-08-31 renvoi :
{"errors":[{"code":"ATM_HTTP_400","description":"La syntaxe de la requête est erronée.","severity":"ERROR","type":"TECHNICAL"}],"content":null}
:arrow: "La syntaxe de la requête est erronée."

Pour une fois qu'il y avait un truc qui fonctionnait bien. C'était trop beau pour durer !!
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
pronoob
Messages : 43
Inscription : 16 oct. 2021, 18:16

Re: MAJ Tempo EDF

Message par pronoob »

Salut,

bien regrettable effectivement, bon peut-être est-ce simplement passager ?

autrement j'ai trouvé ceci

https://www.services-rte.com/cms/open_d ... =2024-2025
il faut changer la saison au premier septembre puis chercher la bonne date dans le json retourné.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: MAJ Tempo EDF

Message par Chrominator »

Tout le nécessaire est là, directement à la source, sur votre forum préféré et ça fonctionne toujours aujourd'hui.
Capture d'écran 2024-09-01 125157.png
Capture d'écran 2024-09-01 125157.png (13.29 Kio) Consulté 4341 fois
(Ne faites pas attention aux dates des widgets ou à leur contenu - Hello World - L'important dans mon cas était d'avoir un icône représentatif du tarif pour mes custom pages)
Dernière modification par Chrominator le 04 sept. 2024, 20:01, modifié 1 fois.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: MAJ Tempo EDF

Message par lost »

pronoob a écrit : 01 sept. 2024, 12:00 autrement j'ai trouvé ceci
https://www.services-rte.com/cms/open_d ... =2024-2025
Bizarre, c'est pas ce qui est trouvable dans les API RTE, dont Tempo, qui présentaient toutes le besoin de s'identifier pour obtenir une info ouverte... défaut que l'on n'avait pas côté EDF justement.

Mais à lire ce qui est documenté ici:
https://data.rte-france.com/catalog/-/a ... ntract/1.1

on retrouve quand même un "air de famille" (info fallback...). Comment as-tu eu connaissance de cette URL? Tenté un appel daté au lieu de saison sur le modèle de l'API documenté (mais imposant de se faire chier avec une authentification, du Oauth en prime) mais sans succès.

Bon, sinon, reste à expérimenter voir quand la MAJ est faite (EDF c'était entre 11h et 11h10, très rarement au delà) en en fin d'année cela fait un gros JSON, mais les infos que j'utilise actuellement y sont même si côté compteurs faut compter soit même les jours de chaque couleur dans le JSON retourné.

Certes, il y a aussi la propo de Chrominator mais c'est pas à la source (fournisseur ou distributeur d'électricité), justement... et vu l'impact tarifaire d'une erreur de commutation d'un timer plan bleu/blanc à rouge, je préférerais ne pas ajouter un tiers (ici domogeek.entropialux.com) à la chaîne!
pronoob
Messages : 43
Inscription : 16 oct. 2021, 18:16

Re: MAJ Tempo EDF

Message par pronoob »

J'ai recherché ceci dans google : "api-commerce.edf.fr" pour en trouver la bonne syntaxe (sans succès)
et j'ai cliqué sur la première proposition puis la 3eme page du sujet
https://f1atb.fr/forum_f1atb/thread-404 ... ml#pid2553

maintenant, si l'on creuse un peu sur l'erreur "RESTEASY003210", ça oriente plus sur une défaillance qu'un blocage volontaire, donc peut-être devrions nous simplement patienter ?

Perso je fais tout avec LTARF donc la couleur du lendemain ne m'est pas primordiale mais ça limite l'anticipation.
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: MAJ Tempo EDF

Message par lost »

Merci énormément de l'info, j'avais aussi fait qq recherches sur l'erreur et la même API mais sans tomber sur cette API RTE sans jeton ni prise de tête pour utiliser une info publique.

A regarder de plus près, cela vient d'ici:
https://github.com/jbromain/rte-tempo/b ... ommand.php

C'est ce projet RTE-Tempo qui est utilisé pour alimenter le site https://www.api-couleur-tempo.fr
A lire les commentaires du source ci dessus, les API RTE documentées (et avec un jeton à la con) manquent de fiabilité. Je ne comprends vraiment pas ce besoin de savoir qui accède à de l'info par ailleurs ouverte, c'est absolument stupide.

Pas regardé plus tôt pour le moment, mais ce matin dès 10h on avait la couleur pour demain. On a donc minimum 1h d'avance vs EDF. :mrgreen:
Ce sera au moins cela de gagné... J'ai parfois dû anticiper des gros consommateurs pas possibles à mettre de nuit (bruyant...), la veille d'un rouge en HP bleu voir blanc et avoir l'info au plus tôt est forcément bienvenu. Surtout qu'on sait jamais à l'avance combien on va en enquiller.

Après, ce qui est chiant, c'est qu'il faut reprendre un truc fait il y a seulement 1 an 1/2 et qui fonctionnait très bien. Je vais quand même préparer rapidement une évolution de mon côté car il faut tester à l'usage et le plus longuement possible la fiabilité du truc avant que les premiers jours rouges n'arrivent et testerais de temps en temps si le côté EDF retombe en marche.
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: MAJ Tempo EDF

Message par lost »

Un embryon de script de test Lua (brut/hors intégration domoticz) pour la partie récupération de l'info, testé avec l'interpréteur Lua installé par ailleurs sur ma Debian 12 sur mon PC:

Code : Tout sélectionner

jsonLib = assert(loadfile("JSON.lua"))
json    = (jsonLib)()
    
local function getUrlJson(url)
    config  = assert(io.popen('curl --retry 1 --connect-timeout 2 -m 4  \"'..url..'\"'))
    tempo   = config:read('*all')
    config:close()

    jsonOut = json:decode(tempo)
    return(jsonOut)
end

-- Build tempo season string (tempo year change at 1st of september) for RTE url
now     = os.time()
nowDate = os.date("*t", now)
if (nowDate.month >= 1) and (nowDate.month <= 8) then
  tempoSeason=tostring(nowDate.year - 1)..'-'..tostring(nowDate.year)
else
  tempoSeason=tostring(nowDate.year)..'-'..tostring(nowDate.year + 1)
end

print("Annee Tempo en cours : "..tempoSeason.."\n")  -- DEBUG

-- Get all data for current tempo season
tempoSeasonURL  = 'https://www.services-rte.com/cms/open_data/v1/tempo?season='..tempoSeason
tempoSeasonData = getUrlJson(tempoSeasonURL)

print("\nValues :")  -- DEBUG
print(json:encode_pretty(tempoSeasonData.values))

tempoCount = {blue=0, white=0, red=0}
tempoColor = {J="UNDEFINED", J1="UNDEFINED"}
tempoDate  = {J=tostring(os.date("%Y-%m-%d", now)), J1=tostring(os.date("%Y-%m-%d", now + 86400))}

print("\nDates J/J1 : "..tempoDate.J.."/"..tempoDate.J1)

print("\nParcours table...")
for k,v in pairs(tempoSeasonData.values) do
    -- Calculate current tempo year colours count
    if     v == "BLUE"  then tempoCount.blue  = tempoCount.blue  + 1
    elseif v == "WHITE" then tempoCount.white = tempoCount.white + 1
    elseif v == "RED"   then tempoCount.red   = tempoCount.red   + 1
    end
    
    -- Get J/J1 colors
    if     k == tempoDate.J  then tempoColor.J  = v
    elseif k == tempoDate.J1 then tempoColor.J1 = v
    end
    
    print(k.." = "..v)  -- DEBUG
end

print("\nTotaux Bleu/Blanc/Rouge : "..tempoCount.blue.."/"..tempoCount.white.."/"..tempoCount.red)
print("Tempo J/J1 : "..tempoColor.J.."/"..tempoColor.J1)
A placer dans un répertoire de test dans un fichier testTempoRTE.lua dans lequel on aura aussi recopié la lib JSON incluse avec Domoticz sous ~/domoticz/scripts/lua/JSON.lua qui sert à construire la table Lua utilisée à partir du JSON de la saison en cours récupéré chez RTE.

Il suffit ensuite, de ce répertoire, d'executer ce source à travers l'interpréteur lua du système (après avoir fait, par exemple, "sudo apt install lua"):

Code : Tout sélectionner

$ lua testTempoRTE.lua 
Annee Tempo en cours : 2024-2025

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   212    0   212    0     0    508      0 --:--:-- --:--:-- --:--:--   508

Values :
{
  "2024-09-01": "BLUE",
  "2024-09-01-fallback": "false",
  "2024-09-02": "BLUE",
  "2024-09-02-fallback": "false",
  "2024-09-03": "BLUE",
  "2024-09-03-fallback": "false",
  "2024-09-04": "BLUE",
  "2024-09-04-fallback": "false"
}

Dates J/J1 : 2024-09-03/2024-09-04

Parcours table...
2024-09-03-fallback = false
2024-09-04 = BLUE
2024-09-03 = BLUE
2024-09-01 = BLUE
2024-09-01-fallback = false
2024-09-02-fallback = false
2024-09-04-fallback = false
2024-09-02 = BLUE

Totaux Bleu/Blanc/Rouge : 4/0/0
Tempo J/J1 : BLUE/BLUE
On récupère au milieu de ces affichages pour le debug les totaux de la saison tempo en cours et les couleurs J/J1 comme on les avait via EDF (mais en anglais).

J'intègrerais ce proto quick&dirty à mon script existant, utilisant l'interpréteur et le système de scripts de Domoticz, quand j'aurais mieux ciblé l'heure de bascule avec qq essais manuels ces prochains jours (tant que l'on aura Tempo J1 à "UNDEFINED", sans doute avant 10h du matin ou un peu plus tôt, c'est que l'info du lendemain n'est pas encore là).
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: MAJ Tempo EDF

Message par lost »

J'ai au final MAJ mon script tempo complet en refactorisant la partie MAJ et la rendant compatible avec ce qu'EDF renvoyait (laissant la possibilité d'y repasser au besoin)... au détail près que j'aurais désormais un compte des bleu/blanc/rouge à date au lieu d'un décompte (je préfère garder l'info brute/extraite des données dispo, ça évitera les modifs si un jour les totaux ou données renvoyées changent).

Et à l'essai, ce matin c'était MAJ côté RTE dès mon 1er essai vers 7h30 du matin alors que côté EDF c'était peu après 11h en général.

Je verrais à l'usage, mais j'ai donc changé la plage horaire de tentatives initiales de 11h à 16h (essai toutes les 15mn jusqu'à avoir la couleur du lendemain dispo, en général 1 ou 2 suffisaient) pour 7h/12h. Je décalerais encore au besoin si je vois qu'a 7h l'info lendemain est déjà là dans les jours qui viennent...

Ce sera au moins cela de gagné à s'être emmerdé. :D

Par contre, je n'ai pas trouvé la signification qui se cache derrière l'info datée "fallback", sauf qu'il s'agit d'un "mode dégradé" mais sans explication précise dans les liens de l'API (celle à jeton, pas celle utilisée, mais qui donne aussi cette info). Comme on peut voir les données des saisons Tempo passées, j'ai regardé sur 2022-2023 et 2021-2022 sans voir aucun "true" dans les champs "fallback". Cela ne semble donc pas utilisé.
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: MAJ Tempo EDF

Message par lost »

Keros a écrit : 31 août 2024, 23:14 :arrow: "La syntaxe de la requête est erronée."
C'est en fait très capricieux et ce matin qq essais donnent, après ces pseudo-erreurs:

Code : Tout sélectionner

https://api-commerce.edf.fr/commerce/activet/v1/saisons/search?option=TEMPO&dateReference=2024-09-04

==>>

{"errors":[],"content":[{"typeJourEff":"TEMPO_BLANC","libelle":"TEMPO BLANC 2024 2025","nombreJours":43,"premierJour":"2024-09-01","dernierJour":"2025-08-31","premierJourExclu":null,"dernierJourExclu":null,"nombreJoursTires":0,"etat":"OUVERTE"},{"typeJourEff":"TEMPO_BLEU","libelle":"TEMPO BLEU 2024 2025","nombreJours":300,"premierJour":"2024-09-01","dernierJour":"2025-08-31","premierJourExclu":null,"dernierJourExclu":null,"nombreJoursTires":4,"etat":"OUVERTE"},{"typeJourEff":"TEMPO_ROUGE","libelle":"TEMPO ROUGE 2024 2025","nombreJours":22,"premierJour":"2024-11-01","dernierJour":"2025-03-31","premierJourExclu":null,"dernierJourExclu":null,"nombreJoursTires":0,"etat":"NON_COMMENCEE"}]}
tempoEDFnew.jpg
tempoEDFnew.jpg (55.9 Kio) Consulté 4221 fois
On voit que l'on a des infos également sur les périodes en cours (on n'est pas encore dans les dates à jour rouge possible...) et les totaux/compteurs de chaque couleur actuels... Ce qui veut dire qu'on devrait à chaque fois comparer ce qui change pour déduire indirectement la couleur du lendemain: Le truc pondu par un type alambiqué!!! :o

Mais bon, si en prime c'est pas fiable et qu'on peut pas compter dessus... A surveiller si cela change ou si RTE coupait son API.
Répondre