probleme pushingbox

Bonjour à tous, je suis toujours sur mon problème pushingbox, apparement mon client 2 ne fonctionne pas, et je ne vois pas trop ou peut etre le problème.
Si quelqu’un pouvait y jeter un oeil ( meme les 2 :slight_smile: ) ça serait super sympa

merci d’avance

// ---------------------------------------------------------------------------------------------------------
// zimmermann frédéric
// Arduino + ethernet shield control by iOS
// Mai 2015
// ----------------------------------------------------------------------------------------------------------

#include <LiquidCrystal.h>
#include <Ethernet.h>
#include <SPI.h>

// Ethernet shield settings
// Change the MAC in hex, your IP, Gateway, subnet mask and webport
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};        // MAC
byte ip[] = {192, 168, 0, 93};                         // Shield IP
byte gateway[] = {192, 168, 0, 1};                      // Gateway
byte subnet[] = {255, 255, 255, 0};                       // Subnet mask
int port = 85;                                            // Webport
// ---------------------------------------------------------------------

EthernetServer server(port);
LiquidCrystal lcd(9,8, 5, 4, 3, 2);
EthernetClient client2;

int Cloture1 = 30;
int led = 22;
int bouton = 6;
int etatbouton ;

int val= 0;
int precedetat= 0;
long previousMillis = 0;
long interval = 250;

boolean pushenvoi = false;
boolean cloture1Allume = true;
boolean clotureOFFiphone;
boolean DEBUG = true;
boolean lastConnected = false; 

char DEVID1[] = "v1F51D72F4A163BD";  //sénario cloture 1 allumé
char DEVID2[] = "v7F928A69AAD2196";  //sénario cloture 1 éteinte
char serverName[] = "[api.pushingbox.com](http://api.pushingbox.com)";


// Serial speed
int speedSerial = 9600;

// Buffer size
int sizeString = 80;
String stringInput = String(sizeString);

