#include <SPI.h>
#include <ESP8266WiFi.h>

byte ledPin = 2;
byte relayPin = 5;
char ssid[] = "";               // Enter network name here
char pass[] = "";               // Password - if open network, leave as ""

WiFiServer server(80);                    

IPAddress ip(10, 0, 33, 80);           // IP address 
IPAddress gateway(10,0,0,1);           // gateway 
IPAddress subnet(255,255,192,0);       // subnet mask 

void setup() {
  Serial.begin(115200);
  WiFi.config(ip, gateway, subnet);
  WiFi.begin(ssid, pass);

  server.begin();
  pinMode(ledPin, OUTPUT);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);
}

void loop () {
  WiFiClient client = server.available();
  if (client) {
    if (client.connected()) {
      digitalWrite(ledPin, LOW);
      String request = client.readStringUntil('\r');    // input from client
        if (request == "buttonOpen"){
          Serial.print("From client: "); Serial.println(request);
          client.flush();
          client.println("Server confirms button is open\r"); // output to client
          digitalWrite(ledPin, HIGH);
          digitalWrite(relayPin, HIGH);
        }
        else if (request == "buttonClosed"){
          Serial.print("From client: "); Serial.println(request);
          client.flush();
          client.println("Server confirms button is closed\r"); // for client debug
          digitalWrite(ledPin, HIGH);
        }
       while (relayPin == HIGH) { //will blink the led pin if the button has been pressed
        digitalWrite(ledPin, HIGH);
        delay(500);
        digitalWrite(ledPin, LOW);
        delay(500);
       }
    }
    client.stop();                
  }
}
