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

Bonjour @sebyldino !

J’ai un petit souci avec le décompte des jours rouge au passage de la nouvelle année, il me donne 22 jours restants, comme si il avait fait un reset au 1er janvier, sans compter les jours rouge du 2 et du 3.

Auriez-vous une idée de l’origine du bug ?

Merci pour votre script qui est d’une très grande aide pour gérer les flows avec les jours Tempo !

Erreur de script
const currentYear = new Date().getFullYear();

var periode = ${currentYear}-${currentYear+1};
Depuis 01 jan 2025 currentYear = 2025 donc la période est 2025-2026

Pour RTE cette période ne démarrera que le 1er septembre 2025 et comportera 22j

CQFD

// script corrigé

let date1 = new Date();
const currentYear = new Date().getFullYear();

let date2 = new Date(currentYear,8,1);
if (date1 < date2) {
console.log(‘date1 is before 1er Septembre’);
var periode = ${currentYear-1}-${currentYear};
} else {
console.log(‘date1 is after 1er Septembre’);
var periode = ${currentYear}-${currentYear+1};
}

Ca fonctionne nickel ! Merci beaucoup !!!

Bonjour
je suis débutant dans le script, j’ai essayer copier le script tempo que j’ai trouvé dans la discussion, mais j’ai une erreur sur les jours restant, il indique 22 au lieu de 12 jours restant .
serait il possible de poster le script complet SVP ? Merci
Voici celui que j’utilise

var color = [“PAS ENCORE DEFINI”, “TEMPO_BLEU”, “TEMPO_BLANC”, “TEMPO_ROUGE”];

var tagName_today = “JourJ”;
var tagName_tomorrow = “JourJ+1”;
var tagName_jourRougeRestant = “JourRougeRestant”;

var jourRougeRestant = 22;

var today = “Non défini”;
var tomorrow = “Non défini”;

const currentYear = new Date().getFullYear();
var periode = ${currentYear}-${currentYear+1};

//====== Aujourd’hui
async function getToday() {
try {
const response = await fetch(‘https://www.api-couleur-tempo.fr/api/jourTempo/today’, {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’
}
});

if (!response.ok) {
  throw new Error(`Erreur réseau : ${response.status}`);
}

const data = await response.json();
//console.log(data);
today = data.codeJour; // codeJour: 0 = pas encore défini, 1 = bleu, 2 = blanc, 3 = rouge
return today;

} catch (error) {
console.error(‘Il y a eu un problème avec la requête fetch:’, error);
}
}

//====== Demain
async function getTomorrow() {
try {
const response = await fetch(‘https://www.api-couleur-tempo.fr/api/jourTempo/tomorrow’, {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’
}
});

if (!response.ok) {
  throw new Error(`Erreur réseau : ${response.status}`);
}

const data = await response.json();
//console.log(data);
return data.codeJour; // codeJour: 0 = pas encore défini, 1 = bleu, 2 = blanc, 3 = rouge

} catch (error) {
console.error(‘Il y a eu un problème avec la requête fetch:’, error);
}
}

//===== Jours Rouge
async function getJoursRouge() {
try {
const response = await fetch(‘https://www.api-couleur-tempo.fr/api/joursTempo?periode=’ + periode, {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’
}
});

if (!response.ok) {
  throw new Error(`Erreur réseau : ${response.status}`);
}

const data = await response.json();
//console.log(data);

data.forEach((jour) => {
  if (jour.codeJour === 3) {
    jourRougeRestant--;
  }
});

//console.log(`Jour Rouge Restant: ${jourRougeRestant}`);
return jourRougeRestant; 

} catch (error) {
console.error(‘Il y a eu un problème avec la requête fetch:’, error);
}
}

