#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Adafruit_NeoPixel.h>

HTTPClient sender;
WiFiClient wifiClient;

#define LED_COUNT 13
#define LED_PIN 4

Adafruit_NeoPixel strip = Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

// WLAN-Daten
const char* ssid = "DnD";
const char* password = "dndpassword";


void setup() {
  Serial.begin(115200);
  
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(200);
    Serial.print(".");
  }

  Serial.println("Connected!");
  strip.begin();
  strip.clear();
}


void loop() {
    delayMicroseconds(900000);
    if (sender.begin(wifiClient, "http://192.168.4.1/dnd")) {
    int httpCode = sender.GET();
   

    if (httpCode > 0) {
      
      if (httpCode == HTTP_CODE_OK) {
        String payload = sender.getString();
        String readString = payload;
        int delimiter, delimiter_1, delimiter_2;
        delimiter = readString.indexOf(" ");
        delimiter_1 = readString.indexOf(" ", delimiter + 1);
        delimiter_2 = readString.indexOf(" ", delimiter_1 +1);

        String brightStr = readString.substring(delimiter + 1, delimiter_1);
        String potStr = readString.substring(delimiter_1 + 1, delimiter_2);

        int potStr_int = potStr.toInt();
        int bright_int = brightStr.toInt();
       
        int bright_v = bright_int / 16;
        int pot_v = potStr_int / 4;

        Serial.println(potStr_int);
        Serial.println(bright_int);
        for(int a=0;a<LED_COUNT;a++){
            setPixel_Torch(a,pot_v,bright_v);
}
      
}
    
    else{
      Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str());
    }

    sender.end();
    
  }else {
    Serial.printf("HTTP-Connection cannot be established!");
  }
 
}
}

void setPixel_Torch(int pixelz, int colorz, long unsigned fadez) {
  fadez*=fadez;
  fadez/=255;
  strip.setPixelColor(pixelz,strip.ColorHSV(colorz*64,255,fadez));
  strip.show();
}
