   // ce doit être a (analogique) ou b (binaire)
   if(strcmp(mod2,"a")!=0 && strcmp(mod2,"b")!=0){
     // réponse d'erreur
-    sendReponse(client, reponse(strId,"304",NULL));
+    sendReponse(client, reponse(strId,"403",NULL));
+    return;
+  }
+  
+  //paramètre pin non numérique ou hors des limites: erreur 404
+  if(!isValidNumber(pin) || (strcmp(mod2, "b")==0 && (pin2 < 0 || pin2 > 13)) || (strcmp(mod2, "a")==0 && (pin2 < 0 || pin2 > 5)) ) {
+    sendReponse(client, reponse(strId,"404",NULL)); // réponse d'erreur
     return;
   }
   // c'est bon pas d'erreur
   // suivi
-  Serial.print(F("pw mod="));
+  Serial.print(F("pr mod="));
   Serial.println(mod2);
   // on lit la pin
   pinMode(pin2, INPUT); 

  // il faut une pin
  aJsonObject *pin = aJson.getObjectItem(parametres, "pin");
  if(pin==NULL){
    sendReponse(client, reponse(strId,"201",NULL)); // réponse d'erreur
    return;
  }
  // numéro de la pin à écrire
  String strPin = pin->valuestring;
  int pin2 = strPin.toInt();
  // suivi
  Serial.print(F("pw pin="));
  Serial.println(pin2);
  // il faut une valeur
  aJsonObject *val = aJson.getObjectItem(parametres, "val");
  if(val==NULL){
    sendReponse(client, reponse(strId,"202",NULL)); // réponse d'erreur
    return;
  }
  // valeur à écrire
  String strVal = val->valuestring;
  int val2 = strVal.toInt();
  // suivi
  Serial.print(F("pw val="));
  Serial.println(val2);
  // il faut un mode d'écriture
  aJsonObject *mod = aJson.getObjectItem(parametres, "mod");
  if(mod==NULL){
      sendReponse(client, reponse(strId,"203",NULL)); // réponse d'erreur
      return;
  }
  
  char* mod2 = mod->valuestring;
  
  // ce doit être a (analogique) ou b (binaire)
  if(strcmp(mod2,"b")!=0 && strcmp(mod2,"a")!=0){
    sendReponse(client, reponse(strId,"204",NULL)); // réponse d'erreur
    return;
  }
  // c'est bon pas d'erreur
  sendReponse(client,reponse(strId,"0",NULL));
  // suivi

IPAddress ipServeurEnregistrement(192,168,2,1); // IP du serveur d'enregistrement
int portServeurEnregistrement=100; // port du serveur d'enregistrement
EthernetClient clientArduino; // le client Arduino du serveur d'enregistrement
String commandeGlobal; //commande reçue par le serveur
String reponseGlobal; //réponse à envoyer au serveur

// initialisation
void setup() {
