Quatre interrupteurs Wifi qui change l’état des items dans le serveur domotique openHAB. Le serveur domotique tourne sur un Raspberry pi. Ces 4 poussoirs interrupteurs Legrand mosaic, sont relié à un arduino DI mini (ESP8266).
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
const char* ssid = "XXXXXXXXX";
const char* password = "XXXXXXXXX";
const int button [] = {D5, D6, D7, D3};
bool buttonState [] = {LOW,LOW,LOW,LOW};
String sendItem [] = {"AmbianceWW_Brightness", "LumiereTable_Brightness", "LumiereBureau_Brightness", "AllOff"};
String sendState [] = {"ON", "50", "50", "OFF"};
int newPush = 9;
void setup(void) {
WiFi.begin(ssid, password); // Connect to WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}//while
for (int i = 0; i <= 3; i++) {
pinMode(button[i], INPUT_PULLUP);
}//for
delay(100);
}//setup
void loop() {
for (int i = 0; i <= 3; i++) {
if (buttonState [i] == LOW && digitalRead(button[i]) == HIGH) {
newPush = i;
}
buttonState [i] = digitalRead(button[i]);
}
if (newPush != 9) {
Serial.print("newPush : ");
Serial.println(newPush);
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin("http://192.168.XXX.XXX:8080/rest/items/" + sendItem[newPush]);
http.addHeader("Content-Type", "text/plain");
int httpCode = http.POST(sendState[newPush]);
String payload = http.getString();
http.end();
}
delay(100);
}//if newpush
newPush = 9;
}