//===== Obtenir tempo + créer tag
async function getTempo() {
today = await getToday();
tomorrow = await getTomorrow();
jourRouge = await getJoursRouge();

console.log("Jour rouge restant: ", jourRouge);
console.log(‘Aujourd'hui:’, color[today]);
console.log(‘Demain:’, color[tomorrow]);
await tag(tagName_today, color[today]);
await tag(tagName_tomorrow, color[tomorrow]);
await tag(tagName_jourRougeRestant, jourRouge);
}

getTempo(); // Appelle la fonction principale
return t

Le script original de @sebyldino avec la correction de @Philippe_GAUMET pour le décompte des jours rouge.

Testé chez moi tout fonctionne.

var color = ["PAS ENCORE DEFINI", "TEMPO_BLEU", "TEMPO_BLANC", "TEMPO_ROUGE"];

var tagName_today = "JourJ";
var tagName_tomorrow = "JourJ+1";
var tagName_jourRougeRestant = "JourRougeRestant";

var jourRougeRestant = 22;

var today = "Non défini";
var tomorrow = "Non défini";

let date1 = new Date();
const currentYear = new Date().getFullYear();

let date2 = new Date(currentYear,8,1);
if (date1 < date2) {
console.log("date1 is before 1er Septembre");
var periode = `${currentYear-1}-${currentYear}`;
} else {
console.log("date1 is after 1er Septembre");
var periode = `${currentYear}-${currentYear+1}`;
}



//======  Aujourd'hui
async function getToday() {
  try {
    const response = await fetch('https://www.api-couleur-tempo.fr/api/jourTempo/today', {
      method: 'GET',
      headers: {
        'Accept': 'application/json'
      }
    });

    if (!response.ok) {
      throw new Error(`Erreur réseau : ${response.status}`);
    }

    const data = await response.json();
    //console.log(data);
    today = data.codeJour; // codeJour: 0 = pas encore défini, 1 = bleu, 2 = blanc, 3 = rouge
    return today;
  } catch (error) {
    console.error('Il y a eu un problème avec la requête fetch:', error);
  }
}



//======  Demain
async function getTomorrow() {
  try {
    const response = await fetch('https://www.api-couleur-tempo.fr/api/jourTempo/tomorrow', {
      method: 'GET',
      headers: {
        'Accept': 'application/json'
      }
    });

    if (!response.ok) {
      throw new Error(`Erreur réseau : ${response.status}`);
    }

    const data = await response.json();
    //console.log(data);
    return data.codeJour; // codeJour: 0 = pas encore défini, 1 = bleu, 2 = blanc, 3 = rouge
  } catch (error) {
    console.error('Il y a eu un problème avec la requête fetch:', error);
  }
}



//===== Jours Rouge
async function getJoursRouge() {
  try {
    const response = await fetch('https://www.api-couleur-tempo.fr/api/joursTempo?periode=' + periode, { 
      method: 'GET',
      headers: {
        'Accept': 'application/json'
      }
    });

    if (!response.ok) {
      throw new Error(`Erreur réseau : ${response.status}`);
    }

    const data = await response.json();
    //console.log(data);

    data.forEach((jour) => {
      if (jour.codeJour === 3) {
        jourRougeRestant--;
      }
    });

    //console.log(`Jour Rouge Restant: ${jourRougeRestant}`);
    return jourRougeRestant; 
  } catch (error) {
    console.error('Il y a eu un problème avec la requête fetch:', error);
  }
}





//===== Obtenir tempo + créer tag
async function getTempo() {
  today = await getToday();
  tomorrow = await getTomorrow();
  jourRouge = await getJoursRouge();

  console.log("Jours rouge restant: ", jourRouge);
  console.log('Aujourd\'hui:', color[today]);
  console.log('Demain:', color[tomorrow]);
  await tag(tagName_today, color[today]);
  await tag(tagName_tomorrow, color[tomorrow]);
  await tag(tagName_jourRougeRestant, jourRouge);
}

getTempo(); // Appelle la fonction principale
return true;

Bonjour,
Pour ceux qui ont un contrat Zen Flex, j’ai mis l’API dans le script de sebyldino.

-“RAS”. correspond à jour normal
-“ZENF_PM" à jour sobriété
-“ZENF_BONIF” pour jour bonus

let today = new Date()

let todayFormatted = today.toISOString().split(‘T’)[0]

const res = await fetch('https://particulier.edf.fr/services/rest/opm/getOPMStatut?dateRelevant='+ todayFormatted)

if (!res.ok) {

throw new Error(res.statusText);

}

// Get the body JSON

const body = await res.json();

await tag(‘Jour J’, (${body.couleurJourJ}));

await tag(‘Jour J+1’, (${body.couleurJourJ1}));

return true;

Bonjour, Help

Quelqu’un peut-il m’expliquer pourquoi quand je lance un flow en automatique chaque jour à 12h00 qui appel le scritp de la couleur du lendemain ma variable ne se met pas à jour et quand je relance
le script en manuel depuis le PC cela fonctionne correctement ???