Bonjour a tous,
Le script (qui fonctionnait a merveille depuis des mois) ne fonctionne plus depuis qques jours… Une idée ?
Merci d’avance
Alex
Bonjour a tous,
Le script (qui fonctionnait a merveille depuis des mois) ne fonctionne plus depuis qques jours… Une idée ?
Idem depuis que l’app HomeyScript a son propre code Javascript, je n’arrive plus à le faire fonctionner (je ne suis pas un adepte à la programmation). Si quelqu’un peut reécrire le script à partir de l’ancienne version (voir site pour changement : Tutorial: Migrating deprecated scripts - HomeyScript)
Ci-dessous le premier fichier code que j’ai écrit pour connaître la couleur d’aujourd’hui et de demain (à partir de 11h) :
let today = new Date()
let todayFormatted = today.toISOString().split('T')[0]
const res = await fetch('https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant='+ todayFormatted)
if (!res.ok) {
throw new Error(res.statusText);
}
// Get the body JSON
const body = await res.json();
var EDFCouleurJour = (`${body.couleurJourJ}`)
var EDFCouleurDemain = (`${body.couleurJourJ1}`)
console.log(EDFCouleurJour)
console.log(EDFCouleurDemain)
await tag('Jour Tempo Today',EDFCouleurJour);
await tag('Jour Tempo Tomorrow', EDFCouleurDemain);
return true;
Et mon deuxième fichier pour les jours restants :
var res = await fetch('https://particulier.edf.fr/services/rest/referentiel/getNbTempoDays');
if (!res.ok) {
throw new Error(res.statusText);
}
// Get the body JSON
var 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}`)
console.log(body)
await tag('EDF reste Jour Blanc', Number(blanc));
await tag('EDF reste Jour Rouge ', Number(rouge));
await tag('EDF reste Jour Bleu', Number(bleu));
return true;
Merci de votre service
Bonjour,
L’API a changée effectivement.
J’en ai trouvée une autre en attendant que EDF en republie une valide (si c’est dans leur idées) et je partagerai.
Bonsoir,
Ce script fonctionne:
var color = ["PAS ENCORE DEFINI", "TEMPO_BLEU", "TEMPO_BLANC", "TEMPO_ROUGE"];
var tagName_today = "JourJ";
var tagName_tomorrow = "JourJ+1";
var today = "Non défini";
var tomorrow = "Non défini";
//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);
}
}
// Obtenir tempo + créer tag
async function getTempo() {
today = await getToday();
tomorrow = await getTomorrow();
console.log('Aujourd\'hui:', color[today]);
console.log('Demain:', color[tomorrow]);
await tag(tagName_today, color[today]);
await tag(tagName_tomorrow, color[tomorrow]);
}
getTempo(); // Appelle la fonction principale
return true;
Vous pouvez modifier le nom des valeur des tags dans :
var color = ["PAS ENCORE DEFINI", "TEMPO_BLEU", "TEMPO_BLANC", "TEMPO_ROUGE"];
(Si par exemple vous utilisiez “BLEU” comme valeur plutôt que “TEMPO_BLEU”)
Vous pouvez modifier le nom des tags dans:
var tagName_today = "JourJ";
var tagName_tomorrow = "JourJ+1";
(Si par exemple vous utilisiez “Demain” au lieu de “JourJ+1”)
Bonne soirée
Merci Seb !
Ça marche super .Merci beaucoup
Merci pour le nouveau script
dommage pour les jours restants de chaque couleur mais c’est moindre mal.
TOP, tout refonctionne.
Merci beaucoup !
Voici le code avec l’ajout de cette fonctionnalité:
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 true;
Il est également possible de changer le nom du tag “JourRougeRestant” en haut du code en remplaçant var tagName_jourRougeRestant = "JourRougeRestant";
.
Merci pour ce nouveau script qui marche nickel,petite question a propos des jours rouge restants:ils devraient pas être a 22 au lieu de 0?Et descendre au fur et a mesure qu’un jour rouge est passé ?
Oui effectivement je me suis trompé sur la période.
J’ai modifié le code dans mon précédent post.
Merci cela marche nickel j’ai modifier ton script pour rajouter les jours blancs.
merci pour la maj du script
Merci beaucoup pour votre aide…
Je viens de tester et ça marche bien !
Bien cordialement
Bonjour à tous,
J’ai tenté de reproduire vos scripts sans succès… ca me fait des erreurs…
J’ai merdé où?
Bonjour,
Je pense que c’est un problème de copier/coller car le script fonctionne.
Bonjour
Une version “allégée” utilisant l’acces OpenData RTE
https://www.services-rte.com/cms/open_data/v1/tempo?season=2024-2025
avec
Better Logic LIbrary
JSON Handler
et
SANS Homey Script
A rajouter pour les puristes : calcul de la période
Philippe
Le script fonctionne…j’ai oublié une , dans une parenthèse…
Par contre comment faire appel à ce script dans un flow?
Comment arrives tu a faire cette notificationpush ? JE ne trouve pas les tags bleus quand je clique sur le petit drapeau dans la carte notification push …
Je débute c’est un peu galère…