[Store] Tempo EDF

Lecture des compteurs EDF avec téléinformation

Re: [Store] Tempo EDF

Messagepar opa95 » 15 Oct 2024 17:10

OK hervé
herve27h a écrit:Bonjour opa95,

Merci à toi pour ce script.
Je vais l'installer et le tester ;)

Tiens moi au courant :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar bleauge » 16 Oct 2024 15:25

Bonjour

D'abord merci à tous pour vos contributions.
Mais j'ai dû louper quelque chose.
J'ai bien remplacer l'ancienne version par la, nouvelle.
J'ai fait un test : tester chement XPATH :
- utiliser l'URL => OK retourne bien 'BLEU'
- utiliser XML => ERREUR valeur lue vide
et du coup n'est pas pris en compte par le widget EEDOMUS (ni les regles bien sur)
bleauge
 
Messages : 24
Inscription : 11 Juin 2019

Re: [Store] Tempo EDF

Messagepar opa95 » 16 Oct 2024 16:22

Bonjour bleauge
bleauge a écrit:Bonjour

D'abord merci à tous pour vos contributions.
Mais j'ai dû louper quelque chose.
J'ai bien remplacer l'ancienne version par la, nouvelle.
J'ai fait un test : tester chement XPATH :
- utiliser l'URL => OK retourne bien 'BLEU'
- utiliser XML => ERREUR valeur lue vide
et du coup n'est pas pris en compte par le widget EEDOMUS (ni les regles bien sur)

Qu'obtiens-tu en mode test : "utiliser l'URL"
Avec XPATH : //demain
J'obtiens cela, as-tu quelque chose d'équivalent?
Quelles valeurs as-tu dans ta fenêtre d'appel : http de la requête? fréquence de la requête?
Si tu as laissé 60 minutes, tu vas probablement devoir attendre 1 heure pour voir les effets : mets 2 minutes.
J'obtiens la même chose si je passe ensuite en mode "utiliser le résultat XML", mais tu ne devrais pas utiliser ce mode, il ne sert qu'à tester diverses valeurs de XPATH, sans rappeler le script.
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!--
-->
<root>
  <tempo>
    <version>V4.0</version>
    <maintenant>BLEU</maintenant>
    <hchp>HP</hchp>
    <tarif_now>0.1609</tarif_now>
    <aujourdhui>BLEU</aujourdhui>
    <tarifs_aujourdhui>0.1296/0.1609</tarifs_aujourdhui>
    <demain>BLEU</demain>
    <tarifs_demain>0.1296/0.1609</tarifs_demain>
    <decompte_bleu>46</decompte_bleu>
    <decompte_blanc>0</decompte_blanc>
    <decompte_rouge>0</decompte_rouge>
    <reste_bleu>254</reste_bleu>
    <reste_blanc>43</reste_blanc>
    <reste_rouge>22</reste_rouge>
    <total_bleu>300</total_bleu>
    <total_blanc>43</total_blanc>
    <total_rouge>22</total_rouge>
    <date_now>2024-10-16</date_now>
    <date_aujourdhui>Mercredi 2024-10-16</date_aujourdhui>
    <date_demain>2024-10-17</date_demain>
    <filetime>170705</filetime>
    <counts>1/0/1/0/0/</counts>
    <test>test</test>
  </tempo>
</root>
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar bleauge » 16 Oct 2024 16:32

