12-11-2024, 11:32 PM
(Modification du message : Hier, 06:43 PM par 59jag.
Raison de la modification: mise a jour modif
)
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
*********************************************************************************************************************
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
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'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