: Instabile WiFi/WLan Verbindung httpCode -1

#include <Arduino.h>
#include <ESP8266WebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>

float temperatur;   // globale Variable für Temperatur
unsigned long altzeit;   // speicher für millis()
unsigned long  startzeit;   // Timeout 
int x = 0;

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

const char* ssid = "xxx";
const char* pass =  "xxx";

ESP8266WebServer server(80);

//---------------------------------------------------
int handleRootPath() {

  Serial.print("Requesting temperatures...");
  Serial.println("DONE");
  server.send(200, "text/plain", String(temperatur));
  x = 1;
  return x;

}
//---------------------------------------------------

void setup() {

  Serial.begin(115200);

  // Start up the library
  sensors.begin();
  WiFi.persistent(false);   // daten nicht in EEprom
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
   
  Serial.println(WiFi.localIP());
  server.on("/", handleRootPath);
  server.begin();
}

void loop() {
  
  server.handleClient();

  restartESP();

  getOneWireTemperature();

}

void getOneWireTemperature()
{
  if (millis() - altzeit > 2000) {  // sind 2s vergangen ?
    altzeit = millis();
    temperatur = sensors.getTempCByIndex(0);
    Serial.print("Temperatur ");Serial.print(temperatur);Serial.print("  Startzeit ");Serial.println(millis() - startzeit);
   
    sensors.requestTemperatures();
  }  
}

void restartESP()
{
//  Serial.print("Startzeit ");Serial.println(millis() - startzeit); 
   
  if (x == 1) {
    startzeit = millis();
     x = 0;
  }

  if (millis() - startzeit > 120000) {
    startzeit = millis();
    Serial.print("Startzeit ");Serial.println(millis() - startzeit); 
    Serial.println("Es sind über 2 Minuten vergangen ");
    Serial.println("Restart ESP");
    ESP.restart(); //ESP reset
  }

}