Besoin d'aide : retour d'état vers homebrige

Bonjour à tous,

Je me tourne vers vous car je suis bloqué avec une petite application je m'explique :

  • J'ai installé Homebridge avec le plugin http et http switch.

via un petit code j'arrive à piloter sans problème une led depuis homekit : ok tout fonctionne jusque là.

Cependant, j'aimerais intégrer le retour d'état de la broche de sortie de la led. En effet le but est de pouvoir actionner via les BP de ma maison et aussi de homekit. En d'autre mot, si quelqu'un actionne manuellement le BP le retour d'état n'est pas exact sur l'appli.

Comment puis je faire ? voici mon code :

#include <ESP8266WiFi.h>

const char* ssid = "XXXX";
const char* password = "XXXX";

int ledPin = LED_BUILTIN; // GPIO13
WiFiServer server(80);

void setup() {
Serial.begin(115200);
delay(10);

pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);

// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

// Start the server
server.begin();
Serial.println("Server started");

// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");

}

void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}

// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}

// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();

// Match the request

int value;
int switchState;
if (request.indexOf("/LED=ON") != -1) {
digitalWrite(ledPin, LOW);
}
if (request.indexOf("/LED=OFF") != -1) {
digitalWrite(ledPin, HIGH);
}
switchState = digitalRead(LED_BUILTIN);
if (switchState == LOW ) {
value = LOW;
}
else
value = HIGH;

// Set ledPin according to the request
//digitalWrite(ledPin, value);

// Return the response
client.println("HTTP/1.1 200");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("");
client.println("");
client.println("");

delay(1);
Serial.println("Client disonnected");
Serial.println("");

}

Merci à toutes et tous pour votre aide précieuse.

Bonjour

Il est demandé de mettre le code entre balises CODE, icône </>
pas entre balises QUOTE (=citations)

Pourquoi tu lis l'état de LEDBUILTIN au lieu de ledpin ?

Parceque je n ai pas encore câbler une led et que j ai utiliser la led interne de la carte.

Bonjour à tous,

Voilà, après m'etre arracher les cheveux, j'ai réussi à force d'essayer d'obtenir les retours d'info.

l'idée maintenant c'est de donner une pulse pour le ON et avoir le retour d'info : on et ensuite si par homekit ou par bp une autre pulse : off.

La maison est équipée de dimmer quasiment partout. jusqu'ici, j'arrive à piloter un relais ON ou OFF mais pas de pulse :frowning:

je souhaite également ajouter la prise de température. Via un autre code, cela fonctionne, si je met les 2 codes... cela ne fonctionne plus.

J'ai encore beaucoup de mal, cela fait 1 semaine que je m'arrache les cheveux pour arriver à mes fins :slight_smile:

Merci d'avance à tous et toutes que me donnerons un coup de mains !

A+

Capioka