Accès à la couleur du jour Tempo EDF (électricité de France)

Bonjour,
J’aimerais pouvoir utiliser la couleur tempo EDF du jour et du lendemain avec mon Homey.

J’ai trouvé sur le net des exemples d’appel au services EDF :
https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant=2022-10-12
ou
https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays

Dans un navigateur, s’affiche bien le résultat attendu, sous forme json.
Mais dans les scripts (avancés) de Homey, faire une requête HTTP GET avec ces url ne fonctionne pas, Network request fail.

Dans les mêmes conditions, faire la requette HTTP GET avec l’url de la vidéo de démonstration https://api.chucknorris.io/jokes/random fonctionne

Une idée pour me débloquer ? Merci.
Jacques

J’ai essayé et je pense que c’est l’API EDF qui déconne. Elle renvoie une erreur.
Car avec celle de Chuck Norris cela fonctionne.

Je partage le code au cas ou…

Pour récupérer sous forme de String (String = chaine de caractère, lettre et chiffre comme un texte. Par exemple " Nous sommes le 24 Novembre 2022")

const message = JSON.parse(args[0]); //(args[0]) pour le premier argument dans la carte de flow, (args[1]) pour le second...
await tag('Extract Message', (message.value)); //"Extract Message" est le nom que vous souhaitez donner au tag 
return true; //true pour valider dans la carte de flow sinon elle s'exécutera mais comme si ce n'était pas valide

Pour récupérer sous forme de Number donc uniquement des chiffres:

//Par exemple la requête HTTP renvoi: {"name": "Temperature Nantes", "temperature": "21"}
const message = JSON.parse(args[0]);
await tag('Extract Message', Number(message.temperature));
return true;

Le Flow est le suivant:

J’ai réussi.

Le code Homey Script est le suivant:

// Create the request
const res = await fetch('https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays');
if (!res.ok) {
  throw new Error(res.statusText);
}

// Get the body JSON
const body = await res.json();

var blanc = parseFloat(`${body.PARAM_NB_J_BLANC}`)
var rouge = parseFloat(`${body.PARAM_NB_J_ROUGE}`)
var bleu = parseFloat(`${body.PARAM_NB_J_BLEU}`)

await tag('Jour Blanc', Number(blanc));
await tag('Jour Rouge', Number(rouge));
await tag('Jour Bleu', Number(bleu));

return true;

Le flow:

Bravo Sébastien, tu as trouvé une bonne solution à mon problème.
Grand merci à toi.
Reste à comprendre pourquoi le “Faire une requête HTTP” dans un flow ne fonctionne pas avec une url qui fonctionne bien avec le “fetch” dans un script homey (ou dans un navigateur)

De rien, j’ai adapté un des exemples qui était dans Homey Script.
Je pense que la requête HTTP attend une réponse alors que le fetch récupère simplement ce qui est dans la page sans rien attendre en retour.

Le code peut être raccourci à:

// Create the request
const res = await fetch('https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays');
if (!res.ok) {
  throw new Error(res.statusText);
}

// Get the body JSON
const body = await res.json();

await tag('Jour Blanc', Number(parseFloat(`${body.PARAM_NB_J_BLANC}`)));
await tag('Jour Rouge', Number(parseFloat(`${body.PARAM_NB_J_ROUGE}`)));
await tag('Jour Bleu', Number(parseFloat(`${body.PARAM_NB_J_BLEU}`)));
return true;