 void loop()
 {
     Watchdogs::tickle();
+    watchConnection();
 #ifdef BLYNK_CLOUD
     Blynk.run();
 #endif
-    watchConnection();
     measure();
     publish();
 }

void publishThingspeak()
{
    static float tempValueOld = TEMP_VALUE_NAN;
    static unsigned long tsPublish;
    if (millis() - tsPublish >= PERIOD_PUBLISH_THINGSPEAK)
    {
        tsPublish = millis();
        bool isField = false;

#ifdef THINGSPEAK_FIELD_RSSI_VALUE

//-------------------------------------------------------------------------
void measureRssi()
{
    static unsigned long timeStamp;
    if (millis() - timeStamp >= PERIOD_MEASURE_RSSI || timeStamp == 0)
    {
        timeStamp = millis();
        int value = WiFi.RSSI();
        if (value < 0)
        {
            rssiValue = efRssi.getValue(value);
        }
    }
}

void measureTemp()
{
    static unsigned long timeStamp;
    if (millis() - timeStamp >= PERIOD_MEASURE_TEMP || timeStamp == 0)
    {
        timeStamp = millis();
        while(smooth.registerData(analogRead(PIN_LM35)));
        tempValue = efTemp.getValue(COEF_LM35 * smooth.getMidAverage());
        tempValueMin = fmin(tempValueMin, tempValue);