J'obtiens ceci.
Cela parait conforme, je vais attendre 60mn
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!--
-->
<root>
  <tempo>
    <version>V4.0</version>
    <maintenant>BLEU</maintenant>
    <hchp>HP</hchp>
    <tarif_now>0.1609</tarif_now>
    <aujourdhui>BLEU</aujourdhui>
    <tarifs_aujourdhui>0.1296/0.1609</tarifs_aujourdhui>
    <demain>BLEU</demain>
    <tarifs_demain>0.1296/0.1609</tarifs_demain>
    <decompte_bleu>46</decompte_bleu>
    <decompte_blanc>0</decompte_blanc>
    <decompte_rouge>0</decompte_rouge>
    <reste_bleu>254</reste_bleu>
    <reste_blanc>43</reste_blanc>
    <reste_rouge>22</reste_rouge>
    <total_bleu>300</total_bleu>
    <total_blanc>43</total_blanc>
    <total_rouge>22</total_rouge>
    <date_now>2024-10-16</date_now>
    <date_aujourdhui>Mercredi 2024-10-16</date_aujourdhui>
    <date_demain>2024-10-17</date_demain>
    <filetime>171939</filetime>
    <counts>1/0/1/0/0/</counts>
    <test>test</test>
  </tempo>
</root>
bleauge
 
Messages : 24
Inscription : 11 Juin 2019

Re: [Store] Tempo EDF

Messagepar bleauge » 16 Oct 2024 16:44

l'URL de la requete est http://localhost/script/?exec=edf_tempo.php
j'ai mis 2mn mais rien, pas de retour dans EEDOMUS, mais efectivement quand je teste
l'URL j'obtiens bien 'BLEU'.
Je vais remettre cela à plus tard, merci
bleauge
 
Messages : 24
Inscription : 11 Juin 2019

Re: [Store] Tempo EDF

Messagepar opa95 » 16 Oct 2024 17:00

Salut
bleauge a écrit:l'URL de la requete est http://localhost/script/?exec=edf_tempo.php
j'ai mis 2mn mais rien, pas de retour dans EEDOMUS, mais efectivement quand je teste
l'URL j'obtiens bien 'BLEU'.
Je vais remettre cela à plus tard, merci

Quand tu modifies la fréquence, n'oublie pas de cliquer sur "Sauver et continuer" avant de retester ou "Sauver".
Pour les règles, tu ne verras pas d'effet si elles contiennent des "est maintenant" ou "devient" ou "devient maintenant" car "demain" est déja BLEU.
Après minuit, "demain" deviendra "indéterminé" puis redeviendra "BLEU" après 6h du mat.
En ce moment, "Aujourdhui" est toujours "BLEU" donc on ne peut pas se fier à son changement de valeur.
Le dimanche matin, "demain" est "BLEU" dès minuit, donc ne varie pas si le samedi était "BLEU" :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar jch » 17 Oct 2024 06:50

Si cela peut aider les programmeurs... voici le script utilisé sur la box domotique Homey Pro et qui fonctionne parfaitement.
Il faut peut-être l'adapter pour qu'il tourne sur Eedomus ??

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;
jch
 
Messages : 5
Inscription : 14 Mai 2017

Re: [Store] Tempo EDF

Messagepar opa95 » 17 Oct 2024 08:01

Bonjour jch
jch a écrit:Si cela peut aider les programmeurs... voici le script utilisé sur la box domotique Homey Pro et qui fonctionne parfaitement.
Il faut peut-être l'adapter pour qu'il tourne sur Eedomus ??

