Note de ce sujet :
  • Moyenne : 3.4 (5 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Adaptation EJP
#1
Bonjour,

Encore merci pour ce formidable routeur,

je voulais attendre qu un jour ejp arrive pour tester et demain c est un jour rouge.
j ai modifier le code versions 12.06 pour l ejp .
rajout de l option ejp
   
reception des données 
   
affichage dans main les couleurs
   
pas tous a fait fini reste les actions.
je ne sais pas si il y a beaucoup en ejp si il y a des intéressés je mettrais les modifications.


dans Solar_Router_V12_06.ino

ligne 1034           Call_RTE_data();
Modifier             if (TempoRTEon == 1)  Call_RTE_data();
et ajouter                  if (TempoRTEon == 2) Call_EJP_data();                        //59jag

apres ligne 1044         if (LTARF.indexOf("ROUGE") >= 0) Ltarf += 16;
ajouter                  if (LTARF.indexOf("VERT") >= 0) Ltarf += 4;                   //59jag
                         if (LTARF.indexOf("EJP_ROUGE") >= 0) Ltarf += 0;             //59jag



ajouter  un nouveau fichier Ejp.ino  (new Tab)
et copier le codesuivant dedans
Code :
//*****************************************************************
// * Recherche Info Ejp pour les sources non Linky   par 59jaj    *
// ****************************************************************
#include <HTTPClient.h>
void Call_EJP_data() {
    char buffer[MAX_SIZE_T];
    String urlJSON = "https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=EJP&dateApplicationBorneInf=";
    String EJPdata = "";
    String line = "";
    String DateEJP = "";               // an-mois-jour au format AAAA-MM-JJ
    String DateEJP2 = "";              // an-mois-jour lendemain
    int Hcour = HeureCouranteDeci / 2; // Par pas de 72 secondes pour faire 2 appels si un bug
    int LastH = LastHeureRTE / 2;
    String jourStatus= "" ;
    String demainStatus = "";
    // Éviter de questionner l'URL tempo light si on a déjà les infos qui nous intéressent...
    bool couleur_lendemain = (STGE == "10" || STGE == "14");              // True si couleur du lendemain connue
    bool couleur_jour = (LTARF == "EJP_VERT" || LTARF == "EJP_ROUGE");    // True si couleur du jour connu

    // Traitement du changement de couleur EJP à 7h00, avec réinitialisation de la couleur du lendemain
    if ((Hcour == 350) && (LTARF != "") && (STGE != ""))
        // À 7h00 précises, la couleur tempo du lendemain devient la couleur du jour.
        {
        if (STGE == "10") LTARF = "EJP_VERT";
        else if (STGE == "14") LTARF = "EJP_ROUGE";
        STGE = "";
        couleur_lendemain = false; // La couleur du lendemain n'est plus connue
        if (LTARF != "") {
            StockMessage(LTARF + " depuis 7h00 demain ? pas avant 13H.");
        }
    }

    if ((DATEvalid) &&
        (!(couleur_lendemain && couleur_jour)) &&
        (((LastH != Hcour) &&
          (Hcour == 652 || Hcour == 672 || Hcour == 700 || Hcour == 750 || Hcour == 800 || Hcour == 900 || Hcour == 1150)) ||
         (LastHeureRTE < 0))) {

        if (TempoRTEon == 2) {
            time_t timestamp = time(NULL) - 21600; // Décalage début période couleur EJP de 6h.
            struct tm* pTime = localtime(&timestamp);
            strftime(buffer, MAX_SIZE_T, "%Y-%m-%d", pTime);
            DateEJP = String(buffer);

            time_t timestamp2 = time(NULL) + 64800; // Décalage début période couleur EJP de 18h pour le lendemain.
            struct tm* pTime2 = localtime(&timestamp2);
            strftime(buffer, MAX_SIZE_T, "%Y-%m-%d", pTime2);
            DateEJP2 = String(buffer);

            Serial.print("DateEJP:");
            Serial.println(DateEJP);
            Serial.print("DateEJP lendemain:");
            Serial.println(DateEJP2);

            urlJSON += DateEJP + "&dateApplicationBorneSup=" + DateEJP2 + "&identifiantConsommateur=src";
            Serial.println(urlJSON);

            HTTPClient http;
            http.begin(urlJSON);
            http.addHeader("Accept", "application/json");
            http.addHeader("Content-Type", "application/json");
            http.addHeader("Origin", "https://particulier.edf.fr");
            http.addHeader("Referer", "https://particulier.edf.fr/");
            http.addHeader("application-origine-controlee", "site_RC");
            http.addHeader("situation-usage", "Jours Effacement");

            int httpResponseCode = http.GET();
            if (httpResponseCode > 0) {
                String EJPdata = http.getString();
                Serial.println ("Reponse de l'API :" +EJPdata);
                jourStatus= StringJson(DateEJP+"\",\"statut", EJPdata);
                demainStatus = StringJson(DateEJP2+"\",\"statut", EJPdata);
                Serial.println("aujourd hui :" + jourStatus);
                Serial.println("demain :" + demainStatus);
            } else {
                Serial.print("Erreur dans la requête HTTP : " + httpResponseCode);
            }
            http.end();
            if (jourStatus == "EJP" || jourStatus == "NON_EJP"){
             String LTARFrecu = jourStatus;
             if (LTARFrecu == "NON_EJP") LTARF = "EJP_VERT";
             if (LTARFrecu == "EJP") LTARF = "EJP_ROUGE";

             line = "0";
             String lendemain = "NON_DEFINI";
             LTARFrecu = demainStatus;
             if (LTARFrecu.indexOf("EJP") >= 0) {
                line = "14";
                lendemain = "EJP_ROUGE";
             }
             if (LTARFrecu.indexOf("NON_EJP") >= 0) {
                line = "10";
                lendemain = "EJP_VERT";
             }
             
             STGE = line; // Valeur Hexa code du Linky
             StockMessage(DateEJP + " : " + LTARF + " | " + DateEJP2 + " : " + lendemain);

             EJPdata = "";
             LastHeureRTE = HeureCouranteDeci; // Heure lecture Tempo RTE
        } else {
            StockMessage(DateEJP + " : Pas de données EDF valides");
        }
    } else {
        if (Source != "Linky" && Source != "Ext") {
            LTARF = "";
            STGE = "0";
        }
    }
}
}



*********************************************************************************************************************
dans pageHtmlPara.h

             56                <input type='checkbox' name='TempoRTEon' id='TempoRTEon' style='width:25px;' >
 apres ligne 57            </div>


 ajouter                   <div class='ligne'>                                                              
                                <label for='EjpOn'>Affichage couleur Ejp : </label>                            
                                <input type='checkbox' name='EjpOn' id='EjpOn' style='width:25px;' >            
                           </div>  


apres ligne 337            GID("TempoRTEon").checked = Para[24]==1  ? true:false;

ajouter                    GID("EjpOn").checked = Para[24]==2  ? true:false;               //59jag


apres ligne 361            var TempoRTEon = GID("TempoRTEon").checked ? 1:0;             

ajouter                    if(TempoRTEon == 0 ) TempoRTEon = GID("EjpOn").checked ? 2:0;   //59jag
*************************************************************************************************************************
dans pageHtmlMain.h

modifier les lignes 116    var Tarif=["NON_DEFINI","PLEINE","CREUSE","BLEU","BLANC","ROUGE"];
                    117    var couleur=["#ddf","#f00","#0f0","#00bfff","#fff","#f00"];
                    118    var tarif=["","H.<br>pleine","H.<br>creuse","Tempo<br>Bleu","Tempo<br>Blanc","Tempo<br>Rouge"];


comme ceci                 var Tarif=["NON_DEFINI","PLEINE","CREUSE","BLEU","BLANC","ROUGE","VERT","ROUGE"];                                                   //59jag
                           var couleur=["#ddf","#f00","#0f0","#00bfff","#fff","#f00","#0f0","#f00"];                                                           //59jag
                           var tarif=["","H.<br>pleine","H.  <br>creuse","Tempo<br>Bleu","Tempo<br>Blanc","Tempo<br>Rouge","Ejp<br>Vert","Ejp<br>Rouge"];        //59jag


modifier les lignes 120    for (i=0;i<6;i++){
        

comme ceci                 for (i=0;i<8;i++){  

                    132         txtJ = "Tempo<br>J+1";    
apres ligne         133      }


ajouter                      if (tempo>3 ){             //59jag
                               txtJ = "Ejp<br>J+1";     //59jag          
                             }                          //59jag

**************************************************************************************************************************
avec ces modif vous avez deja l affichage des couleur ejp
reste encore action html a finir mes ca bug   Huh
                    
Répondre
#2
(12-11-2024, 11:32 PM)59jag a écrit : Bonjour,

Encore merci pour ce formidable routeur,

je voulais attendre qu un jour ejp arrive pour tester et demain c est un jour rouge.
j ai modifier le code versions 12.06 pour l ejp .
rajout de l option ejp

reception des données 

affichage dans main les couleurs

pas tous a fait fini reste les actions.
je ne sais pas si il y a beaucoup en ejp si il y a des intéressés je mettrais les modifications.

Bonjour je suis en EJP aussi. À voir si les jours Tempo rouges sont pas les mêmes.
Donc maintiens le sujet pour les premiers jours.
Merci.
Répondre
#3
Demain (13/11) est un jour Tempo bleu...
12 x AIKO 440W Full black A-MAH54MB
3 x HOYMILES HMS2000-4T
OpenDTU
Répondre
#4
Et aujourd’hui EJP et rien en effet sur l’affichage.
Donc je suis preneur de ta modification ?.
Répondre
#5
Bonjour, je suis également intéressé pour votre modification EJP. 
Merci d'avance pour votre aide. 
Cordialement
Répondre
#6
Hello

je suis aussi en EJP, 
j'ai installé le router que depuis le début du mois et c'est la première fois aujourd'hui que je vois le soleil
je suis en UxIx2 donc pas d'info du compteur, je pensais plus a installer un module 
     
et récupérer l'information sur une pin mais pour le moment je suis pris par autre chose.
comme je suis nouveau , je souhaiterai savoir en quoi l'information EJP vous intéresse 
cosmétique: sur un voyant ?
ou action particulière ?

merci
V12.06
utilisateur de node-red
7 esp32
dont un qui pilote ma solution hydro solaire( eau sanitaire, chauffage, SPA)

Philippe Marie
Répondre
#7
Photo 
En version 8.?? j'avais géré l'EJP en dur dans le code car je ne sais pas modifier le html.
Dons je suis preneur de ta modif  et je peut être un beta testeur.....
J'ai repéré dans le code les endroits "stratégiques" ou il faudrait modifier le code mais j'en ai surement oublié.
Pour moi, c'est juste informatif puisque je n'autorise le chauffage et ECS que de 1h à 7h du matin et ce tous les jours (EJP ou pas) Le reste du temps c'est régul si prod PV
Si tu le souhaites, on peut se parler au tél.

si André passe par là, les données brutes en EJP. Attention STGE =  U apparemment si EJP le lendemain sinon W
Je vais suivre de prêt pour voir

[Image: 24111302015510250318492357.jpg]
Répondre
#8
(13-11-2024, 02:56 PM)Philippe Marie a écrit : je souhaiterai savoir en quoi l'information EJP vous intéresse 
cosmétique: sur un voyant ?
ou action particulière ?

je veux faire des actions selon la couleur du lendemain ,comme j ai un batterie lifepo4 de 10kwh je veux la charger la nuit pour l utiliser le lendemain lorsque c est rouge.
par contre j ai pas fini les modif surtout dans pageHtmlActions.h
c pas évident de modifier un programme qui n as pas était écrit par soi-même.
Répondre
#9
En définitive, ton code pour afficher EJP me suffirait si tu veux le mettre à dispo. C'est juste pour infos car je gère la recharge du ECS entre 1h et 7h si besoin. Et celà pour tous les jours quelque soit l'état EJP ou pas.
Merci
Répondre
#10
(13-11-2024, 09:10 PM)59jag a écrit :
(13-11-2024, 02:56 PM)Philippe Marie a écrit : je souhaiterai savoir en quoi l'information EJP vous intéresse 
cosmétique: sur un voyant ?
ou action particulière ?

je veux faire des actions selon la couleur du lendemain ,comme j ai un batterie lifepo4 de 10kwh je veux la charger la nuit pour l utiliser le lendemain lorsque c est rouge.
par contre j ai pas fini les modif surtout dans pageHtmlActions.h
c pas évident de modifier un programme qui n as pas était écrit par soi-même.

Ok j'avais peur de passer a coté de quelque chose
V12.06
utilisateur de node-red
7 esp32
dont un qui pilote ma solution hydro solaire( eau sanitaire, chauffage, SPA)

Philippe Marie
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)