Interrupteur pour OpenHAB

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;
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *