Note de ce sujet :
  • Moyenne : 3 (4 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      *
// *******************************************************
// sans Api  web scraping sur hellowatt.     59jag

#define EJP_HOST "www.hellowatt.fr"         
WiFiClientSecure client;

String find( char* target,  char fintarget) {
  char result[256];
  if (!client.find(target)) {
    Serial.println(F("pas trouve"));
    return "";
  } else {
    size_t bytesRead = client.readBytesUntil(fintarget, result, sizeof(result) - 1);
    if (bytesRead > 0) {
      result[bytesRead] = '\0';           // Assurer la terminaison de la chaîne
      return String(result);
    }
  }
  return "";
}
void Call_EJP_data() {

  int Hcour = HeureCouranteDeci / 2;  //Par pas de 72secondes pour faire 2 appels si un bug
  int LastH = LastHeureRTE / 2;
  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. Celle du lendemain n'est à priori pas encore connue
                                                    // Cela permet de continuer à fonctionner de manière nominale même si le site RTE n'est pas encore renseigné
                                                    // && (LTARF!="") pour ne pas passer dans cette boucle au reset si fait à 7h00 du matin...
                                                    // && (STGE<>"")  pour éviter de passer plusieurs fois( 3 à 4 ) dans cette boucle à cause du Hcour/2
    { 
     if       (STGE == "10") LTARF = "EJP_VERT"; 
     else if  (STGE == "14") LTARF = "EJP_ROUGE";
     STGE="";
     couleur_lendemain=false; // on ne connait plus la couleur du lendemain. Cela forcera la lecture sur le site RTE
     if (LTARF!="") { 
           StockMessage("Ejp depuis 7h00: " + LTARF + ",demain ? ");
      }
    } 
    if ((DATEvalid) && (!(couleur_lendemain && couleur_jour ) ) && ((LastH != Hcour) && (Hcour == 352 || Hcour == 360 || Hcour == 680 || Hcour == 700 || Hcour == 750 || Hcour == 800 || Hcour == 1150) || LastHeureRTE < 0)) {
       if (TempoRTEon == 2) {
        client.setInsecure();
        StockMessage("Recherche couleur sur " + 'EJP_HOST');
        if (!client.connect(EJP_HOST, 443)){
             StockMessage("Échec de la connexion "+ 'EJP_HOST');
             return;
        }
        client.print(F("GET "));
        client.print("/ejp-demain-observatoire-edf/");
        client.println(F(" HTTP/1.1"));
        client.print(F("Host: "));
        client.println(EJP_HOST);
        client.println(F("Cache-Control: no-cache"));
        if (client.println() == 0){
        Serial.println(F("Échec de l'envoi de la requête EJP"));
        return;
        }
        char status[32] = {0};
        client.readBytesUntil('\r', status, sizeof(status));
        if (strcmp(status, "HTTP/1.1 200 OK") != 0){
         Serial.print(F("Réponse inattendue: "));
         Serial.println(status);
         return;
        }
        char endOfHeaders[] = "\r\n\r\n";
        if (!client.find(endOfHeaders)){
          Serial.println(F("response invalide"));
          return;
        }
        String DateToday=find(">Aujourd&#x27;hui</span>",'<');
        String ejpDataToday=find("class=\"is-ejp\">",'<');
        String DateDemain=find(">Demain</span>",'<');
        String ejpDataDemain=find("class=\"is-ejp\">",'<');
       
        if (ejpDataToday.indexOf("Jour non EJP") >= 0) {
             LTARF = "EJP_VERT";
        }
        if (ejpDataToday.indexOf("Jour rouge EJP") >= 0){
             LTARF = "EJP_ROUGE";
        }
        if (ejpDataDemain.indexOf("Jour non EJP") >= 0) {
             STGE = "10";
        }
        if (ejpDataDemain.indexOf("Jour rouge EJP") >= 0){
             STGE = "14";
        }
        StockMessage(" STGE = " + STGE +"  LTARF = " + LTARF );     //pour debug
        StockMessage("Aujourd'hui "+ DateToday + ejpDataToday);
        StockMessage("Demain " + DateDemain + ejpDataDemain);   
        LastHeureRTE = HeureCouranteDeci;
   
    }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


Messages dans ce sujet
Adaptation EJP - par 59jag - 12-11-2024, 11:32 PM
RE: Adaptation EJP - par Grisly18 - 12-11-2024, 11:44 PM
RE: Adaptation EJP - par Fabrice49 - 13-11-2024, 12:39 AM
RE: Adaptation EJP - par Grisly18 - 13-11-2024, 09:56 AM
RE: Adaptation EJP - par tupolev89 - 13-11-2024, 02:32 PM
RE: Adaptation EJP - par Philippe Marie - 13-11-2024, 02:56 PM
RE: Adaptation EJP - par 59jag - 13-11-2024, 09:10 PM
RE: Adaptation EJP - par Philippe Marie - 13-11-2024, 10:04 PM
RE: Adaptation EJP - par jeannot - 13-11-2024, 03:02 PM
RE: Adaptation EJP - par jeannot - 13-11-2024, 09:36 PM
RE: Adaptation EJP - par Grisly18 - 14-11-2024, 10:47 PM
RE: Adaptation EJP - par 59jag - 15-11-2024, 07:12 AM
RE: Adaptation EJP - par 59jag - 16-11-2024, 01:50 PM
RE: Adaptation EJP - par Grisly18 - 17-11-2024, 06:45 PM
RE: Adaptation EJP - par Grisly18 - 16-11-2024, 04:56 PM
RE: Adaptation EJP - par 59jag - 17-11-2024, 06:56 PM
RE: Adaptation EJP - par Grisly18 - 17-11-2024, 07:51 PM
RE: Adaptation EJP - par 59jag - 18-11-2024, 09:09 PM
RE: Adaptation EJP - par jeannot - 19-11-2024, 06:24 PM
RE: Adaptation EJP - par 59jag - 19-11-2024, 09:20 PM
RE: Adaptation EJP - par Grisly18 - 19-11-2024, 07:57 PM

Atteindre :


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