 
   unsigned long systemActive = millis() - systemStart;
   unsigned int secondsUntilOff = 0;
-  if ((systemAwakeSeconds - 2)*1000 > systemActive) // -2 lie a little bit here; more time to connect
-    secondsUntilOff = ((systemAwakeSeconds - 2)*1000 - systemActive) / 1000;
+  if ((systemAwakeSeconds - 3)*1000 > systemActive) // -3 lie a little bit here; more time to connect
+    secondsUntilOff = ((systemAwakeSeconds - 3)*1000 - systemActive) / 1000;
 
   TH externalData;
   bool dataReceived = server.receiveData(&externalData, secondsUntilOff);

#include "Wave29Display.h"
Wave29Display display;

unsigned long systemSleepSeconds = 180; // including the awaked time
unsigned long systemAwakeSeconds = 12;

#include "TH.h"
#include "WeatherServer.h"

    unsigned long sleepMillis = 1;
    if (systemSleepSeconds * 1000 > systemActive)
      sleepMillis = systemSleepSeconds * 1000 - systemActive;

    systemState.accumulatedSystemMillis = systemState.accumulatedSystemMillis + systemActive + sleepMillis;
    Serial.print(systemState.accumulatedSystemMillis / (1000 * 60));
    
    Serial.print("m Sleeping ");
    if (shouldSleepNow && !sleepNow)
      Serial.print("in vain ");
    Serial.println(sleepMillis);