// Setup
void setup()  {
  
  
   lcd.begin(16,2);
  
  // Digital Pins 10, 11, 12 i 13 utilisé par le shield ethernet
  pinMode(Cloture1, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(bouton, INPUT);
  


  
  // Start ethernet shield webserver
  Serial.begin(speedSerial);
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  
}  


void loop()  { 
  
  
   
   val = digitalRead (bouton);
   
   Serial.print("CLOTURE");
   Serial.print(" ");
   Serial.println(cloture1Allume);
   delay(500);
   Serial.print("bouton");
   Serial.print(" ");
   Serial.println(etatbouton);
   
  //------------------------------ GESTION DE L'APPUI SUR LE BOUTON --------------------------------

if (val == HIGH && precedetat == LOW) {
etatbouton = !etatbouton;
delay(10);
}
 precedetat = val;


if(etatbouton == 0 && cloture1Allume == true) { // si bouton n'a pas encore été appuyé et cloture allumée
  
      lcd.setCursor(0, 1);
              lcd.print("Clot1. ON.Bouton ");} 
  
  
  
if (etatbouton == 1 && cloture1Allume == true) { // si bouton appuyé et cloture allumée
  cloture1Allume = false; 
      lcd.setCursor(0, 1);
              lcd.print("Clot1.OFF.Bouton ");}                      // alors on éteint
  
 if (etatbouton == 0 && cloture1Allume == false) {   //  si  bouton pas appuyé et cloture éteinte 
   cloture1Allume = true; 
 lcd.setCursor(0, 1);
              lcd.print("Clot1. ON.Bouton ");      // alors on allume

 }

  if (etatbouton == 0 && cloture1Allume == true && clotureOFFiphone == true){   // si bouton pas appuyé, cloture allumé et iphone Off
    cloture1Allume = false;
     lcd.setCursor(0, 1);
              lcd.print("Clot1.OFF.Iphone ");}                 // alors on éteint

  //---------------------------------CONNEXION AU SERVEUR------------------------- 

 
    
    
  EthernetClient client = server.available();
  if (client)  {
    
    boolean currentLineIsBlank = true;
    stringInput = "";
    
    if (client.connected())  {
      while (client.available())  {

        char c = client.read();
        
        if(stringInput.length() < sizeString)  {
          stringInput.concat(c);
          
        }
        
        if (c == '\n' && currentLineIsBlank)  {
          
          digitalRead(Cloture1);
          

          client.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
          
            client.println("<agridomotique>");
            
          // Pin 30 Cloture1
          
          client.print("<Pin>");
          client.print("<namePin>Cloture1</namePin>");
            client.print("<digitalPin>");
            // Digital pin to control
             client.print(Cloture1);
            client.print("</digitalPin>");
              client.print("<Estado>");
             if (cloture1Allume == 1) { client.print ("  ALLUMEE");}
          if (cloture1Allume == 0) { client.print (" ETEINTE");}
             client.print("</Estado>");
          client.print("</Pin>");
          
          
          
          
          
          client.println("</agridomotique>");
          break; 
         }
        
        if (c == '\n')  {
          
          Serial.print(stringInput);
          Serial.println();
          
          if(stringInput.indexOf("GET") !=-1)  {
             
            

            // si iphone ON 
            if (stringInput.indexOf("Cloture1=ON") != -1){
                cloture1Allume = true;
                clotureOFFiphone = false;
               lcd.setCursor(0, 1);
              lcd.print("Clot1. ON.Iphone ");
             
             
              
              
            }
            // si off iphone 
            if ((stringInput.indexOf("Cloture1=OFF") != -1)&&(cloture1Allume==true)) { 
              cloture1Allume = false;
              clotureOFFiphone= true;
             lcd.setCursor(0, 1);
              lcd.print("Clot1.OFF.Iphone ");
              
              
                            
            }  
            
            
            
          }
          currentLineIsBlank = true;
          stringInput = "";
        } 
        else if (c != '\r')  {
          
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  
   }
   
  // connection client 2 pour push
    EthernetClient client2;
      // this write the respons from PushingBox Server.
      // You should see a "200 OK"
      if (client2.available()) {
        char c = client2.read();
        if(DEBUG){Serial.print(c);}
      }
      
      // if there's no net connection, but there was one last time
      // through the loop, then stop the client:
      if (!client2.connected() && lastConnected) {
        if(DEBUG){Serial.println();}
        if(DEBUG){Serial.println("disconnecting.");}
        client2.stop();
      }
      lastConnected = client2.connected();
      
   
if (cloture1Allume == true ) {                       // ON ALLUME LA CLOTURE
       digitalWrite (Cloture1, HIGH);
       digitalWrite (led, HIGH); 
       pushenvoi = true;
   }
       
    if (cloture1Allume == false ) {                  // ON ETEINT LA CLOTURE
      digitalWrite (Cloture1, LOW);
       digitalWrite (led, LOW); 
       pushenvoi = false; }
       
    if ( cloture1Allume == true && pushenvoi == false ) {
         // On envoi un push allumé
         sendToPushingBox(DEVID1);
    }
    
    if ( cloture1Allume == false && pushenvoi == true ) {
         // On envoi un push éteint
         sendToPushingBox(DEVID2);
    }
    
}
     //Function for sending the request to PushingBox
void sendToPushingBox(char devid[]){
  client2.stop();
  if(DEBUG){Serial.println("connecting...");}

  if (client2.connect(serverName, 80)) {
    if(DEBUG){Serial.println("connected");}

    if(DEBUG){Serial.println("sendind request");}
    client2.print("GET /pushingbox?devid=");
    client2.print(devid);
    client2.println(" HTTP/1.1");
    client2.print("Host: ");
    client2.println(serverName);
    client2.println("User-Agent: Arduino");
    client2.println();
  } 
  else {
    if(DEBUG){Serial.println("connection failed");}
  }
}  
 
[code]

salut

j'ai un doute sur le nom de ton serveur pushingbox ...

moi j'utilise le code ci-dessous et ça fonctionne

  if(client.connect("api.pushingbox.com", 80)) {
    Serial.println(F("connected to PushingBox"));
    Serial.println(F("sending ..."));
    client.print(F("GET /pushingbox?devid="));
    client.print(PB[index].id); //id à exécuter
    client.println(F(" HTTP/1.1"));
    client.print(F("Host: "));
    client.println(F("api.pushingbox.com"));
    client.println(F("User-Agent: Arduino"));
    client.println();
    Serial.println(F(" success"));
  }

Le nom est le même que toi, le problème c'est que je suis serveur pour contrôler mes pins par internet et client pour envoyer le push

Il n'y a pas de conflit entre serveur et client ... je fais la même chose ..

mais toi tu utilises comme serveur "api.pushingbox.com";

Je vais tester ce soir, merci pour tes conseils

Ça ne fonctionne tj pas, comment initialises tu ta connection client , peux tu me montrer stp ?
Metci

Je fais ethernet.begin(mac); // je n’utilise pas les autres parametres (ip,…) car ça marche très bien sans … (Parfois ça ne marche pas si j’ajoute l’adresse ip du Shield ethernet)

Ensuite le client est initialisé dans le code que j’ai inséré dans un précédent post… Rien de plus

J’ai attribué sur le routeur (freebox, ou live box chez un ami) une ip fixe à la carte ethernet avec une redirection du port externe vers le port 80 de la carte…

Ok merci beaucoup, je vais tester. Ça fait plusieurs jours que j'essaie , mais la partie client ne fonctionne pas contrairement au serveur .

Encore Metci