Virtuino et freebox

Bonjour,
J'suis nouveau sur le forum.
Je démarre avec les cartes ethernet et je n'ai donc aucune expérience dedans.
Je cherche à communiquer avec ma carte Arduino Uno branchée sur le routeur de ma freebox HD avec une carte Ethernet 2 (W5500).
J'ai attribué un port permanent (192.168.0.40) à ma carte Ethernet avec son n° mac.
Je teste avec un exemple de la libairie ethernet 2 (WebServer.ino), je communique, je lis sur ma page http:\192.168.0.40( firefox) les valeurs de mes entrées analogiques.
Si je comprends bien, j'envoie une requete de demande de lecture, et j'ai un retour. Je communique donc bien dans les 2 sens.
Le DHCP est ouvert par défaut (de 10 à 50) et mon PC a pris la première adresse (0.10) , mon smartphone la seconde (0.11).
Par contre, quand je charge dans l'arduino l'exemple de la librairie Virtuino CM (modifiée en ethernet2), en rentrant les bons n° d'IP et Mac, je n'arrive pas à me connecter avec mon smartphone (econnrefused) par l'appli Virtuino.
Chez virtuino, ils ne me donnent que la solution de l'IP fixe (Ethernet.begin(mac, ip, gateway, subnet)) qui ne marche pas mieux. Depuis, silence radio de chez eux.
Je merde quelque part, c'est sûr, mais où?
Si quelqu'un a une idée...
Merci

ça plante au niveau de cette vérification ?


