Wifinfo, connexion réseau impossible



  • Le point d'accès est bien visible à la connexion. J'ai un routeur Synology à 1 mètre pour gérer le réseau local, pas de pb sur le niveau de signal ....
    Le nodemcu est neuf (jamais connecté à un réseau). Pas de pb entre les modes STA et STA+AP ?
    Mon autre nodemcu est un peu plus loin derrière un mur et se connecte rapidement (avec la biblio Mysensor en donnant le nom du point d'accès et le password).
    J'essaie d'ajouter des messages sur l'état de la connexion avant/après dans le setup mais je ne suis pas très familier avec les macros des bibliothèques utilisées ...



  • Pour tester si le problème vient du nodemcu (défectueux ?) ou des paramètres de configuration (erronés ?), j'ai chargé un petit script de test, voir ci-dessous avec le résultat, test réalisé à 80MHz.
    Le nodemcu se connecte bien sans problème. J'en déduis qu'il y a un problème de configuration dans le script WifInfo ?

    // **********************************************************************************
    // Include Arduino header
    #include <Arduino.h>
    #include <ESP8266WiFi.h>
    #include <ESP8266WebServer.h>
    #include <ESP8266HTTPClient.h>
    #include <ESP8266mDNS.h>
    #include <WiFiUdp.h>
    //
    // Gestion de la mise à jour du firmware via le WiFi (Over The Air)
    #include <ArduinoOTA.h>
    //
    // Simulation de la mémoire EEPROM
    #include <EEPROM.h>
    //
    /*

    • WL_NO_SHIELD = 255, // for compatibility with WiFi Shield library
      WL_IDLE_STATUS = 0,
      WL_NO_SSID_AVAIL = 1,
      WL_SCAN_COMPLETED = 2,
      WL_CONNECTED = 3,
      WL_CONNECT_FAILED = 4,
      WL_CONNECTION_LOST = 5,
      WL_DISCONNECTED = 6
      */

    const char* ssid = "yyyyyyyyy";
    const char* password = "xxxxxxxxx";

    //IPAddress staticIP(192,168,1,22);
    //IPAddress gateway(192,168,1,9);
    //IPAddress subnet(255,255,255,0);

    void setup(void)
    {
    Serial.begin(115200);
    Serial.println();

    Serial.printf("Connecting to %s\n", ssid);
    WiFi.begin(ssid, password);
    Serial.printf("Connection status 1 : %d\n", WiFi.status());
    //WiFi.config(staticIP, gateway, subnet);
    while (WiFi.status() != WL_CONNECTED)
    {
    delay(500);
    Serial.print(".");
    }
    Serial.println();
    Serial.print("Connected, IP address: ");
    Serial.println(WiFi.localIP());
    if (WiFi.status() == WL_CONNECTED)
    {
    uint8_t macAddr[6];
    WiFi.macAddress(macAddr);
    Serial.printf("Connected, mac address: %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
    }
    Serial.printf("Connection status 2 : %d\n", WiFi.status());
    // Lecture du hostname et changement
    Serial.printf("Default hostname: %s\n", WiFi.hostname().c_str());
    //WiFi.hostname("ESP_Linky");
    //Serial.printf("New hostname: %s\n", WiFi.hostname().c_str());
    }
    void loop() {}


    Résultat sur le moniteur série :

    87

    Connecting to yyyyyyyyy
    scandone
    Connection status 1 : 6
    scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 3
    cnt
    ..
    connected with yyyyyyyyy, channel 2
    dhcp client start...
    ...ip:192.168.2.125,mask:255.255.255.0,gw:192.168.2.1
    .
    Connected, IP address: 192.168.2.125
    Connected, mac address: 84:f3:eb:18:39:24
    Connection status 2 : 3
    Default hostname: ESP_183924
    pm open,type:2 0



  • Bonjour,

    Dans ton sketch de test, tu fais une boucle infinie jusqu'à obtenir la connexion …
    Dans Wifinfo, la tentative de connexion est limitée à 5 secondes, au delà on passe en mode AP …
    Je te suggère (comme certains l'ont déjà fait par ailleurs), d'augmenter ce délai et de le passer à 10 ou 30 s …
    c'est dans le fichier WifInfo.ino, fonction WifiHandleConn() …
    voir cette boucle :
    timeout = 50; // 50 * 200 ms = 5 sec time out
    // 200 ms loop
    while ( ((ret = WiFi.status()) != WL_CONNECTED) && timeout )
    {
    // Orange LED
    LedRGBON(COLOR_ORANGE);
    delay(50);
    LedRGBOFF();
    delay(150);
    --timeout;
    }

    passer la variable timeout à 100 ou à 300 et re tester …



  • Merci pour cette réponse.
    J'avais déjà essayé de passer le timeout à 30s sans succès.
    Dans le sketch de test, la connexion est obtenue en 3s (6 '.' envoyés en print).
    Je peux essayer à nouveau avec un long timeout mais je doute un peu (?)



  • Damned, je viens de tenter de charger (pour la 2ème fois) WifInfo sur le Nodemcu, mais ce coup ci sans succès (!)
    Pour être plus sûr, je viens de repartir de la configuration de S. Remy
    https://github.com/sremy91/LibTeleinfo
    Je refais une compilation/vérification avec l'IDE Arduino, je téléverse puis je charge les fichiers les fichiers pour la partie serveur avec Esp8266 sktech data upload ...
    Mais cette fois, je ne détecte plus le SSID du nodemcu (!) ... donc plus de page web de configuration.
    Je ne suis pas super familier de l'IDE Arduino pour cette configuration.
    Comment puis-je faire pour débugger WifInfo ?



  • Tu peux debugger facilement en le branchant au port USB de ton PC via le moniteur série de l'arduino IDE par contre il faut que tu commentes ces lignes :

    Dans Wifinfo.ino :

    #ifdef DEBUG_SERIAL1
    Serial.begin(1200, SERIAL_7E1);
    Serial.swap();
    #endif

    Dans Wifinfo.h, change :

    #define DEBUG_SERIAL Serial1
    par
    #define DEBUG_SERIAL Serial

    Tu auras alors le debug sur le moniteur série.

    N'oublie de faire l'inverse pour récupérer les informations de ton compteur ;)

    Seb@stien



  • Ok, j'ai recompilé et téléversé le code en mode DEBUG comme indiqué par Seb3d.
    Je récupère le bavardage que j'ai un peu de mal à interpréter. Le module ne part toujours pas en mode AP mais je crois comprendre qu'il se connecte au réseau local en mode STA.
    Voici ci-dessous le début des messages (identifiants masqués) avant le cyclage sur ":urch 49, 49" .... C'est un peu long mais si cela vous permet de lire dans les entrailles de poisson (?)

    SDK:2.2.1(cfd48f3)/Core:2.4.2/lwIP:2.0.3(STABLE-2_0_3_RELEASE/glue:arduino-2.4.1-13-g163bb82)/BearSSL:6d1cefc
    SPIFFSImpl: allocating 512+240+1400=2152 bytes
    SPIFFSImpl: mounting fs @300000, size=fb000, block=2000, page=100
    SPIFFSImpl: mount rc=0
    Good CRC, not set!
    ========== SDK Saved parameters Start
    Mode: STA
    PHY mode: N
    Channel: 2
    AP id: 0
    Status: 1
    Auto connect: 1
    SSID (9): xxxxxxxxx
    Passphrase (11): xxxxxxxxxxx
    BSSID set: 0
    ========== SDK Saved parameters End
    Connecting to: SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    wata_2013Print::write(data,len) should be overridden for better efficiency
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    with key 'SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    wata;062013SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    '...
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    sta config unchangedscandone
    scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 4
    cnt

    connected with xxxxxxxxx, channel 2
    dhcp client start...
    ip:192.168.2.125,mask:255.255.255.0,gw:192.168.2.1
    Waited SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    200SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    ms
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    Connected!
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    IP address : SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    192.168.2.125
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    MAC address : SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    84:F3:EB:18:39:24
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    StaticRequestHandler: path=/font uri=/font isFile=0, cache_header=max-age=86400
    StaticRequestHandler: path=/js uri=/js isFile=0, cache_header=max-age=86400
    StaticRequestHandler: path=/css uri=/css isFile=0, cache_header=max-age=86400
    ===== Wifi
    ssid :xxxxxxxxx
    psk :xxxxxxxxxxx
    host :WifInfo-183924
    ap_psk :
    ap_retrycount:150
    OTA auth :OTA_WifInfo
    OTA port :8266
    Config : DEBUG
    ===== Emoncms
    host :emoncms.org
    port :80
    url :/input/post.json
    key :
    node :0
    freq :0

    ===== Jeedom
    host :jeedom.local
    port :80
    url :/jeedom/plugins/teleinfo/core/php/jeeTeleinfo.php
    key :
    compteur :
    freq :0

    ===== Domoticz
    host :192.168.2.50
    port :8080
    url :/json.htm
    user :
    password :
    idx_txt :73
    idx_p1sm :71
    idx_crt :72
    idx_elec :0
    idx_kwh :0
    idx_pct :0
    freq :0
    HTTP server started
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    SPIFFS_close: fd=1
    :urn 49
    :urch 49, 49
    pm open,type:2 0
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49
    :urch 49, 49

    Philippe



  • @Phi13 said in Wifinfo, connexion réseau impossible:
    Et quand tu vas sur l'IP : 192.168.2.125 tu n'as rien ? (http://192.168.2.125)

    Seb@stien



  • Je ne comprends pas tout :-)
    Effectivement, en allant sur 192.168.2.125, j'ai le serveur Wifinfo (je pensais qu'il n'était dispo que sur 192.168.4.1 .... ou c'est uniquement que pour la première utilisation ?)
    Cela voudrait dire que mon module fonctionne ?
    (je ne vois pas le retour d'info sur Domoticz car j'ai déconnecté l'ESP8266 de mon tableau electrique et de la téléinfo ...)
    ... bizarre....



  • @Phi13 said in Wifinfo, connexion réseau impossible:

    Je ne comprends pas tout :-)
    Effectivement, en allant sur 192.168.2.125, j'ai le serveur Wifinfo (je pensais qu'il n'était dispo que sur 192.168.4.1 .... ou c'est uniquement que pour la première utilisation ?)

    Lors de la première utilisation le module se met en mode AP, crée son propre réseau WIFI et a lui même l'adresse IP 192.168.4.1 … tu te connectes sur son réseau WIFI, et avec ton navigateur en adressant 192.168.4.1, tu tombes sur le serveur web embarqué … tu configures ton propre SSID, ta clé et le système redémarre et acquière une adresse sur ton propre réseau WIFI (ici 192.168.2.125) …

    Par la suite, si un jour il ne capte pas ton réseau WIFI, ou s'il ne parvient pas à s'y connecter (par exemple suite à changement de la clé), il se remettra en mode AP …

    Ça semble fonctionner …



  • C'est magique !
    Merci pour les explications. Je vais recompiler en mode "normal" et tester la transmission vers Domoticz.
    Bonne soirée



  • COOL
    Ca marche, je récupère bien les valeurs dans Domoticz ...
    Yessssss
    Merci à vous tous pour votre travail et votre aide !
    Philippe


Log in to reply