: Instabile WiFi/WLan Verbindung httpCode -1

Wenn ich oben das aus dem SerMon sehe, dann fragt der Controller alle 40Sekunden?

Las den mal laufen - bis zum reset:

#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 lastRequest;
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...");
  server.send(200, "text/plain", String(temperatur));
  Serial.print("DONE by: ");
  lastRequest = millis();
  Serial.println(lastRequest);
}
//---------------------------------------------------

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() - lastRequest);
    sensors.requestTemperatures();
  }
}

void restartESP()
{
  const unsigned long zeit = 1200000;
  static unsigned long intervall = zeit ;
  if (millis() - lastRequest > intervall)
  {
    intervall += zeit;
    Serial.print("letzter Request "); Serial.println(millis() - lastRequest);
    Serial.println("Es sind über 2 Minuten vergangen ");
    if (intervall > 5 * zeit)
    {
      Serial.println("Restart ESP");
      ESP.restart(); //ESP reset
    }
  }
}