   timer_remote.run();
   timer_vcc.run();
   timer_broadcast.run();
+  timer_schedule.run();
     }
 }

          return "";
     }
}
void parseSchedule(){
       StaticJsonBuffer<200> jsonBuffer; 
       StaticJsonBuffer<200> jsonBufferNested;
       SPIFFS.begin();
       File configFile = SPIFFS.open("/schedule.txt", "r");

          String line = configFile.readStringUntil('\n');
          configFile.close();
          JsonObject& jdata = jsonBuffer.parseObject(line);
               if (!jdata.success()){ Serial.println("parseObject() failed on 1 lap checkShedule"); return; }
           for(JsonObject::iterator it=jdata.begin(); it!=jdata.end(); ++it) {
               if(it->value.is<JsonObject>()){
                JsonObject& ndata = it->value;
                 if (!ndata.success()){ Serial.println("parseObject() failed on 2 lap checkShedule"); return; }
                   const char* hour;
                   const char* minute;
                   const char* portion;
                   for(JsonObject::iterator it2=ndata.begin(); it2!=ndata.end(); ++it2) {
                    const char* key = it2->key;
                    const char* value = it2->value;
                    if(strcmp(key, "hour") == 0){ hour = value; }
                    if(strcmp(key, "minute") == 0){ minute = value; }
                    if(strcmp(key, "portion") == 0){ portion = value;  } 
                   }
                if(strcmp(hour, getNowHour().c_str()) == 0 && strcmp(minute, getNowMin().c_str()) == 0){
                         doFeed(portion);
                   }
               }
          }  
     }
}