image prise dans leur tuto (je n'utilise pas, suis allé voir par curiosité)

Assurez vous que votre téléphone est bien sur votre réseau wifi, dans la même plage d'adresse et pas en 4G.

Bonjour,
Oui, en effet ca plante à ce niveau là, je suis bien en wifi (en Ip 192.168.0.11) et pas en 4G.
Je suis allé bien sûr voir et suivre les tutos, mais rien de mieux pour moi.
Merci

et vous avez des composants connectés dans le shield? si oui sur quelles pins?

Non, pour l'instant j'ai une carte Uno toute nue, avec le shield dessus.

postez le code que vous avez chargé dans votre arduino

La librairie est celle téléchargée .
Le code est celui là (dans les exemples de la librairie avec les IP changés) :

/* Example: Ethernet_getting_started
 * Created by Ilias Lamprou
 * Modified: Sep/9/2019
 */

//-------------Ethernet Library and settings --------------
#include <SPI.h>
//#include <Ethernet.h>
#include <Ethernet2.h>    // enable this line to support Ethernet 2
byte mac[] = {0xA8, 0x61, 0x0A, 0xAE, 0x30, 0x72};       // Set the ethernet shield mac address.
IPAddress ip(192, 168, 0, 40);                          // Set the ethernet shield ip address. The three first number has to be the same with the router IP
//IPAddress gateway(192, 168, 0, 254);
//IPAddress subnet(255, 255, 255, 0);
EthernetServer server(8000);                             // Server port = 8000

//-------------VirtuinoCM  Library and settings --------------
#include "VirtuinoCM.h"
VirtuinoCM virtuino;               
#define V_memory_count 32          // the size of V memory. You can change it to a number <=255)
float V[V_memory_count];           // This array is synchronized with Virtuino V memory. You can change the type to int, long etc.

boolean debug = true;              // set this variable to false on the finale code to decrease the request time.

//============================================================== setup
//==============================================================
void setup() {
  if (debug) {
    Serial.begin(9600);
    while (!Serial) continue;
  }

  virtuino.begin(onReceived,onRequested,256);  //Start Virtuino. Set the buffer to 256. With this buffer Virtuino can control about 28 pins (1 command = 9bytes) The T(text) commands with 20 characters need 20+6 bytes
  //virtuino.key="1234";                       //This is the Virtuino password. Only requests the start with this key are accepted from the library
  
  Ethernet.begin(mac, ip);
  server.begin();
  if (debug) Serial.println(Ethernet.localIP());
  
  pinMode(4, OUTPUT);            // On Virtuino panel add a button to control this pin
  pinMode(5, OUTPUT);            // On Virtuino panel add a button to control this pin
  pinMode(6, INPUT);             // On Virtuino panel add a led to get the state of this pin
  pinMode(7, INPUT);             // On Virtuino panel add a led to get the state of this pin
  }




//============================================================== loop
//==============================================================
void loop() {
  virtuinoRun();        // Necessary function to communicate with Virtuino. Client handler

  // enter your code below. Avoid to use delays on this loop. Instead of the default delay function use the vDelay that is located on the bottom of this code
  // You don't need to add code to read or write to the pins. Just enter the  pinMode of each Pin you want to use on void setup


  
  vDelay(1000);     // This is an example of the recommended delay function. Remove this if you don't need
}









//============================================================== onCommandReceived
//==============================================================
/* This function is called every time Virtuino app sends a request to server to change a Pin value
 * The 'variableType' can be a character like V, T, O  V=Virtual pin  T=Text Pin    O=PWM Pin 
 * The 'variableIndex' is the pin number index of Virtuino app
 * The 'valueAsText' is the value that has sent from the app   */
 void onReceived(char variableType, uint8_t variableIndex, String valueAsText){     
    if (variableType=='V'){
        float value = valueAsText.toFloat();        // convert the value to float. The valueAsText have to be numerical
        if (variableIndex<V_memory_count) V[variableIndex]=value;              // copy the received value to arduino V memory array
    }
}

//==============================================================
/* This function is called every time Virtuino app requests to read a pin value*/
String onRequested(char variableType, uint8_t variableIndex){     
    if (variableType=='V') {
    if (variableIndex<V_memory_count) return  String(V[variableIndex]);   // return the value of the arduino V memory array
  }
  return "";
}

//============================================================== virtuinoRun
   void virtuinoRun(){
  EthernetClient client = server.available();
  if (client) {
    if (debug) Serial.println("Connected");
    virtuino.readBuffer="";             // clear Virtuino input buffer. The inputBuffer stores the incoming characters
    if (client.connected()) {
      while (client.available()>0) {        
        char c = client.read();         // read the incoming data
        virtuino.readBuffer+=c;         // add the incoming character to Virtuino input buffer
        if (debug) Serial.write(c);
      }
     String* response= virtuino.getResponse();    // get the text that has to be sent to Virtuino as reply. The library will check the inptuBuffer and it will create the response text
     if (response->length()>0) {
        if (debug) Serial.println("\nResponse : "+*response);
        client.print(*response);
     }
     client.stop(); 
    }
    if (debug) Serial.println("Disconnected");
  }
 }
 //============================================================== vDelay
  void vDelay(int delayInMillis){long t=millis()+delayInMillis;while (millis()<t) virtuinoRun();}

Merci.

Quand je vois ce code  void vDelay(int delayInMillis){long t=millis()+delayInMillis;while (millis()<t) virtuinoRun();}ça ne me donne pas confiance sur les capacités de ce développeur…

je passerais sur une autre plate-forme (blynk ou similaire si j’étais vous)

pourquoi la clé est commentée?  //virtuino.key="1234";                      //This is the Virtuino password. Only requests the start with this key are accepted from the library

Là, je ne suis pas sûr de vous suivre.
Cela étant, je viens de faire un essai en enlevant la déclaration de la pin 4 en output qui est me semble t il utilisée par le SPI.., et là ça passe...
En effet, ça sent pas bon. je vais regarder vos plateformes, un lien peut être?
Merci en tout cas de vous être penché sur mon problème.

La clé est commentée pour un accès depuis l’extérieur me semble t il.

en lisant le commentaire "Only requests that(?) start with this key are accepted from the library" j'ai l'impression que c'est un code spécial à mettre.. faudrait lire la doc.