Merci pour le partage d'information.
Nous avions déjà cette solution simple pour l'eedomus.
La version 4.0 actuelle fonctionne aussi parfaitement.
Elle présente toutefois certains avantages :
-Elle gère le bilan des jours blanc, bleu, rouge : ce que ne fait pas le script proposé par Homey Pro.
-Elle permet d'avoir les informations 2 heures plus tôt que l'Homey Pro (un peu après 6h au lieu de 8h).
-Elle est plus fiable car elle repose directement sur le service d'Enedis qu'Edf ne fait que reproduire (certes après un petit nettoyage) : l'utilisation de l'API edf suppose que les sites d'edf et d'enedis sont accessibles (l'autre jour je suis tombé sur un site "en maintenance") : actuellement, en pratique, la V4.0 ne fait aucun appel à l"api edf; en fait en ce moment, j'ai 4 versions qui tournent en test : la version publiée et 3 versions (une qui n'utilise que rte, une qui n'utilise que edf et une qui n'utilise que les sites Selectra).
-Elle récupère éventuellement l'information de 2 API et 3 sites internet en passant automatiquement d'une méthode à l'autre s'il y a échec des premiers essais.
-Dans les conditions normales, elle ne fait qu'un seul appel Internet par jour (aucun le samedi, car le dimanche est toujours BLEU).
-Elle récupère les tarifs et donne en temps réel le coût du kWh (en tenant compte de l'heure).
-Evidemment, elle est plus "lourde" en mémoire, mais il serait facile de nettoyer la version 4.0 pour obtenir une version "light" équivalente à l'Homey Pro (je pourrais le faire un jour, si ça intéresse quelqu'un et si j'ai 1 heure de libre).
Bonne journée :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar akua » 17 Oct 2024 10:36

Bonjour,

J'ai mis à jour le script, ça me remonte bien les couleurs du jour et de demain.
Par contre sur le décompte des jours, j'ai laissé les 3 canaux sans concaténation, et je vois que les compteurs rouge et blanc restent à 0.
Si je fais un test en séletionnant "Utiliser l'URL :" et avec "//decompte_rouge" dans le chemin XPath, ça affiche bien 0.
Pourtant sur les différentes URL des sites web, on voit bien le compteur de jours rouge à 22.

Est-ce qu'il y a quelque chose que j'aurais raté ? :oops:

Merci ! ;)
akua
 
Messages : 90
Inscription : 11 Déc 2017

Re: [Store] Tempo EDF

Messagepar opa95 » 17 Oct 2024 10:48

Bonjour akua
akua a écrit:Bonjour,

J'ai mis à jour le script, ça me remonte bien les couleurs du jour et de demain.
Par contre sur le décompte des jours, j'ai laissé les 3 canaux sans concaténation, et je vois que les compteurs rouge et blanc restent à 0.
Si je fais un test en séletionnant "Utiliser l'URL :" et avec "//decompte_rouge" dans le chemin XPath, ça affiche bien 0.
Pourtant sur les différentes URL des sites web, on voit bien le compteur de jours rouge à 22.

Est-ce qu'il y a quelque chose que j'aurais raté ? :oops:

Merci ! ;)

Ca dépend de ce que tu veux mettre dans compteur.
Soit le nombre de jours écoulés, soit le nombre de jours restants
Jours écoulés : //decompte_bleu
Jours restants : //reste_bleu
Total des jours de type bleu : //total_bleu (300 habituellement, mais 301 en 2028; si rien ne change)
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar bleauge » 17 Oct 2024 12:24

Pour faire suite à mes messages d'hier;
Ce matin cela parait fonctionner.
Pour info, je ne sait pas si cela peux etre utile, voila ce qu'affichait EEDOMUS hier
Pièces jointes
tempo4_eedomus.jpg
tempo4_eedomus.jpg (30.35 Kio) Consulté 821 fois
bleauge
 
Messages : 24
Inscription : 11 Juin 2019

Re: [Store] Tempo EDF

Messagepar akua » 17 Oct 2024 12:55

opa95 a écrit:Bonjour akua
Ca dépend de ce que tu veux mettre dans compteur.
Soit le nombre de jours écoulés, soit le nombre de jours restants
Jours écoulés : //decompte_bleu
Jours restants : //reste_bleu
Total des jours de type bleu : //total_bleu (300 habituellement, mais 301 en 2028; si rien ne change)
:)

Bonjour opa,
Ah bah oui quel boulet, merci pour la réponse, c'était pourtant clair :oops: :oops: :oops: !
akua
 
Messages : 90
Inscription : 11 Déc 2017

Re: [Store] Tempo EDF

Messagepar herve27h » 17 Oct 2024 23:35

opa95 a écrit:OK hervé
herve27h a écrit:Bonjour opa95,

Merci à toi pour ce script.
Je vais l'installer et le tester ;)

Tiens moi au courant :)


Bonjour Opa95,

Merci pour ton script.
Comme évoqué je l'ai déployé sur ma box et tout fonctionne correctement.
J'ai profité de tes remontées pour ajouter la situation HC/HP ainsi que les tarifs.
Vraiment au top, Merci ;)
herve27h
 
