Arduino--Debug aus der Ferne

OK, Danke für die Vorschläge erstmal,
2. Mini + Lan würde aus Platzmangel schwer zu realisieren sein
Wemos bzw. irgendwas mit WLAN geht nicht da kein Wlan vorhanden.
Reset brauch ich eigentlich nicht, da intern ein "Fehlerzähler" läuft und wenn Fehler > XXX macht er eh Neustart.

merkwürdig, was ich aus der Ferne jetzt schon sehe, ich hab ja diesen "Fehlerzähler", der wird an 2 Stellen aufgerufen, könnte sich also im Fehlerfall maximal um 2 erhöhen pro Durchlauf, er erhöht sich aber teilweise um 7 ?????? Das ist ja schon sehr merkwürdig.

"werr" ist das um was es geht.....Auszug aus dem Sketch, die .......da ist nix was das Verhalten erklären könnte.

void loop()
{
    //Laufzeit des Boards   
    currentTime = millis();
    //Zeitfunktion aufrufen
    uptime(); 
    //Netzwerk
    
    
    if (secs==00) {                                 // Werte für Cam und Windsensor setzem
    windtimer=windtimer+1;                          // Werte für Cam und Windsensor setzem
    camtimer=camtimer+1;                            // Werte für Cam und Windsensor setzem
                              
       
       if (werr > 20) { wdt_enable(WDTO_2S);        // bei häufig Wind Error neustart
       delay (3000);
       }  
     }
//alle 1 minuten winddaten messen und versenden    
       if (windtimer==1){
        windtimer=0;
        Winddaten();
       }

}

void Winddaten()
   {
   ....
   ....
   ....
  whileTime = millis();
   
while(stat == HIGH){                       // wait for falling edge (sync to startbit)
      stat = digitalRead(senspin); 
      if (millis() > (whileTime) + 4000) {    // wenn nach xxx Zeit nix kommt, aufhören sonst steht ewig hier
        werr = werr + 1;                      // Error setzten
      break;                                  // raus hier
     } 
   }
  .....
  .....
  .....
  .....  
    
    //wenn sinnlose Werte empfangen........
    if ((header != 4) || (richtung > 15) || (windspeed > 500)) {
      werr = werr + 1;
      break;
    } else {
    ......
    ......
    ......
      }
  }
}

void uptime()
    {
    secs = currentTime/1000;   // convect milliseconds to seconds
    mins=secs/60;              // convert seconds to minutes
    hours=mins/60;             // convert minutes to hours
    secs=secs-(mins*60);       // subtract the coverted seconds to minutes in order to display 59 secs max
    mins=mins-(hours*60);      // subtract the coverted minutes to hours in order to display 59 minutes max
    }

Könnte es sein das er so schnell durch "Winddaten" durch rauscht das die 1 Sekunde noch nicht um ist, somit "secs" immernoch 0 ist und er dadurch ein 2.mal direkt wieder da rein rauscht?
Das würde evtl. dann das Fehlverhalten erklären??
Könnte durch den UMTS Anbieterwechsel sein das er die Daten jetzt schneller los bekommt als vorher, denn eigentlich lief alles 1,5Jahre so ....