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.