Messages : 15
Inscription : 04 Fév 2019

Re: [Store] Tempo EDF

Messagepar opa95 » 18 Oct 2024 14:26

Bonjour bleauge
bleauge a écrit:Pour faire suite à mes messages d'hier;
Ce matin cela parait fonctionner.
Pour info, je ne sait pas si cela peux etre utile, voila ce qu'affichait EEDOMUS hier

Je n'ai jamais eu ce message et je ne peux rien en déduire car le message est tronqué (%3...). Pour que je puisse faire un diagnostic, il aurait fallu passer en mode test et compléter la ligne de commande avec
Code : Tout sélectionner
&timer=0.01&debug=1
(impose une lecture immédiate [0.01minute] et un affichage du déroulement) : La copie de la fenêtre permettrait peut-être de connaître la raison du problème.
En cas de comportement de ce genre, tu peux effectuer un "reset" des mémoires; 3 solutions
-Si tu as créé un actionneur pour "Demain" ; Cliquer sur "reset"
-Sinon, ouvrir le panneau d"aujourdhui" et passer en mode "test" : ajouter à la ligne de commande
Code : Tout sélectionner
&reset=1
ou remplacer
Code : Tout sélectionner
&reset=
par
Code : Tout sélectionner
&reset=1
.
-Sinon, ouvrir le panneau d"aujourdhui" et mettre en VAR3 une valeur négative différente de celle qui existe -> -1 ou -2 : cela produira un reset une seule fois (on peut donc le laisser comme cela). Ca fonctionne seulement si la ligne de commande a été modifiée en
Code : Tout sélectionner
http://localhost/script/?exec=edf_tempo.php&tarifs=[VAR1]&timer=[VAR2]&reset=[VAR3]

Signale si ça se reproduit.
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar opa95 » 19 Oct 2024 09:34

Bonjour tous
Reçu ce matin un mp de Jordi me signalant un problème lorsqu'il a utilisé le lien de mise à jour du script.
Le script actuellement en ligne pour la "mise à jour" n'est pas le mien, il utilise (mal) l'api edf avec l'instruction
https://particulier.edf.fr/services/rest/referentiel/searchTempoStore?dateRelevant=2024-10-19&_=1729321120879
qui renvoie :
RESTEASY003210: Could not find resource for full path: https://particulier.edf.fr/services/res ... 9321120879
Je vais enquêter...
Le début de mon script renvoie
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!--
-->
<root>
  <tempo>
    <version>V4.0</version>
    <maintenant>BLEU</maintenant>
    <hchp>HP</hchp>

Et pas
Code : Tout sélectionner
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <tempo>
    <aujourdhui>ND</aujourdhui>
    <date_aujourdhui>ND</date_aujourdhui>
    <demain>ND</demain>
    <date_demain>ND</date_demain>
    <decompte_bleu>-1</decompte_bleu>
    <decompte_blanc>-1</decompte_blanc>
    <decompte_rouge>-1</decompte_rouge>
    <type>tempo</type>
    </tempo>
    <debug>
    <colors>RESTEASY003210: Could not find resource for full path: https://particulier.edf.fr/services/res ... 9321120879</colors>
    <jours>ND</jours>
    <ms>1729321120879</ms>
    <etat>ND</etat>
    <source>mémoire</source>
    <message></message>
    </debug>
    </root>
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar opa95 » 19 Oct 2024 10:31

Bonjour tous
Le "problème" est résolu, jordi a rechargé l'ancienne version qui fonctionne avec l'ancien lien vers edf qui n'est plus fonctionnel chez edf.
La nouvelle version n'est pas en ligne sur le Store (je vais voir avec Merguez07).
Bonne journée :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 835
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] Tempo EDF

Messagepar bleauge » 21 Oct 2024 06:29

Bonjour,

Merci opa95
bleauge
 
Messages : 24
Inscription : 11 Juin 2019

Précédent

Retour vers Téléinformation

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)