Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Récupération infos d'un autre esp
#7
Bonsoir
Je vais tenter de t'expliquer ce que j'ai fait
J'ai un esp (A) avec ecran qui mesure via shelly em. Une sonde pour savoir si je soutire ou j'injecte. L'autre sonde sur la production solaire.
Un autre esp (B) qui s'occupe du routage et qui mesure via JSY. Une sonde pour savoir si je soutire ou j'injecte. L'autre sonde sur le routage avec un triac.
Je souhaitais avoir toutes ces mesures sur une seule page d'acceuil et sur l'écran de l'esp.
Je me suis inspiré du code de la maisonnette pour créer un url . Dans un code de esp (A) je récupère les données de esp (B) avec l'adresse ip et   ajax_data (Merci Raphael qui avait évoqué ça à propos d'info pour un écran led)

  arr[0] = 127;          
  arr[1] = 1;   
  arr[2] = 168;  
  arr[3] = 192;
 
 IPext = String(arr[3]) + "." + String(arr[2]) + "." + String(arr[1]) + "." + String(arr[0]);
  if (!clientESP_RMS.connect(IPext.c_str(), PortExt)) {
    Bug_Host++;
    Serial.println("Connexion vers " + String(IPext) + " échoué. Nb bug : " + String(Bug_Host));
    if (Bug_Host > 20) {
      ESP.restart();
    }
    clientESP_RMS.stop();
    delay(500);
    previousDataMillis = millis() + 4000;
    return;
  }
  // We now create a URI for the request
  url = "/ajax_data";


Dans Server.ino, j'appelle mon code de mes données de esp (B) ainsi que des variables que j'ai crées dans esp(A)


void handleAjaxData() {
 Lecture_Rms_distant(); // Lecture des données esp (B)
   //Données page d'accueil
  String DateLast = "Attente d'une mise à l'heure par internet";
  if (Horloge == 1) DateLast = "Attente d'une mise à l'heure par le Linky";
  if (ModeReseau == 0 && WiFi.getMode() != WIFI_STA) DateLast = "Sélectionnez un réseau <a href='/Wifi'>Wifi</a>";
  if (Horloge > 1) DateLast = "Attente d'une mise à l'heure  <a href='/Heure' >manuellement</a> ";
  if (HeureValide) {
    DateLast = DATE;
  }
  String S = LesTemperatures();
  S = "Deb" + RS + DateLast + RS + Source_data + RS + LTARF + RS + STGEt + RS + S + RS + String(Pva_valide);
  S += GS + String(PuissanceS_M) + RS + String(PuissanceI_M) + RS + String(PVAS_M) + RS + String(PVAI_M);
  S += RS + String(EnergieJour_M_Soutiree) + RS + String(EnergieJour_M_Injectee) + RS + String(Energie_M_Soutiree) + RS + String(Energie_M_Injectee);
  S += RS + String(Sout_Hier) + RS + String(Inj_Hier) + RS + String(Cons_Hier) + RS + String(Prod_Hier);
  S += RS + String(Auto_Conso) + RS + (Auto_Conso_Hier) + RS + String(Auto_Conso_Tot);
  S += RS + String(Prod_Max) + RS + String(Prod_Max_Hier) + RS + String(Prod_Max_Tot);
 // Données perso crées dans esp (A)

Dans le code pageHtmlMain je modifie l'affichage pour avoir les données que je souhaite voir.
Certaines choses fonctionnent sans que je comprenne pourquoi. Mais le résultat est que j'ai réussi à faire ce que je voulais.
Un esp avec écran qui m'affiche les info que je veux et une page d'accueil aussi.
Bien sûre  en cas de reset tout s'efface mais pas les données propre au shelly et au jsy.
Il y a certainement une méthode beaucoup plus simple que la mienne mais je me suis mis au code que depuis très peu en n'ayant aucune connaissance j'ai galéré à mort.
Mes explications ne sont peut-être pas très claires....
Si André passe par là.........

 
Routeur UxIx2, V 15.0 Triac robodyn avec bta 40 déporté sur dissipateur ventilé avec sonde T° commandé en sortie TOR , seconde sonde sur C-E, 12 panneaux sanyo 236wc, onduleur réseau solarmax 6kw. CE 3300w. Installé depuis avril 2024.
Répondre


Messages dans ce sujet
Récupération infos d'un autre esp - par Philmaz - 02-03-2025, 04:24 PM
RE: Récupération infos d'un autre esp - par pdunet - 04-06-2025, 10:06 AM
RE: Récupération infos d'un autre esp - par Sgb31 - 05-07-2025, 11:25 AM
RE: Récupération infos d'un autre esp - par Philmaz - 17-07-2025, 06:49 PM

Atteindre :


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