Esp8266 reconnection

It is already… use the non-blocking Blynk.config() and your own WiFi setup.

It is not as seamless when using a ESP as shield, but that is due the nature of the shield use (as the ESP becomes a simple Serial to WiFi transceiver, then not directly programmable), not really a Blynk issue.

Many topics and examples already exist in this forum about how to use devices, with or without internet.

For example (again, primarily for ESP standalone, but try it with your arduino and see)…

I use similar connection with my Mega and ESP-01 as shield…

  wifi.setDHCP(1, 1, 1); //Enable dhcp in station mode and save in flash of esp8266
  Blynk.config(wifi, auth, server, port);
  if (Blynk.connectWiFi(ssid, pass)) {
    Blynk.connect();
  }
void loop() {
  timer.run();

  if (Blynk.connected()) {  // If connected run as normal
    Blynk.run();
  } else if (ReCnctFlag == 0) {  // If NOT connected and not already trying to reconnect, set timer to try to reconnect in 60 seconds
    ReCnctFlag = 1;  // Set reconnection Flag
    Serial.println("Starting reconnection timer in 30 seconds...");
    timer.setTimeout(30000L, []() {  // Lambda Reconnection Timer Function
      ReCnctFlag = 0;  // Reset reconnection Flag
      wifi.setDHCP(1, 1, 1); //Enable dhcp in station mode and save in flash of esp8266
      Blynk.config(wifi, auth, server, port);
      Blynk.connect();  // Try to reconnect to the server
      if (Blynk.connectWiFi(ssid, pass)) {
        Blynk.connect();
      }
    });  // END Timer Function
  }
}