Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Création fichier bin ide arduino
#41
a injecter dans l'esp 32 du routeur ? ou il m'en faut un deuxiéme?

De ton côté tu as zero messages du shelly ? tu as un signal de combien de dB?
Répondre
#42
On pourra utiliser l esp du rms mais pendant les tests le rms tournera pas
J ai un shelly EM à -51db avec un esp à -50db et un deuxieme esp à _
-65db et j ai zero erreur shelly depuis une semaine que j ai injecté mes modifs tout en ayant augmenter la cadence des lectures à 100ms

Dans le shelly t as pas un parametre economie d energie ou un truc dans ce genre, il ne faut pas que ce soit activé
Il ne faut pas activer ip roaming…
Fais nous des copies d ecrans de ta conf shelly la plus complete possible surtout les menus qui tournent autour des paramètres wifi
Répondre
#43
Effectivement ce n'est pas mes -55dB qui coincent alors.. je ne sais pas où l'on voit celui du shelly mais si c'est le rssi sur la page html du routeur il m'indique -39

Sur le shelly dans l'application j'ai le logo de la terre

wifi 1 activé ,j'ai mis une adresse statique comme tu m'as demandé
Wifi 2 désativé
Point d'accés désactivé
Extension de la couverture radio désactivé , toi aussi?
Ethernet activé mais rien n'est connecté dessus
websocket sortant désactivé
rpc sur udp rien d'indiqué
cloud activé
Bluettooth désactivé
mqtt désactivé

Le mode économie d'énergie est désactivé. ip roaming je ne le vois pas tu sais m'indiquer où il se trouve?

Ok tu me diras si je peux laisser l'esp dans le montage du routeur afin qu'il soit dans la même config que lorsqu'on lui demande de router.

Pour ton information mais je pense qu'on s'en moque un peu pour le programme que tu vas construire . Il s'agit d'un esp 30 pin
Répondre
#44
Pour extension couverture radio j ai pas. Tu peux tenter de l activer mais je pense pas que ce soit ca
A part ca je ne vois rien d autre d anomal ….
Bon on voit demain avec des prog de tests

Essaie le code ci dessous en suivant les log dans le moniteur serie de l arduino
Avant de compiler televerser dans l esp ( en dehors de ton montage routeur juste alimenté par l usb) tu mets bien entendu ton vrai ssid wifi et son mot de passe et aussi tu mets la bonne ip du shelly
Code :
#include <WiFi.h>
#include <HTTPClient.h>

// ⚡ Paramètres réseau
const char* ssid     = "Ton_SSID";
const char* password = "Ton_MotDePasse";

// ⚡ Adresse IP locale du Shelly Pro EM
const char* shellyURL = "http://192.168.1.50/rpc/EM.GetStatus?id=0";

// Variables de test
unsigned long interval = 1000;       // Intervalle en ms (démarrage à 1s)
unsigned long lastRequest = 0;
unsigned long serieStart = 0;
int successCount = 0;
int failCount = 0;
bool serieActive = false;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  Serial.print("Connexion WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\n✅ Connecté au WiFi !");
  Serial.println("Début du test de charge Shelly Pro EM...");
 
  // Initialiser la première série
  serieStart = millis();
  serieActive = true;
}

void loop() {
  unsigned long currentMillis = millis();

  if (serieActive && (currentMillis - lastRequest >= interval)) {
    lastRequest = currentMillis;

    if (WiFi.status() == WL_CONNECTED) {
      HTTPClient http;
      http.begin(shellyURL);
      int httpCode = http.GET();

      if (httpCode > 0) {
        successCount++;
        Serial.printf("✅ [%d ms] Réponse OK\n", interval);
      } else {
        failCount++;
        Serial.printf("❌ [%d ms] Timeout ou erreur : %s\n", interval, http.errorToString(httpCode).c_str());
      }

      http.end();
    }
  }

  // Vérifier si la série de 10 secondes est terminée
  if (serieActive && (currentMillis - serieStart >= 10000)) {
    int total = successCount + failCount;
    float successRate = (total > 0) ? (successCount * 100.0 / total) : 0;

    Serial.printf("\n? Résultats pour intervalle %d ms (10s) : %d réussites / %d requêtes (%.1f%%)\n\n",
                  interval, successCount, total, successRate);

    // Préparer la prochaine série
    interval = (interval > 50) ? interval - 50 : 50;
    successCount = 0;
    failCount = 0;
    serieStart = currentMillis;

    if (interval == 50) {
      Serial.println("✅ Test terminé : atteint la limite basse (50 ms).");
      serieActive = false;
    }
  }
}

Répondre


Atteindre :


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