RTC integration with Arduino MEGA

Hello ,, i am working on project to controll water pump and light on/off using the below component

arduino Mega
ethernet Shield
RTC Module

All the project is going good so far,, the main idea of the project is to do the following

  1. Automatic Controll for switching light ON/Off with the capability to interrupt the process and manually force it on or off
  2. Controlling the on/off state of water pump using webserver and allowing of manual controll of it as well
  3. all communication are done through Webserver
  4. Arduino Mega also is sending API to IFTTT on the internet to create records for the events and send emails as well by using APIs and Webhook integration
  5. SDcard is used the events of light and on/off state of the water pump
  6. RTC module is to get the time and date

Issue description:
the project is working great and all events are working fine Except when i am adding the RTC module
whenever i am adding this line in the code and uploading it to the arduino it never works
DateTime now = rtc.now() ;

i am not able to get the root cause of the issue .

this is the code

// things to check SD card initialization  if failed power should be diconnected and connected 

//  there should be motor interrupt so that only the one who operated the motor is able to turn it off ... this is done 
// Pull UP resistor for inputs or 10k resistor connected to the groud  ... this is done 

#include "RTClib.h"
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include "uptime.h"
#include <Dns.h>

RTC_DS1307 rtc;

// size of buffer used to capture HTTP requests
#define REQ_BUF_SZ   60
#define RESPONSE_BUF_SZ   15             // the byte size for HTTP/1.1 200 OK 

int trial = 0;
bool true_response = 0;
char HTTP_response[RESPONSE_BUF_SZ];   // buffered HTTP request stored as null terminated string
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// IPAddress ip(192, 168, 0, 10); // IP address, may need to change depending on network
//IPAddress ip(10, 0, 0, 10);

// use the numeric IP instead of the name for the server:
// IPAddress IFTTT(34, 236, 248, 94);  // numeric IP for Google (no DNS)
IPAddress IFTTT ;
// char IFTTT[] = "maker.ifttt.com";    // name address for Google (using DNS)


EthernetServer server(80);  // create a server at port 80
EthernetClient client2;
EthernetClient client3;

unsigned long StartTime, StartTimeOwner, StartTimeRenter, EndTime, EndTimeOwner, EndTimeRenter, timetaken, timetakenOwner, timetakenRenter;
unsigned long TotalOwnerTime_Hours, TotalOwnerTime_Minutes, TotalRenterTime_Hours, TotalRenterTime_Minutes, TotalMotorTime_Hours, TotalMotorTime_Minutes;

File webFile;               // the web page file on the SD card
char HTTP_req[REQ_BUF_SZ] = { 0 }; // buffered HTTP request stored as null terminated string
char req_index = 0;              // index into HTTP_req buffer
bool LED_state[2] = { 0 }; // stores the states of the LEDs
int sensorReading = 0;
bool LDR = 0;
bool Interrupt = 0;
bool Motor_state = 0;
bool Renter_state = 0;
bool Mega_State = 1;
bool UNO_State = 0;   // state off for the arduino UNO

// the following diffrentiators are not required internally as only i need to know who turned off the motor externally 
// but in the webpage we are already differentiating who turned the motor on/off
bool ext_Motor_interrupt_Owner = 0;    // this is used for differentiating between who turned off the motor
bool ext_Motor_interrupt_Renter = 0;    // this is used for differentiating between who turned off the motor



//  Mail requirements
int Operator = 0;
int LightOperator = 0;
bool MotorMail = 0;
bool LightMail = 0;
bool lastState_Motor = 0;
bool lastState_Light = 0;

// in switch state 
//  case 0   light off
//  case 1   light ON 
//  case 2   MotorOwnerON
//  case 3   MotorOwnerOFF
//  case 4   MotorRenterON 
//  case 5   MotorRenterOFF

char buf1[] = "DDD, DD MMM YYYY hh:mm AP"; 
String Date_Time = "" ;
File ExcelSD;

/* ============= Reset-Function ============== */
void(*resetFunc) (void) = 0;   //declare reset function at address 0

void setup()
{
   //    Serial.begin(9600);       // for debugging
     // disable Ethernet chip
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);
    pinMode(53, OUTPUT);


    delay(2000);
    SD.begin(4);  // initializing SD card for usage
    delay(2000);

    //  initialize SD card
 //       Serial.println("Initializing SD card...");
 //       if (!SD.begin(4)) {
 //          Serial.println("ERROR - SD card initialization failed!");
 //         return;    // init failed
 //      }
 //      Serial.println("SUCCESS - SD card initialized.");
        // check for index.htm file
 //       if (!SD.exists("webpage.htm")) {
 //           Serial.println("ERROR - Can't find index.htm file!");
 //           return;  // can't find index file
   //    }
 //       Serial.println("SUCCESS - Found index.htm file.");

     // Inputs from motor Owner or Renter state

    pinMode(22, OUTPUT);  // Owner to Operate the motor                         Relay
    pinMode(23, OUTPUT);  // to turn off the motor ......                       Relay 
    pinMode(24, OUTPUT);  // Renter to turn on the motor                        Relay 

    pinMode(25, INPUT_PULLUP);  // for actual state of motor    motor is UP or down         220v Relay
    pinMode(26, INPUT_PULLUP);  // for Owner as operator        if Owner key is closed      220v Relay 
    pinMode(27, INPUT_PULLUP);  // for Renter as operator        if Renter key is closed    220v Relay   

    pinMode(32, OUTPUT); //     for resetting the UNO


//    pinMode(A0, INPUT);
    pinMode(A0, INPUT_PULLUP);

    pinMode(5, OUTPUT);  // Normal LDR relay                                 control normal automatic operation  Relay 
    pinMode(6, OUTPUT);  // to force the light off at night                                                      Relay 
    pinMode(7, OUTPUT);  // used to force light on in the morning                                                Relay 


    pinMode(30, OUTPUT); // LED Testing
    pinMode(31, INPUT); // Arduino UNO Input  
    digitalWrite(32, HIGH);  // for UNO Reset 


    digitalWrite(5, HIGH);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);

    digitalWrite(22, HIGH); // Owner to Operate the motor
    digitalWrite(23, HIGH);  // to turn off the motor 
    digitalWrite(24, HIGH);  // Renter to turn on the motor

    // Ethernet.begin(mac, ip, subnet, gateway);  // initialize Ethernet device
    //       delay(2000);



 //   pinMode(A4, OUTPUT); // sets the digital pin as output
 //   digitalWrite(A4, LOW);
 //   delay(1000); //for ethernet chip to reset
 //   digitalWrite(A4, HIGH);
 //  delay(1000); //for ethernet chip to reset
 //   pinMode(A4, INPUT); // sets the digital pin input
 //   delay(1000); //for ethernet chip to reset

    delay(3000);   // trying to put delay before enabling
    do {
        Ethernet.begin(mac);   // keep loop asking for DHCP
        delay(3000);
    } while (Ethernet.begin(mac) == 0);

    delay(3000);   // trying to put delay before enabling
    //print out the IP address
   //  Serial.print("IP = ");
   //  Serial.println(Ethernet.localIP());

   DNSClient dns;
   dns.begin(Ethernet.dnsServerIP());
   dns.getHostByName("maker.ifttt.com",IFTTT);
    
    
    server.begin();           // start to listen for clients
    
    Operator = 6;
    SendMail();
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String MegaStart = "MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart" ;  
  String WriteSD = MegaStart  ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();

}
}

void loop()
{     DateTime now = rtc.now() ;
         Date_Time =  now.toString(buf1) ;
           Serial.println(Date_Time);
    UNO_State = digitalRead(31);
    LDR_Reading();
    EthernetClient client = server.available();  // try to get client
    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c = client.read(); // read 1 byte (character) from client
                // limit the size of the stored received HTTP request
                // buffer first part of HTTP request in HTTP_req array (string)
                // leave last element in array as 0 to null terminate string (REQ_BUF_SZ - 1)
                if (req_index < (REQ_BUF_SZ - 1)) {
                    HTTP_req[req_index] = c;          // save HTTP request character
                    req_index++;
                }
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                if (c == '\n' && currentLineIsBlank) {
                    // send a standard http response header
                    client.println("HTTP/1.1 200 OK");
                    // remainder of header follows below, depending on if
                    // web page or XML page is requested
                    // Ajax request - send XML file

                    if (StrContains(HTTP_req, "ajax")) {
                        // send rest of HTTP header
                        client.println("Content-Type: text/xml");
                        client.println("Connection: close");
                        client.println();
                        SetLEDs();
                        // send XML file containing input states
                        XML_response(client);
                    }
                    else if (StrContains(HTTP_req, "motor.jpg")) {

                        webFile = SD.open("motor.jpg");
                        cache_files(client);
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }
                    }
                    else if (StrContains(HTTP_req, "lamp.jpg")) {

                        webFile = SD.open("lamp.jpg");
                        cache_files(client);
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }
                    }
                    else if (StrContains(HTTP_req, "mega.jpg")) {

                        webFile = SD.open("mega.jpg");
                        cache_files(client);
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }
                    }
                    else {  // web page request
                    // send rest of HTTP header
                        client.println("Content-Type: text/html");
                        client.println("Connection: close");
                        client.println();
                        // send web page
                        webFile = SD.open("webpage4.htm");
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }

                    }
                    // display received HTTP request on serial port
                    //         Serial.print(HTTP_req);
                    // reset buffer index and all buffer elements to 0
                    req_index = 0;
                    StrClear(HTTP_req, REQ_BUF_SZ);
                    break;
                }
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                }
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        client.flush();
        delay(10);
        client.stop(); // close the connection
    } // end if (client)
    // check the Input values
    LDR_State_Checker();
    MotorInputState();
     Ethernet.maintain();
}


void LDR_Reading(void)
{

    //   pinMode(A0, INPUT);
      //      sensorReading = analogRead(A0);
    sensorReading = digitalRead(A0);
    //    Serial.println(sensorReading); 
 //   delay(1000);

}
void LDR_State_Checker(void)
{
    //    if ((sensorReading < 100) && (Interrupt == 0)) {
    if ((sensorReading == 0) && (Interrupt == 0)) {              //  ACTIVE LOW "DIGITAL INPUT" IN THIS CASE
        LED_state[0] = 1;
        LDR = 1;
        LightMail = 1;        //  used to trigger mail about light status
        digitalWrite(5, LOW);  // Makes the LED glow in Dark
        digitalWrite(30, HIGH);  // for testing the arduino using LEDs

        if (LightMail != lastState_Light)
        {
            //                 Serial.println();
            //       Serial.println(" triggered 1 Automatic Conrol  ");

            LightOperator = 0;
            Light();
            lastState_Light = LightMail;
        }
        //     delay(1000);
    }
    //    else if ((sensorReading > 300) && (Interrupt == 0)) {
    else if ((sensorReading == 1) && (Interrupt == 0)) {
        LDR = 0;
        LightMail = 0;
        LED_state[0] = 0;

        digitalWrite(5, HIGH);   //Turns the LED OFF in Light.
        digitalWrite(30, LOW);  // for testing the arduino using LEDs

        if (LightMail != lastState_Light)
        {
            //       Serial.println();
           //        Serial.println(" triggered 2 Automatic Conrol  ");
            LightOperator = 1;
            Light();
            lastState_Light = LightMail;
        }
        //    delay(1000);
    }
}

void MotorInputState(void)
{
    bool MotorActualState = digitalRead(25);
    bool MotorInputReadingOwner = digitalRead(26);
    bool MotorInputReadingRenter = digitalRead(27);
    if (MotorInputReadingOwner == 0 && MotorActualState == 0)
    {
        MotorMail = 1;
        LED_state[1] = 1;
        Motor_state = 1;

        if (MotorMail != lastState_Motor)
        {
            StartTimeOwner = millis();
            ext_Motor_interrupt_Owner = 1;
            Operator = 2;
            SendMail();
            lastState_Motor = MotorMail;

        }
    }
    else if (MotorActualState == 1 && (ext_Motor_interrupt_Owner == 1 || Motor_state == 1))    // 1 in ext_motor_interrupt doesnot mean 5 volt from outside it is internal variable
    {
        ext_Motor_interrupt_Owner = 0;
        MotorMail = 0;
        LED_state[1] = 0;
        Motor_state = 0;
        if (MotorMail != lastState_Motor)
        {
            Operator = 3;
            SendMail();
            lastState_Motor = MotorMail;
        }
    }
    else if (MotorInputReadingRenter == 0 && MotorActualState == 0)
    {
        ext_Motor_interrupt_Renter = 1;
        MotorMail = 1;
        Renter_state = 1;

        if (MotorMail != lastState_Motor)
        {
            StartTimeRenter = millis();
            Operator = 4;
            SendMail();
            lastState_Motor = MotorMail;

        }
    }
    else if (MotorActualState == 1 && (ext_Motor_interrupt_Renter == 1 || Renter_state == 1))
    {
        ext_Motor_interrupt_Renter = 0;
        MotorMail = 0;
        Renter_state = 0;
        if (MotorMail != lastState_Motor)
        {
            Operator = 5;
            SendMail();
            lastState_Motor = MotorMail;
        }
    }

}

// checks if received HTTP request is switching on/off LEDs
// also saves the state of the LEDs
void SetLEDs(void)
{
    //  Serial.println();
    //  Serial.println("LDR:");
    // Serial.println(LDR);  
        // LED 1 (pin 6)
    if (StrContains(HTTP_req, "LED1=1") && (LDR == 1)) {
        LED_state[0] = 1;  // save LED state
        digitalWrite(6, HIGH); // will make LDR continue working at night
        Interrupt = 0;
        LightMail = 1;
        if (LightMail != lastState_Light)
        {
            //       Serial.println();
            //       Serial.println(" triggered 1 case of LDR web control  ");
            LightOperator = 0;
            Light();
            lastState_Light = LightMail;
        }
    }
    else if (StrContains(HTTP_req, "LED1=1") && LDR == 0) {
        LED_state[0] = 1;  // save LED state
       // digitalWrite(8, LOW); // will force light to turn up at daylight by admin
        digitalWrite(7, LOW); // will force light to turn up at daylight by admin
        Interrupt = 1;
        LightMail = 1;
        StartTime = millis();
        if (LightMail != lastState_Light)
        {
            //        Serial.println();
           //         Serial.println(" triggered 2 case of LDR web control  ");
            LightOperator = 0;
            Light();
            lastState_Light = LightMail;
        }
    }
    else if (StrContains(HTTP_req, "LED1=0") && LDR == 1) {
        LED_state[0] = 0;  // save LED state
        digitalWrite(6, LOW); // will turn Off the light at night by admin
        Interrupt = 1;
        LightMail = 0;
        //  EndTime = millis();
        if (LightMail != lastState_Light)
        {
            //        Serial.println();
            //        Serial.println(" triggered 3 case of LDR web control  ");
            LightOperator = 1;
            Light();
            lastState_Light = LightMail;
        }
    }
    else if (StrContains(HTTP_req, "LED1=0") && LDR == 0) {
        LED_state[0] = 0;  // save LED state
   //     digitalWrite(8, HIGH);
        digitalWrite(7, HIGH);
        Interrupt = 0;
        LightMail = 0;
        //    EndTime = millis();

        if (LightMail != lastState_Light)
        {
            //       Serial.println();
            //       Serial.println(" triggered 4 case of LDR web control  ");
            LightOperator = 1;
            Light();
            lastState_Light = LightMail;
        }
    }
    // Motor Owner (pin 7)
    else if (StrContains(HTTP_req, "Owner=1") && Motor_state == 0) { // here to control web page to power on motor by contacting relay 3 sec then disconnect it
        LED_state[1] = 1;  // save LED state for revealing this motor state on the webpage
        Motor_state = 1;  // bec the next connection need the actual state of the motor in the program
        MotorMail = 1;
        ext_Motor_interrupt_Owner = 1;
        StartTimeOwner = millis();
        digitalWrite(22, LOW);
        delay(3000);
        digitalWrite(22, HIGH);
        if (MotorMail != lastState_Motor)
        {
            Operator = 2;
            SendMail();
            lastState_Motor = MotorMail;
        }

    }
    else if (StrContains(HTTP_req, "Owner=1") && Motor_state == 1) {
        //      LED_state[1] = 1;  // save LED state
        Motor_state = 1;
    }
    else if (StrContains(HTTP_req, "Owner=0") && Motor_state == 1) {
        LED_state[1] = 0;  // save LED state for revealing this motor state on the webpage
        Motor_state = 0; //  bec the next connection need the actual state of the motor in the program
        MotorMail = 0;
        ext_Motor_interrupt_Owner = 0;

        digitalWrite(23, LOW);
        delay(3000);
        digitalWrite(23, HIGH);
        if (MotorMail != lastState_Motor)
        {
            Operator = 3;
            SendMail();
            lastState_Motor = MotorMail;
        }

    }
    else if (StrContains(HTTP_req, "Owner=0") && Motor_state == 0) {
        //     LED_state[1] = 0;  // save LED state
        Motor_state = 0;
    }

    // Motor Renter (pin ----)
    else if (StrContains(HTTP_req, "Renter=1") && Renter_state == 0) { // here to control web page to power on motor by contacting relay 3 sec then disconnect it
        Renter_state = 1;  // save LED state for revealing this motor state on the webpage
        MotorMail = 1;
        ext_Motor_interrupt_Renter = 1;
        StartTimeRenter = millis();
        digitalWrite(24, LOW);
        delay(3000);
        digitalWrite(24, HIGH);
        if (MotorMail != lastState_Motor)
        {
            Operator = 4;
            SendMail();
            lastState_Motor = MotorMail;
        }


    }
    else if (StrContains(HTTP_req, "Renter=1") && Renter_state == 1) {
        Renter_state = 1;  // save LED state
    }
    else if (StrContains(HTTP_req, "Renter=0") && Renter_state == 1) {
        Renter_state = 0;  // save LED state for revealing this motor state on the webpage
        MotorMail = 0;
        ext_Motor_interrupt_Renter = 0;
        if (MotorMail != lastState_Motor)
        {
            Operator = 5;
            SendMail();
            lastState_Motor = MotorMail;
        }
        digitalWrite(23, LOW);
        delay(3000);
        digitalWrite(23, HIGH);
    }
    else if (StrContains(HTTP_req, "Renter=0") && Renter_state == 0) {
        Renter_state = 0;  // save LED state
    }
    else if (StrContains(HTTP_req, "RestartMega")) {
        resetFunc(); // call reset       
    }
    else if (StrContains(HTTP_req, "RestartUNO")) {
        digitalWrite(32, LOW);
        delay(2000);
        digitalWrite(32, HIGH);
    }
}

// send the XML file with analog values, switch status
//  and LED status
void XML_response(EthernetClient cl)
{
    //   Serial.println("LED_state[1]");
    //  Serial.println(LED_state[1]);
    cl.print("<?xml version=\"1.0\" ?>");
    cl.print("<inputs>");
    // checkbox LED states
    // LED1
    cl.print("<LED>");
    if (LED_state[0] == 1) {
        cl.print("checked");
    }
    else if (LED_state[0] == 0) {
        cl.print("unchecked");
    }
    cl.println("</LED> ");
    // button LED states
    // LED3
    cl.print("<Motor>");
    if (LED_state[1] == 1) {
        cl.print("on");
    }
    else if (LED_state[1] == 0) {
        cl.print("off");
    }
    cl.println("</Motor>");
    cl.print("<Renter>");
    if (Renter_state == 1) {
        cl.print("on");
    }
    else if (Renter_state == 0) {
        cl.print("off");
    }
    cl.println("</Renter>");
    cl.print("<UNO_State1>");
    if (UNO_State == 1) {
        cl.print("on");
    }
    else if (UNO_State == 0) {
        cl.print("off");
    }
    cl.println("</UNO_State1>");

    cl.print("<Mega_State1>");
    if (Mega_State == 1) {
        cl.print("on");
    }
    else if (Mega_State == 0) {
        cl.print("off");
    }
    cl.println("</Mega_State1>");
    cl.print("</inputs>");
}

// sets every element of str to 0 (clears array)
void StrClear(char* str, char length)
{
    for (int i = 0; i < length; i++) {
        str[i] = 0;
    }
}

// searches for the string sfind in the string str
// returns 1 if string found
// returns 0 if string not found
char StrContains(char* str, char* sfind)
{
    char found = 0;
    char index = 0;
    char len;

    len = strlen(str);

    if (strlen(sfind) > len) {
        return 0;
    }
    while (index < len) {
        if (str[index] == sfind[found]) {
            found++;
            if (strlen(sfind) == found) {
                return 1;
            }
        }
        else {
            found = 0;
        }
        index++;
    }

    return 0;
}
void cache_files(EthernetClient cf)
{    
    cf.println("Cache-Control: public,max-age=31536000,immutable");
    cf.println("Content-Type: image/jpeg");
    cf.println("Connection: close");
    cf.println();
}

void SendMail()
{
    uptime::calculateUptime();
    int h, m, s, ms;
    int TMT_m, TMT_h, TMT_over, TOT_m, TOT_h, TOT_over, TRT_m, TRT_h, TRT_over;
    unsigned long over;
    unsigned long day = (uptime::getDays());
    unsigned long hour = (uptime::getHours());
    unsigned long minute = (uptime::getMinutes());
    String days = String(day);
    String hours = String(hour);
    String minutes = String(minute);

    switch (Operator) {
    case 2:
    {
        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner%20:%20Motor%20ON%20&value2=%22%20Arduino_Up_Time%20:%20";
        String UpTime = days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";
        String end_of_request = "%20%22%20 HTTP/1.1";
        String GetRequest = url + UpTime + end_of_request;

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner%20:%20Motor%20ON%20";
        String end_of_request_excel = "%22%20 HTTP/1.1";
        String GetRequest_excel = url_excel + end_of_request_excel;

        client3.stop();
        if (client3.connect(IFTTT, 80)) {

            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
              delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                     }
                }
       //         Serial.println("ON_Owner_EXCEL_true_response: ");
      //          Serial.print(true_response);
     //           Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
           } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
            client3.stop();
             }
            delay(50);
            client3.stop();
           if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    }
                    else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("ON_Owner_Mail_true_response: ");
    //            Serial.print(true_response);
    //            Serial.println();
            }  
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
           } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
            client3.stop();
         }
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Owner" + ", " + "Motor ON " ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}
        break;
    }
    case 3:
    {
        //           Serial.println();
       //   Serial.println("Matched case 3 of Motor Owner");
       //  Serial.print("Motor Owner OFF mail.... ");
        //    SerialDebug1();
        EndTimeOwner = millis();
        timetakenOwner = EndTimeOwner - StartTimeOwner;
        //TotalOwnerTime = TotalOwnerTime + timetakenOwner ;
        //TotalMotorTime = TotalOwnerTime + TotalRenterTime ;

        h = int(timetakenOwner / 3600000);
        over = timetakenOwner % 3600000;
        m = int(over / 60000);
        over = over % 60000;
        s = int(over / 1000);
        ms = over % 1000;

        // TOT_h = int(timetakenOwner/3600000);
        TOT_h = h;
        TotalOwnerTime_Hours = TotalOwnerTime_Hours + TOT_h;
        TOT_over = timetakenOwner % 3600000;
        //  TOT_m= int(TOT_over/60000);
        TOT_m = m;
        TotalOwnerTime_Minutes = TotalOwnerTime_Minutes + TOT_m;

        while (TotalOwnerTime_Minutes >= 60)                                  // migirating min to hours 
        {
            TotalOwnerTime_Hours++;                                             // incrementing hrs vlaue by 1 
            TotalOwnerTime_Minutes = TotalOwnerTime_Minutes - 60;
        }

        TotalMotorTime_Hours = TotalMotorTime_Hours + TOT_h;                // for calculating the total motor time by hours
        TotalMotorTime_Minutes = TotalMotorTime_Minutes + TOT_m;          // for calculating the total motor time by mins

        while (TotalMotorTime_Minutes >= 60)                // migirating min to hours 
        {
            TotalMotorTime_Hours++;       // incrementing vlaue by 1 
            TotalMotorTime_Minutes = TotalMotorTime_Minutes - 60;
        }


        //  Serial.println();
        //  Serial.println();
         // Serial.print("Raw timetakenOwner: ");
         // Serial.println(timetakenOwner);
        //  Serial.print("timetaken : ");
        //  Serial.print(h,0);
         // Serial.print("h ");
         // Serial.print(m,0);
         // Serial.print("m ");
         // Serial.print(s,0);
         // Serial.print("s ");
         // Serial.print(ms,0);
         // Serial.println("ms");
         // Serial.println(); 
        String hh = String(h);
        String mm = String(m);


        String TOT_h0 = String(TotalOwnerTime_Hours);
        String TOT_m0 = String(TotalOwnerTime_Minutes);

        String TMT_h0 = String(TotalMotorTime_Hours);
        String TMT_m0 = String(TotalMotorTime_Minutes);

        String Time = hh + "h" + "%20" + mm + "m" + "%20";
        String TotalOwnerHours = "Total%20Owner%20hours%20:" + TOT_h0 + "h" + "%20" + TOT_m0 + "m" + "%20";
        String TotalTime = "%20||%20Total%20Motor%20hours%20:" + TMT_h0 + "h" + "%20" + TMT_m0 + "m" + "%20||%20";

        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner%20:%20MoTor%20OFF%20%22%20||%20&value2=%22%20Owner-Motor-Time%20:%20";

        String UpTime = "%20Arduino_Up_Time%20:%20" + days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";  // arduino UpTime

        String API = url + Time + TotalOwnerHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner_MoTor%20:%20OFF%20%22%20&value2=";
        String value3 = "%20&value3=";
        String API_excel = url_excel + Time + value3 + TotalOwnerHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        client3.stop();
        if (client3.connect(IFTTT, 80)) {
            //       Serial.print("connected to ");
            //       Serial.println(client3.remoteIP());
                   // Make a HTTP request:


            while(true_response == 0 && trial <= 10)
            {
                client3.println(API);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("Off_Owner_Mail_true_response: ");
    //            Serial.print(true_response);
    //            Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
            } else if (!client3.connected()) {
            //  Serial.println();
           //   Serial.println("disconnecting.");
            client3.stop();
              }

            delay(50);
            client3.stop();
          if (client3.connect(IFTTT, 80)) {
              while(true_response == 0 && trial <= 10)
              {
                client3.println(API_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                     }
                }
       //         Serial.println("Off_Owner_Excel_true_response: ");
     //           Serial.print(true_response);
       //         Serial.println();

              }
              trial = 0;
              true_response = 0;
              StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client3.connected()) {
            //   Serial.println();
            //   Serial.println("disconnecting.");
            client3.stop();
        }

ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Owner" + ", " + "Motor OFF" + ", " + TOT_h0 + " " + TOT_m0 + ", " + TMT_h0 + "h" + " " + TMT_m0 + "m" ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}

        break;
    }
    case 4:
    {
        String UpTime = days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";
        String end_of_request = "%20%22%20 HTTP/1.1";
        // String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20||%20&value2=%22%20Arduino_Up_Time%20:%20";
        //   String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20";    -- 1 st try 
        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20&value2=%22%20Arduino_Up_Time%20:%20";  // 2 nd try
        String GetRequest = url + UpTime + end_of_request;

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20";
        String end_of_request_excel = "%20%22%20 HTTP/1.1";
        String GetRequest_excel = url_excel + end_of_request_excel;

        client3.stop();                            
       if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    }
                    else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("ON_Motor_Mail_true_response: ");
    //            Serial.print(true_response);
   //             Serial.println();
             }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
              } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
                     client3.stop();
               }

            delay(50);
            client3.stop();
          if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
    //            Serial.println("Off_Motor_Excel_true_response: ");
  //              Serial.print(true_response);
  //              Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
            } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
                 client3.stop();
               }
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Renter" + ", " + "Motor ON"  ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}

               
        break;
    }
    case 5:
    {
        //       Serial.println();
        //   Serial.println("Matched case 5 of Motor Renter");
       //  Serial.print("Motor Renter OFF mail.... ");
        //    SerialDebug1();

        EndTimeRenter = millis();
        timetakenRenter = EndTimeRenter - StartTimeRenter;

        h = int(timetakenRenter / 3600000);
        over = timetakenRenter % 3600000;
        m = int(over / 60000);
        over = over % 60000;
        s = int(over / 1000);
        ms = over % 1000;

        //  TRT_h = int(timetakenRenter/3600000);
        TRT_h = h;
        TotalRenterTime_Hours = TotalRenterTime_Hours + TRT_h;
        TRT_over = timetakenRenter % 3600000;
        //  TRT_m= int(TRT_over/60000);
        TRT_m = m;
        TotalRenterTime_Minutes = TotalRenterTime_Minutes + TRT_m;

        while (TotalRenterTime_Minutes >= 60)                                  // migirating min to hours 
        {
            TotalRenterTime_Hours++;                                             // incrementing hrs vlaue by 1 
            TotalRenterTime_Minutes = TotalRenterTime_Minutes - 60;
        }


        TotalMotorTime_Hours = TotalMotorTime_Hours + TRT_h;                // for calculating the total motor time by hours
        TotalMotorTime_Minutes = TotalMotorTime_Minutes + TRT_m;          // for calculating the total motor time by mins

        while (TotalMotorTime_Minutes >= 60)                // migirating min to hours 
        {
            TotalMotorTime_Hours++;       // incrementing vlaue by 1 
            TotalMotorTime_Minutes = TotalMotorTime_Minutes - 60;
        }



        //   Serial.println();
        //   Serial.println();
         //  Serial.print("Raw timetakenRenter: ");
         //  Serial.println(timetakenRenter);
         //  Serial.print("timetaken : ");
          // Serial.print(h,0);
          // Serial.print("h ");
         //  Serial.print(m,0);
         //  Serial.print("m ");
         //  Serial.print(s,0);
         //  Serial.print("s ");
         //  Serial.print(ms,0);
          // Serial.println("ms");
          // Serial.println(); 
        String hh = String(h);
        String mm = String(m);

        String TRT_h0 = String(TotalRenterTime_Hours);
        String TRT_m0 = String(TotalRenterTime_Minutes);


        String TMT_h0 = String(TotalMotorTime_Hours);
        String TMT_m0 = String(TotalMotorTime_Minutes);

        String Time = hh + "h" + "%20" + mm + "m" + "%20";
        String TotalRenterHours = "Total%20Renter%20hours%20:" + TRT_h0 + "h" + "%20" + TRT_m0 + "m" + "%20";
        String TotalTime = "Total%20Motor%20hours%20:" + TMT_h0 + "h" + "%20" + TMT_m0 + "m" + "%20";

        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20MoTor%20OFF%20%22%20||%20&value2=%22%20Renter-Motor-Time%20:%20";

        String UpTime = "%20||%20Arduino_Up_Time%20:%20" + days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";

        String API = url + Time + TotalRenterHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20MoTor%20OFF%20%22%20&value2=";
        String value3 = "%20&value3=";
        String API_excel = url_excel + Time + value3 + TotalRenterHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        client3.stop();
          if (client3.connect(IFTTT, 80)) {
            //       Serial.print("connected to ");
           //          Serial.println(client3.remoteIP());
                   // Make a HTTP request:


            //           Serial.println();
            //           Serial.println("Renter TIME in GET");
             //          Serial.println(Time);                
            while(true_response == 0 && trial <= 10)
            {
                client3.println(API);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    }
                    else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("SendingMotortMail_true_response: ");
    //            Serial.print(true_response);
  //              Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client3.connected()) {
            //   Serial.println();
             //  Serial.println("disconnecting.");
            client3.stop();
             }

            delay(50);
            client3.stop();
          if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(API_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
    //            Serial.println("OFF_MotorExcel_true_response: ");
   //             Serial.print(true_response);
   //             Serial.println();

            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client3.connected()) {
            //   Serial.println();
             //  Serial.println("disconnecting.");
            client3.stop();
        }
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Renter" + ", " + "Motor OFF" + ", " + TRT_h0 + " " + TRT_m0 + ", " + TMT_h0 + "h" + " " + TMT_m0 + "m" ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
  }
        
        break;
    }

    case 6:
    {   client3.stop();
      if (client3.connect(IFTTT, 80)) {
        String Mega = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Arduino_Mega%20:%20%22%20&value2=START";
        String MegaStart = Mega + "%20%22%20 HTTP/1.1";
          while(true_response == 0 && trial <= 10)
         {
            client3.println(MegaStart);
            client3.println("Host: maker.ifttt.com");
            client3.println("Connection: close");
            client3.println();
                delay(500);
            if (client3.available())
            {
                client3.read(HTTP_response, 15);

                if (StrContains(HTTP_response, "200 OK"))
                {
                    true_response = 1;
                } else {
                    true_response = 0;
                    trial++;
                }
            }
  //          Serial.println("MegaStart_true_response: ");
    //        Serial.print(true_response);
 //           Serial.println();
           }
          trial = 0;
          true_response = 0;
          StrClear(HTTP_response, RESPONSE_BUF_SZ);
       } else if (!client3.connected()) {
          //  Serial.println();
         //   Serial.println("disconnecting.");
          client3.stop();
        }

    break;
         }
     }
}
//  void SerialDebug1()
// {
//    Serial.println();
 //   Serial.print("connecting to ");
 //   Serial.print();
 //   Serial.println("...");
//    }

void Light()
{
    uptime::calculateUptime();
    int h, m, s, ms;
    unsigned long over;
    unsigned long day = (uptime::getDays());
    unsigned long hour = (uptime::getHours());
    unsigned long minute = (uptime::getMinutes());
    String days = String(day);
    String hours = String(hour);
    String minutes = String(minute);

    switch (LightOperator) {
    case 0:
    {
        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20ON%20&value2=%22%20Arduino_Up_Time%20:%20";
        String UpTime = days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";
        String end_of_request = "%22%20 HTTP/1.1";
        String GetRequest = url + UpTime + end_of_request;

        String url_light = "GET /trigger/light/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20ON%20&value3=%22%20Arduino_Up_Time%20:%20";
        String end_of_request_light = "%22%20 HTTP/1.1";
        String GetRequest_light = url_light + UpTime + end_of_request_light;

        client2.stop();
        if (client2.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client2.println(GetRequest);
                client2.println("Host: maker.ifttt.com");
                client2.println("Connection: close");
                client2.println();
                delay(500);
                if (client2.available())
                {
                    client2.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }

            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client2.connected()) {
            //  Serial.println();
           //   Serial.println("disconnecting.");
            client2.stop();
        }
            
            delay(50);
            client2.stop();
         if (client2.connect(IFTTT, 80)) {           
            while(true_response == 0 && trial <= 10)
            {
                client2.println(GetRequest_light);
                client2.println("Host: maker.ifttt.com");
                client2.println("Connection: close");
                client2.println();
                delay(500);
                if (client2.available())
                {
                    client2.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }

            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
         } else if (!client2.connected()) {
            //   Serial.println();
           //    Serial.println("disconnecting.");
            client2.stop();
             }
        
    //        DateTimeFn();             
            ExcelSD = SD.open("light.csv", FILE_WRITE);   // if the file opened okay, write to it:
            if (ExcelSD) {
               String WriteSD = Date_Time + ", " + "Light-ON" ;
               ExcelSD.println(WriteSD);
               // close the file:
                ExcelSD.close();
             }
             
        break;
    }

    case 1:
    {
        //    Serial.println();
       //   Serial.println("Matched case 1 of light");
      //  Serial.print("Light mail.... ");
      //     SerialDebug1();
        EndTime = millis();
        timetaken = EndTime - StartTime;
        h = int(timetaken / 3600000);
        over = timetaken % 3600000;
        m = int(over / 60000);
        over = over % 60000;
        s = int(over / 1000);
        ms = over % 1000;

        String hh = String(h);
        String mm = String(m);
        String Time = hh + "h" + "%20" + mm + "m" + "%20";


        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20OFF%20%22%20||%20&value2=%22%20Light-Work-Time%20:%20";
        String UpTime = "%20||%20Andriod_Up_Time%20:%20" + days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";

        String API = url + Time + UpTime + "%20%22%20 HTTP/1.1";

        String url_light = "GET /trigger/light/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20OFF%20%22%20&value2=%22%20Light-Work-Time%20:%20";
        String API_light = url_light + Time + "%20%22%20 HTTP/1.1";

        client2.stop();
    if (client2.connect(IFTTT, 80)) {
        while(true_response == 0 && trial <= 10)
        {
            client2.println(API);
            client2.println("Host: maker.ifttt.com");
            client2.println("Connection: close");
            client2.println();
            delay(500);
            if (client2.available())
            {
                client2.read(HTTP_response, 15);

                if (StrContains(HTTP_response, "200 OK"))
                {
                    true_response = 1;
                } else {
                    true_response = 0;
                    trial++;
                }
            }

        }
        trial = 0;
        true_response = 0;
        StrClear(HTTP_response, RESPONSE_BUF_SZ);

      } else if (!client2.connected()) {
        //  Serial.println();
       //   Serial.println("disconnecting.");
        client2.stop();
       }
            delay(50);
            client2.stop();
           if (client2.connect(IFTTT, 80)) {
               while(true_response == 0 && trial <= 10)
              {
                client2.println(API_light);
                client2.println("Host: maker.ifttt.com");
                client2.println("Connection: close");
                client2.println();
               delay(500);
                 if (client2.available())
                 {
                    client2.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                         }
                 }
                }
                trial = 0;
                true_response = 0;
                StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client2.connected()) {
            //  Serial.println();
           //   Serial.println("disconnecting.");
            client2.stop();
        }
       // DateTimeFn();
      ExcelSD = SD.open("light.csv", FILE_WRITE);   // if the file opened okay, write to it:
      if (ExcelSD) {
       String WriteSD = Date_Time + ", " + "Light-OFF" + ", " + hh + ", " + mm ;
       ExcelSD.println(WriteSD);
       // close the file:
        ExcelSD.close();
        }  
        
        break;
    }
    }
}

void DateTimeFn()
{

  // Date_Time =  now.toString(buf1) ;
 //          Serial.println(Date_Time);
     }


If you are connected to the Internet, why don't you get the time from an NTP server?

Something like https://www.arduino.cc/en/Tutorial/LibraryExamples/UdpNtpClient

i afraid of losing internet connectivity so i lose all event logs not only the date and time,,
Using the SDcard and RTC module gurantee that logs are stored and with all date and time
as project will be placed in farm which is bit far from city

OK fair enough. You could use millis() to keep a rough track of time between Internet connections?

Otherwise can you post a schematic of how the RTC is connected to the Arduino. Have you tried the RTC with a simple sketch to confirm it's working as expected?

it is working perfectly with just simple code and getting plenty of serial output

image

Can you post the code that works.

// things to check SD card initialization  if failed power should be diconnected and connected 

//  there should be motor interrupt so that only the one who operated the motor is able to turn it off ... this is done 
// Pull UP resistor for inputs or 10k resistor connected to the groud  ... this is done 


#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include "uptime.h"
#include <Dns.h>

// size of buffer used to capture HTTP requests
#define REQ_BUF_SZ   60
#define RESPONSE_BUF_SZ   15             // the byte size for HTTP/1.1 200 OK 

int trial = 0;
bool true_response = 0;
char HTTP_response[RESPONSE_BUF_SZ];   // buffered HTTP request stored as null terminated string
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// IPAddress ip(192, 168, 0, 10); // IP address, may need to change depending on network
//IPAddress ip(10, 0, 0, 10);

// use the numeric IP instead of the name for the server:
// IPAddress IFTTT(34, 236, 248, 94);  // numeric IP for Google (no DNS)
IPAddress IFTTT ;
// char IFTTT[] = "maker.ifttt.com";    // name address for Google (using DNS)


EthernetServer server(80);  // create a server at port 80
EthernetClient client2;
EthernetClient client3;

unsigned long StartTime, StartTimeOwner, StartTimeRenter, EndTime, EndTimeOwner, EndTimeRenter, timetaken, timetakenOwner, timetakenRenter;
unsigned long TotalOwnerTime_Hours, TotalOwnerTime_Minutes, TotalRenterTime_Hours, TotalRenterTime_Minutes, TotalMotorTime_Hours, TotalMotorTime_Minutes;

File webFile;               // the web page file on the SD card
char HTTP_req[REQ_BUF_SZ] = { 0 }; // buffered HTTP request stored as null terminated string
char req_index = 0;              // index into HTTP_req buffer
bool LED_state[2] = { 0 }; // stores the states of the LEDs
int sensorReading = 0;
bool LDR = 0;
bool Interrupt = 0;
bool Motor_state = 0;
bool Renter_state = 0;
bool Mega_State = 1;
bool UNO_State = 0;   // state off for the arduino UNO

// the following diffrentiators are not required internally as only i need to know who turned off the motor externally 
// but in the webpage we are already differentiating who turned the motor on/off
bool ext_Motor_interrupt_Owner = 0;    // this is used for differentiating between who turned off the motor
bool ext_Motor_interrupt_Renter = 0;    // this is used for differentiating between who turned off the motor



//  Mail requirements
int Operator = 0;
int LightOperator = 0;
bool MotorMail = 0;
bool LightMail = 0;
bool lastState_Motor = 0;
bool lastState_Light = 0;

// in switch state 
//  case 0   light off
//  case 1   light ON 
//  case 2   MotorOwnerON
//  case 3   MotorOwnerOFF
//  case 4   MotorRenterON 
//  case 5   MotorRenterOFF


String Date_Time = "" ;
File ExcelSD;

/* ============= Reset-Function ============== */
void(*resetFunc) (void) = 0;   //declare reset function at address 0

void setup()
{
   //    Serial.begin(9600);       // for debugging
     // disable Ethernet chip
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);
    pinMode(53, OUTPUT);


    delay(2000);
    SD.begin(4);  // initializing SD card for usage
    delay(2000);

    //  initialize SD card
 //       Serial.println("Initializing SD card...");
 //       if (!SD.begin(4)) {
 //          Serial.println("ERROR - SD card initialization failed!");
 //         return;    // init failed
 //      }
 //      Serial.println("SUCCESS - SD card initialized.");
        // check for index.htm file
 //       if (!SD.exists("webpage.htm")) {
 //           Serial.println("ERROR - Can't find index.htm file!");
 //           return;  // can't find index file
   //    }
 //       Serial.println("SUCCESS - Found index.htm file.");

     // Inputs from motor Owner or Renter state

    pinMode(22, OUTPUT);  // Owner to Operate the motor                         Relay
    pinMode(23, OUTPUT);  // to turn off the motor ......                       Relay 
    pinMode(24, OUTPUT);  // Renter to turn on the motor                        Relay 

    pinMode(25, INPUT_PULLUP);  // for actual state of motor    motor is UP or down         220v Relay
    pinMode(26, INPUT_PULLUP);  // for Owner as operator        if Owner key is closed      220v Relay 
    pinMode(27, INPUT_PULLUP);  // for Renter as operator        if Renter key is closed    220v Relay   

    pinMode(32, OUTPUT); //     for resetting the UNO


//    pinMode(A0, INPUT);
    pinMode(A0, INPUT_PULLUP);

    pinMode(5, OUTPUT);  // Normal LDR relay                                 control normal automatic operation  Relay 
    pinMode(6, OUTPUT);  // to force the light off at night                                                      Relay 
    pinMode(7, OUTPUT);  // used to force light on in the morning                                                Relay 


    pinMode(30, OUTPUT); // LED Testing
    pinMode(31, INPUT); // Arduino UNO Input  
    digitalWrite(32, HIGH);  // for UNO Reset 


    digitalWrite(5, HIGH);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);

    digitalWrite(22, HIGH); // Owner to Operate the motor
    digitalWrite(23, HIGH);  // to turn off the motor 
    digitalWrite(24, HIGH);  // Renter to turn on the motor

    // Ethernet.begin(mac, ip, subnet, gateway);  // initialize Ethernet device
    //       delay(2000);



 //   pinMode(A4, OUTPUT); // sets the digital pin as output
 //   digitalWrite(A4, LOW);
 //   delay(1000); //for ethernet chip to reset
 //   digitalWrite(A4, HIGH);
 //  delay(1000); //for ethernet chip to reset
 //   pinMode(A4, INPUT); // sets the digital pin input
 //   delay(1000); //for ethernet chip to reset

    delay(3000);   // trying to put delay before enabling
    do {
        Ethernet.begin(mac);   // keep loop asking for DHCP
        delay(3000);
    } while (Ethernet.begin(mac) == 0);

    delay(3000);   // trying to put delay before enabling
    //print out the IP address
   //  Serial.print("IP = ");
   //  Serial.println(Ethernet.localIP());

   DNSClient dns;
   dns.begin(Ethernet.dnsServerIP());
   dns.getHostByName("maker.ifttt.com",IFTTT);
    
    
    server.begin();           // start to listen for clients
    
    Operator = 6;
    SendMail();
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String MegaStart = "MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart, MegaStart" ;  
  String WriteSD = MegaStart  ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}
}

void loop()
{
    UNO_State = digitalRead(31);
    LDR_Reading();
    EthernetClient client = server.available();  // try to get client
    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c = client.read(); // read 1 byte (character) from client
                // limit the size of the stored received HTTP request
                // buffer first part of HTTP request in HTTP_req array (string)
                // leave last element in array as 0 to null terminate string (REQ_BUF_SZ - 1)
                if (req_index < (REQ_BUF_SZ - 1)) {
                    HTTP_req[req_index] = c;          // save HTTP request character
                    req_index++;
                }
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                if (c == '\n' && currentLineIsBlank) {
                    // send a standard http response header
                    client.println("HTTP/1.1 200 OK");
                    // remainder of header follows below, depending on if
                    // web page or XML page is requested
                    // Ajax request - send XML file

                    if (StrContains(HTTP_req, "ajax")) {
                        // send rest of HTTP header
                        client.println("Content-Type: text/xml");
                        client.println("Connection: close");
                        client.println();
                        SetLEDs();
                        // send XML file containing input states
                        XML_response(client);
                    }
                    else if (StrContains(HTTP_req, "motor.jpg")) {

                        webFile = SD.open("motor.jpg");
                        cache_files(client);
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }
                    }
                    else if (StrContains(HTTP_req, "lamp.jpg")) {

                        webFile = SD.open("lamp.jpg");
                        cache_files(client);
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }
                    }
                    else if (StrContains(HTTP_req, "mega.jpg")) {

                        webFile = SD.open("mega.jpg");
                        cache_files(client);
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }
                    }
                    else {  // web page request
                    // send rest of HTTP header
                        client.println("Content-Type: text/html");
                        client.println("Connection: close");
                        client.println();
                        // send web page
                        webFile = SD.open("webpage4.htm");
                        if (webFile) {
                            while (webFile.available()) {
                                client.write(webFile.read()); // send web page to client
                            }
                            webFile.close();
                        }

                    }
                    // display received HTTP request on serial port
                    //         Serial.print(HTTP_req);
                    // reset buffer index and all buffer elements to 0
                    req_index = 0;
                    StrClear(HTTP_req, REQ_BUF_SZ);
                    break;
                }
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                }
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        client.flush();
        delay(10);
        client.stop(); // close the connection
    } // end if (client)
    // check the Input values
    LDR_State_Checker();
    MotorInputState();
     Ethernet.maintain();
}


void LDR_Reading(void)
{

    //   pinMode(A0, INPUT);
      //      sensorReading = analogRead(A0);
    sensorReading = digitalRead(A0);
    //    Serial.println(sensorReading); 
 //   delay(1000);

}
void LDR_State_Checker(void)
{
    //    if ((sensorReading < 100) && (Interrupt == 0)) {
    if ((sensorReading == 0) && (Interrupt == 0)) {              //  ACTIVE LOW "DIGITAL INPUT" IN THIS CASE
        LED_state[0] = 1;
        LDR = 1;
        LightMail = 1;        //  used to trigger mail about light status
        digitalWrite(5, LOW);  // Makes the LED glow in Dark
        digitalWrite(30, HIGH);  // for testing the arduino using LEDs

        if (LightMail != lastState_Light)
        {
            //                 Serial.println();
            //       Serial.println(" triggered 1 Automatic Conrol  ");

            LightOperator = 0;
            Light();
            lastState_Light = LightMail;
        }
        //     delay(1000);
    }
    //    else if ((sensorReading > 300) && (Interrupt == 0)) {
    else if ((sensorReading == 1) && (Interrupt == 0)) {
        LDR = 0;
        LightMail = 0;
        LED_state[0] = 0;

        digitalWrite(5, HIGH);   //Turns the LED OFF in Light.
        digitalWrite(30, LOW);  // for testing the arduino using LEDs

        if (LightMail != lastState_Light)
        {
            //       Serial.println();
           //        Serial.println(" triggered 2 Automatic Conrol  ");
            LightOperator = 1;
            Light();
            lastState_Light = LightMail;
        }
        //    delay(1000);
    }
}

void MotorInputState(void)
{
    bool MotorActualState = digitalRead(25);
    bool MotorInputReadingOwner = digitalRead(26);
    bool MotorInputReadingRenter = digitalRead(27);
    if (MotorInputReadingOwner == 0 && MotorActualState == 0)
    {
        MotorMail = 1;
        LED_state[1] = 1;
        Motor_state = 1;

        if (MotorMail != lastState_Motor)
        {
            StartTimeOwner = millis();
            ext_Motor_interrupt_Owner = 1;
            Operator = 2;
            SendMail();
            lastState_Motor = MotorMail;

        }
    }
    else if (MotorActualState == 1 && (ext_Motor_interrupt_Owner == 1 || Motor_state == 1))    // 1 in ext_motor_interrupt doesnot mean 5 volt from outside it is internal variable
    {
        ext_Motor_interrupt_Owner = 0;
        MotorMail = 0;
        LED_state[1] = 0;
        Motor_state = 0;
        if (MotorMail != lastState_Motor)
        {
            Operator = 3;
            SendMail();
            lastState_Motor = MotorMail;
        }
    }
    else if (MotorInputReadingRenter == 0 && MotorActualState == 0)
    {
        ext_Motor_interrupt_Renter = 1;
        MotorMail = 1;
        Renter_state = 1;

        if (MotorMail != lastState_Motor)
        {
            StartTimeRenter = millis();
            Operator = 4;
            SendMail();
            lastState_Motor = MotorMail;

        }
    }
    else if (MotorActualState == 1 && (ext_Motor_interrupt_Renter == 1 || Renter_state == 1))
    {
        ext_Motor_interrupt_Renter = 0;
        MotorMail = 0;
        Renter_state = 0;
        if (MotorMail != lastState_Motor)
        {
            Operator = 5;
            SendMail();
            lastState_Motor = MotorMail;
        }
    }

}

// checks if received HTTP request is switching on/off LEDs
// also saves the state of the LEDs
void SetLEDs(void)
{
    //  Serial.println();
    //  Serial.println("LDR:");
    // Serial.println(LDR);  
        // LED 1 (pin 6)
    if (StrContains(HTTP_req, "LED1=1") && (LDR == 1)) {
        LED_state[0] = 1;  // save LED state
        digitalWrite(6, HIGH); // will make LDR continue working at night
        Interrupt = 0;
        LightMail = 1;
        if (LightMail != lastState_Light)
        {
            //       Serial.println();
            //       Serial.println(" triggered 1 case of LDR web control  ");
            LightOperator = 0;
            Light();
            lastState_Light = LightMail;
        }
    }
    else if (StrContains(HTTP_req, "LED1=1") && LDR == 0) {
        LED_state[0] = 1;  // save LED state
       // digitalWrite(8, LOW); // will force light to turn up at daylight by admin
        digitalWrite(7, LOW); // will force light to turn up at daylight by admin
        Interrupt = 1;
        LightMail = 1;
        StartTime = millis();
        if (LightMail != lastState_Light)
        {
            //        Serial.println();
           //         Serial.println(" triggered 2 case of LDR web control  ");
            LightOperator = 0;
            Light();
            lastState_Light = LightMail;
        }
    }
    else if (StrContains(HTTP_req, "LED1=0") && LDR == 1) {
        LED_state[0] = 0;  // save LED state
        digitalWrite(6, LOW); // will turn Off the light at night by admin
        Interrupt = 1;
        LightMail = 0;
        //  EndTime = millis();
        if (LightMail != lastState_Light)
        {
            //        Serial.println();
            //        Serial.println(" triggered 3 case of LDR web control  ");
            LightOperator = 1;
            Light();
            lastState_Light = LightMail;
        }
    }
    else if (StrContains(HTTP_req, "LED1=0") && LDR == 0) {
        LED_state[0] = 0;  // save LED state
   //     digitalWrite(8, HIGH);
        digitalWrite(7, HIGH);
        Interrupt = 0;
        LightMail = 0;
        //    EndTime = millis();

        if (LightMail != lastState_Light)
        {
            //       Serial.println();
            //       Serial.println(" triggered 4 case of LDR web control  ");
            LightOperator = 1;
            Light();
            lastState_Light = LightMail;
        }
    }
    // Motor Owner (pin 7)
    else if (StrContains(HTTP_req, "Owner=1") && Motor_state == 0) { // here to control web page to power on motor by contacting relay 3 sec then disconnect it
        LED_state[1] = 1;  // save LED state for revealing this motor state on the webpage
        Motor_state = 1;  // bec the next connection need the actual state of the motor in the program
        MotorMail = 1;
        ext_Motor_interrupt_Owner = 1;
        StartTimeOwner = millis();
        digitalWrite(22, LOW);
        delay(3000);
        digitalWrite(22, HIGH);
        if (MotorMail != lastState_Motor)
        {
            Operator = 2;
            SendMail();
            lastState_Motor = MotorMail;
        }

    }
    else if (StrContains(HTTP_req, "Owner=1") && Motor_state == 1) {
        //      LED_state[1] = 1;  // save LED state
        Motor_state = 1;
    }
    else if (StrContains(HTTP_req, "Owner=0") && Motor_state == 1) {
        LED_state[1] = 0;  // save LED state for revealing this motor state on the webpage
        Motor_state = 0; //  bec the next connection need the actual state of the motor in the program
        MotorMail = 0;
        ext_Motor_interrupt_Owner = 0;

        digitalWrite(23, LOW);
        delay(3000);
        digitalWrite(23, HIGH);
        if (MotorMail != lastState_Motor)
        {
            Operator = 3;
            SendMail();
            lastState_Motor = MotorMail;
        }

    }
    else if (StrContains(HTTP_req, "Owner=0") && Motor_state == 0) {
        //     LED_state[1] = 0;  // save LED state
        Motor_state = 0;
    }

    // Motor Renter (pin ----)
    else if (StrContains(HTTP_req, "Renter=1") && Renter_state == 0) { // here to control web page to power on motor by contacting relay 3 sec then disconnect it
        Renter_state = 1;  // save LED state for revealing this motor state on the webpage
        MotorMail = 1;
        ext_Motor_interrupt_Renter = 1;
        StartTimeRenter = millis();
        digitalWrite(24, LOW);
        delay(3000);
        digitalWrite(24, HIGH);
        if (MotorMail != lastState_Motor)
        {
            Operator = 4;
            SendMail();
            lastState_Motor = MotorMail;
        }


    }
    else if (StrContains(HTTP_req, "Renter=1") && Renter_state == 1) {
        Renter_state = 1;  // save LED state
    }
    else if (StrContains(HTTP_req, "Renter=0") && Renter_state == 1) {
        Renter_state = 0;  // save LED state for revealing this motor state on the webpage
        MotorMail = 0;
        ext_Motor_interrupt_Renter = 0;
        if (MotorMail != lastState_Motor)
        {
            Operator = 5;
            SendMail();
            lastState_Motor = MotorMail;
        }
        digitalWrite(23, LOW);
        delay(3000);
        digitalWrite(23, HIGH);
    }
    else if (StrContains(HTTP_req, "Renter=0") && Renter_state == 0) {
        Renter_state = 0;  // save LED state
    }
    else if (StrContains(HTTP_req, "RestartMega")) {
        resetFunc(); // call reset       
    }
    else if (StrContains(HTTP_req, "RestartUNO")) {
        digitalWrite(32, LOW);
        delay(2000);
        digitalWrite(32, HIGH);
    }
}

// send the XML file with analog values, switch status
//  and LED status
void XML_response(EthernetClient cl)
{
    //   Serial.println("LED_state[1]");
    //  Serial.println(LED_state[1]);
    cl.print("<?xml version=\"1.0\" ?>");
    cl.print("<inputs>");
    // checkbox LED states
    // LED1
    cl.print("<LED>");
    if (LED_state[0] == 1) {
        cl.print("checked");
    }
    else if (LED_state[0] == 0) {
        cl.print("unchecked");
    }
    cl.println("</LED> ");
    // button LED states
    // LED3
    cl.print("<Motor>");
    if (LED_state[1] == 1) {
        cl.print("on");
    }
    else if (LED_state[1] == 0) {
        cl.print("off");
    }
    cl.println("</Motor>");
    cl.print("<Renter>");
    if (Renter_state == 1) {
        cl.print("on");
    }
    else if (Renter_state == 0) {
        cl.print("off");
    }
    cl.println("</Renter>");
    cl.print("<UNO_State1>");
    if (UNO_State == 1) {
        cl.print("on");
    }
    else if (UNO_State == 0) {
        cl.print("off");
    }
    cl.println("</UNO_State1>");

    cl.print("<Mega_State1>");
    if (Mega_State == 1) {
        cl.print("on");
    }
    else if (Mega_State == 0) {
        cl.print("off");
    }
    cl.println("</Mega_State1>");
    cl.print("</inputs>");
}

// sets every element of str to 0 (clears array)
void StrClear(char* str, char length)
{
    for (int i = 0; i < length; i++) {
        str[i] = 0;
    }
}

// searches for the string sfind in the string str
// returns 1 if string found
// returns 0 if string not found
char StrContains(char* str, char* sfind)
{
    char found = 0;
    char index = 0;
    char len;

    len = strlen(str);

    if (strlen(sfind) > len) {
        return 0;
    }
    while (index < len) {
        if (str[index] == sfind[found]) {
            found++;
            if (strlen(sfind) == found) {
                return 1;
            }
        }
        else {
            found = 0;
        }
        index++;
    }

    return 0;
}
void cache_files(EthernetClient cf)
{
    cf.println("Cache-Control: public,max-age=31536000,immutable");
    cf.println("Content-Type: image/jpeg");
    cf.println("Connection: close");
    cf.println();
}

void SendMail()
{
    uptime::calculateUptime();
    int h, m, s, ms;
    int TMT_m, TMT_h, TMT_over, TOT_m, TOT_h, TOT_over, TRT_m, TRT_h, TRT_over;
    unsigned long over;
    unsigned long day = (uptime::getDays());
    unsigned long hour = (uptime::getHours());
    unsigned long minute = (uptime::getMinutes());
    String days = String(day);
    String hours = String(hour);
    String minutes = String(minute);

    switch (Operator) {
    case 2:
    {
        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner%20:%20Motor%20ON%20&value2=%22%20Arduino_Up_Time%20:%20";
        String UpTime = days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";
        String end_of_request = "%20%22%20 HTTP/1.1";
        String GetRequest = url + UpTime + end_of_request;

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner%20:%20Motor%20ON%20";
        String end_of_request_excel = "%22%20 HTTP/1.1";
        String GetRequest_excel = url_excel + end_of_request_excel;

        client3.stop();
        if (client3.connect(IFTTT, 80)) {

            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
              delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                     }
                }
       //         Serial.println("ON_Owner_EXCEL_true_response: ");
      //          Serial.print(true_response);
     //           Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
           } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
            client3.stop();
             }
            delay(50);
            client3.stop();
           if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    }
                    else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("ON_Owner_Mail_true_response: ");
    //            Serial.print(true_response);
    //            Serial.println();
            }  
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
           } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
            client3.stop();
         }
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Owner" + ", " + "Motor ON " ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}
        break;
    }
    case 3:
    {
        //           Serial.println();
       //   Serial.println("Matched case 3 of Motor Owner");
       //  Serial.print("Motor Owner OFF mail.... ");
        //    SerialDebug1();
        EndTimeOwner = millis();
        timetakenOwner = EndTimeOwner - StartTimeOwner;
        //TotalOwnerTime = TotalOwnerTime + timetakenOwner ;
        //TotalMotorTime = TotalOwnerTime + TotalRenterTime ;

        h = int(timetakenOwner / 3600000);
        over = timetakenOwner % 3600000;
        m = int(over / 60000);
        over = over % 60000;
        s = int(over / 1000);
        ms = over % 1000;

        // TOT_h = int(timetakenOwner/3600000);
        TOT_h = h;
        TotalOwnerTime_Hours = TotalOwnerTime_Hours + TOT_h;
        TOT_over = timetakenOwner % 3600000;
        //  TOT_m= int(TOT_over/60000);
        TOT_m = m;
        TotalOwnerTime_Minutes = TotalOwnerTime_Minutes + TOT_m;

        while (TotalOwnerTime_Minutes >= 60)                                  // migirating min to hours 
        {
            TotalOwnerTime_Hours++;                                             // incrementing hrs vlaue by 1 
            TotalOwnerTime_Minutes = TotalOwnerTime_Minutes - 60;
        }

        TotalMotorTime_Hours = TotalMotorTime_Hours + TOT_h;                // for calculating the total motor time by hours
        TotalMotorTime_Minutes = TotalMotorTime_Minutes + TOT_m;          // for calculating the total motor time by mins

        while (TotalMotorTime_Minutes >= 60)                // migirating min to hours 
        {
            TotalMotorTime_Hours++;       // incrementing vlaue by 1 
            TotalMotorTime_Minutes = TotalMotorTime_Minutes - 60;
        }


        //  Serial.println();
        //  Serial.println();
         // Serial.print("Raw timetakenOwner: ");
         // Serial.println(timetakenOwner);
        //  Serial.print("timetaken : ");
        //  Serial.print(h,0);
         // Serial.print("h ");
         // Serial.print(m,0);
         // Serial.print("m ");
         // Serial.print(s,0);
         // Serial.print("s ");
         // Serial.print(ms,0);
         // Serial.println("ms");
         // Serial.println(); 
        String hh = String(h);
        String mm = String(m);


        String TOT_h0 = String(TotalOwnerTime_Hours);
        String TOT_m0 = String(TotalOwnerTime_Minutes);

        String TMT_h0 = String(TotalMotorTime_Hours);
        String TMT_m0 = String(TotalMotorTime_Minutes);

        String Time = hh + "h" + "%20" + mm + "m" + "%20";
        String TotalOwnerHours = "Total%20Owner%20hours%20:" + TOT_h0 + "h" + "%20" + TOT_m0 + "m" + "%20";
        String TotalTime = "%20||%20Total%20Motor%20hours%20:" + TMT_h0 + "h" + "%20" + TMT_m0 + "m" + "%20||%20";

        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner%20:%20MoTor%20OFF%20%22%20||%20&value2=%22%20Owner-Motor-Time%20:%20";

        String UpTime = "%20Arduino_Up_Time%20:%20" + days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";  // arduino UpTime

        String API = url + Time + TotalOwnerHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Owner_MoTor%20:%20OFF%20%22%20&value2=";
        String value3 = "%20&value3=";
        String API_excel = url_excel + Time + value3 + TotalOwnerHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        client3.stop();
        if (client3.connect(IFTTT, 80)) {
            //       Serial.print("connected to ");
            //       Serial.println(client3.remoteIP());
                   // Make a HTTP request:


            while(true_response == 0 && trial <= 10)
            {
                client3.println(API);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("Off_Owner_Mail_true_response: ");
    //            Serial.print(true_response);
    //            Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
            } else if (!client3.connected()) {
            //  Serial.println();
           //   Serial.println("disconnecting.");
            client3.stop();
              }

            delay(50);
            client3.stop();
          if (client3.connect(IFTTT, 80)) {
              while(true_response == 0 && trial <= 10)
              {
                client3.println(API_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                     }
                }
       //         Serial.println("Off_Owner_Excel_true_response: ");
     //           Serial.print(true_response);
       //         Serial.println();

              }
              trial = 0;
              true_response = 0;
              StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client3.connected()) {
            //   Serial.println();
            //   Serial.println("disconnecting.");
            client3.stop();
        }

ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Owner" + ", " + "Motor OFF" + ", " + TOT_h0 + " " + TOT_m0 + ", " + TMT_h0 + "h" + " " + TMT_m0 + "m" ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}

        break;
    }
    case 4:
    {
        String UpTime = days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";
        String end_of_request = "%20%22%20 HTTP/1.1";
        // String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20||%20&value2=%22%20Arduino_Up_Time%20:%20";
        //   String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20";    -- 1 st try 
        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20&value2=%22%20Arduino_Up_Time%20:%20";  // 2 nd try
        String GetRequest = url + UpTime + end_of_request;

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20Motor%20ON%20";
        String end_of_request_excel = "%20%22%20 HTTP/1.1";
        String GetRequest_excel = url_excel + end_of_request_excel;

        client3.stop();                            
       if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    }
                    else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("ON_Motor_Mail_true_response: ");
    //            Serial.print(true_response);
   //             Serial.println();
             }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
              } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
                     client3.stop();
               }

            delay(50);
            client3.stop();
          if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(GetRequest_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
    //            Serial.println("Off_Motor_Excel_true_response: ");
  //              Serial.print(true_response);
  //              Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
            } else if (!client3.connected()) {
            //    Serial.println();
            //    Serial.println("disconnecting.");
                 client3.stop();
               }
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Renter" + ", " + "Motor ON"  ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
}

               
        break;
    }
    case 5:
    {
        //       Serial.println();
        //   Serial.println("Matched case 5 of Motor Renter");
       //  Serial.print("Motor Renter OFF mail.... ");
        //    SerialDebug1();

        EndTimeRenter = millis();
        timetakenRenter = EndTimeRenter - StartTimeRenter;

        h = int(timetakenRenter / 3600000);
        over = timetakenRenter % 3600000;
        m = int(over / 60000);
        over = over % 60000;
        s = int(over / 1000);
        ms = over % 1000;

        //  TRT_h = int(timetakenRenter/3600000);
        TRT_h = h;
        TotalRenterTime_Hours = TotalRenterTime_Hours + TRT_h;
        TRT_over = timetakenRenter % 3600000;
        //  TRT_m= int(TRT_over/60000);
        TRT_m = m;
        TotalRenterTime_Minutes = TotalRenterTime_Minutes + TRT_m;

        while (TotalRenterTime_Minutes >= 60)                                  // migirating min to hours 
        {
            TotalRenterTime_Hours++;                                             // incrementing hrs vlaue by 1 
            TotalRenterTime_Minutes = TotalRenterTime_Minutes - 60;
        }


        TotalMotorTime_Hours = TotalMotorTime_Hours + TRT_h;                // for calculating the total motor time by hours
        TotalMotorTime_Minutes = TotalMotorTime_Minutes + TRT_m;          // for calculating the total motor time by mins

        while (TotalMotorTime_Minutes >= 60)                // migirating min to hours 
        {
            TotalMotorTime_Hours++;       // incrementing vlaue by 1 
            TotalMotorTime_Minutes = TotalMotorTime_Minutes - 60;
        }



        //   Serial.println();
        //   Serial.println();
         //  Serial.print("Raw timetakenRenter: ");
         //  Serial.println(timetakenRenter);
         //  Serial.print("timetaken : ");
          // Serial.print(h,0);
          // Serial.print("h ");
         //  Serial.print(m,0);
         //  Serial.print("m ");
         //  Serial.print(s,0);
         //  Serial.print("s ");
         //  Serial.print(ms,0);
          // Serial.println("ms");
          // Serial.println(); 
        String hh = String(h);
        String mm = String(m);

        String TRT_h0 = String(TotalRenterTime_Hours);
        String TRT_m0 = String(TotalRenterTime_Minutes);


        String TMT_h0 = String(TotalMotorTime_Hours);
        String TMT_m0 = String(TotalMotorTime_Minutes);

        String Time = hh + "h" + "%20" + mm + "m" + "%20";
        String TotalRenterHours = "Total%20Renter%20hours%20:" + TRT_h0 + "h" + "%20" + TRT_m0 + "m" + "%20";
        String TotalTime = "Total%20Motor%20hours%20:" + TMT_h0 + "h" + "%20" + TMT_m0 + "m" + "%20";

        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20MoTor%20OFF%20%22%20||%20&value2=%22%20Renter-Motor-Time%20:%20";

        String UpTime = "%20||%20Arduino_Up_Time%20:%20" + days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";

        String API = url + Time + TotalRenterHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        String url_excel = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Renter%20:%20MoTor%20OFF%20%22%20&value2=";
        String value3 = "%20&value3=";
        String API_excel = url_excel + Time + value3 + TotalRenterHours + TotalTime + UpTime + "%20%22%20 HTTP/1.1";

        client3.stop();
          if (client3.connect(IFTTT, 80)) {
            //       Serial.print("connected to ");
           //          Serial.println(client3.remoteIP());
                   // Make a HTTP request:


            //           Serial.println();
            //           Serial.println("Renter TIME in GET");
             //          Serial.println(Time);                
            while(true_response == 0 && trial <= 10)
            {
                client3.println(API);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    }
                    else {
                        true_response = 0;
                        trial++;
                    }
                }
      //          Serial.println("SendingMotortMail_true_response: ");
    //            Serial.print(true_response);
  //              Serial.println();
            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client3.connected()) {
            //   Serial.println();
             //  Serial.println("disconnecting.");
            client3.stop();
             }

            delay(50);
            client3.stop();
          if (client3.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client3.println(API_excel);
                client3.println("Host: maker.ifttt.com");
                client3.println("Connection: close");
                client3.println();
                delay(500);
                if (client3.available())
                {
                    client3.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
    //            Serial.println("OFF_MotorExcel_true_response: ");
   //             Serial.print(true_response);
   //             Serial.println();

            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client3.connected()) {
            //   Serial.println();
             //  Serial.println("disconnecting.");
            client3.stop();
        }
ExcelSD = SD.open("file.csv", FILE_WRITE);   // if the file opened okay, write to it:
if (ExcelSD) {
  String WriteSD = Date_Time + ", " + "Renter" + ", " + "Motor OFF" + ", " + TRT_h0 + " " + TRT_m0 + ", " + TMT_h0 + "h" + " " + TMT_m0 + "m" ;
  ExcelSD.println(WriteSD);
  // close the file:
  ExcelSD.close();
  }
        
        break;
    }

    case 6:
    {   client3.stop();
      if (client3.connect(IFTTT, 80)) {
        String Mega = "GET /trigger/MotorTime/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Arduino_Mega%20:%20%22%20&value2=START";
        String MegaStart = Mega + "%20%22%20 HTTP/1.1";
          while(true_response == 0 && trial <= 10)
         {
            client3.println(MegaStart);
            client3.println("Host: maker.ifttt.com");
            client3.println("Connection: close");
            client3.println();
                delay(500);
            if (client3.available())
            {
                client3.read(HTTP_response, 15);

                if (StrContains(HTTP_response, "200 OK"))
                {
                    true_response = 1;
                } else {
                    true_response = 0;
                    trial++;
                }
            }
  //          Serial.println("MegaStart_true_response: ");
    //        Serial.print(true_response);
 //           Serial.println();
           }
          trial = 0;
          true_response = 0;
          StrClear(HTTP_response, RESPONSE_BUF_SZ);
       } else if (!client3.connected()) {
          //  Serial.println();
         //   Serial.println("disconnecting.");
          client3.stop();
        }

    break;
         }
     }
}
//  void SerialDebug1()
// {
//    Serial.println();
 //   Serial.print("connecting to ");
 //   Serial.print();
 //   Serial.println("...");
//    }

void Light()
{
    uptime::calculateUptime();
    int h, m, s, ms;
    unsigned long over;
    unsigned long day = (uptime::getDays());
    unsigned long hour = (uptime::getHours());
    unsigned long minute = (uptime::getMinutes());
    String days = String(day);
    String hours = String(hour);
    String minutes = String(minute);

    switch (LightOperator) {
    case 0:
    {
        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20ON%20&value2=%22%20Arduino_Up_Time%20:%20";
        String UpTime = days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";
        String end_of_request = "%22%20 HTTP/1.1";
        String GetRequest = url + UpTime + end_of_request;

        String url_light = "GET /trigger/light/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20ON%20&value3=%22%20Arduino_Up_Time%20:%20";
        String end_of_request_light = "%22%20 HTTP/1.1";
        String GetRequest_light = url_light + UpTime + end_of_request_light;

        client2.stop();
        if (client2.connect(IFTTT, 80)) {
            while(true_response == 0 && trial <= 10)
            {
                client2.println(GetRequest);
                client2.println("Host: maker.ifttt.com");
                client2.println("Connection: close");
                client2.println();
                delay(500);
                if (client2.available())
                {
                    client2.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
    //            Serial.println("ON_LightExcel_true_response: ");
   //             Serial.print(true_response);
  //              Serial.println();

            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client2.connected()) {
            //  Serial.println();
           //   Serial.println("disconnecting.");
            client2.stop();
        }
            
            delay(50);
            client2.stop();
         if (client2.connect(IFTTT, 80)) {           
            while(true_response == 0 && trial <= 10)
            {
                client2.println(GetRequest_light);
                client2.println("Host: maker.ifttt.com");
                client2.println("Connection: close");
                client2.println();
                delay(500);
                if (client2.available())
                {
                    client2.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                    }
                }
     //           Serial.println("ON_LightMail_true_response: ");
  //              Serial.print(true_response);
    //            Serial.println();

            }
            trial = 0;
            true_response = 0;
            StrClear(HTTP_response, RESPONSE_BUF_SZ);
         } else if (!client2.connected()) {
            //   Serial.println();
           //    Serial.println("disconnecting.");
            client2.stop();
             }
            ExcelSD = SD.open("light.csv", FILE_WRITE);   // if the file opened okay, write to it:
            if (ExcelSD) {
               String WriteSD = Date_Time + ", " + "Light-ON" ;
               ExcelSD.println(WriteSD);
               // close the file:
                ExcelSD.close();
             }
             
        break;
    }

    case 1:
    {
        //    Serial.println();
       //   Serial.println("Matched case 1 of light");
      //  Serial.print("Light mail.... ");
      //     SerialDebug1();
        EndTime = millis();
        timetaken = EndTime - StartTime;
        h = int(timetaken / 3600000);
        over = timetaken % 3600000;
        m = int(over / 60000);
        over = over % 60000;
        s = int(over / 1000);
        ms = over % 1000;

        String hh = String(h);
        String mm = String(m);
        String Time = hh + "h" + "%20" + mm + "m" + "%20";


        String url = "GET /trigger/Farm/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20OFF%20%22%20||%20&value2=%22%20Light-Work-Time%20:%20";
        String UpTime = "%20||%20Andriod_Up_Time%20:%20" + days + "%20days,%20" + hours + "%20hours,%20" + minutes + "%20minutes%20";

        String API = url + Time + UpTime + "%20%22%20 HTTP/1.1";

        String url_light = "GET /trigger/light/with/key/kqotITniP1OKyJb3SHv44Ebj6XWr3_lILvz75wjMBIg?value1=%22%20Light%20:%20OFF%20%22%20&value2=%22%20Light-Work-Time%20:%20";
        String API_light = url_light + Time + "%20%22%20 HTTP/1.1";

        client2.stop();
    if (client2.connect(IFTTT, 80)) {
        while(true_response == 0 && trial <= 10)
        {
            client2.println(API);
            client2.println("Host: maker.ifttt.com");
            client2.println("Connection: close");
            client2.println();
            delay(500);
            if (client2.available())
            {
                client2.read(HTTP_response, 15);

                if (StrContains(HTTP_response, "200 OK"))
                {
                    true_response = 1;
                } else {
                    true_response = 0;
                    trial++;
                }
            }
    //        Serial.println("WritingLightExcel_true_response: ");
   //         Serial.print(true_response);
  //          Serial.println();

        }
        trial = 0;
        true_response = 0;
        StrClear(HTTP_response, RESPONSE_BUF_SZ);

      } else if (!client2.connected()) {
        //  Serial.println();
       //   Serial.println("disconnecting.");
        client2.stop();
       }
            delay(50);
            client2.stop();
           if (client2.connect(IFTTT, 80)) {
               while(true_response == 0 && trial <= 10)
              {
                client2.println(API_light);
                client2.println("Host: maker.ifttt.com");
                client2.println("Connection: close");
                client2.println();
               delay(500);
                 if (client2.available())
                 {
                    client2.read(HTTP_response, 15);

                    if (StrContains(HTTP_response, "200 OK"))
                    {
                        true_response = 1;
                    } else {
                        true_response = 0;
                        trial++;
                         }
                 }
    //            Serial.println("SendingLightMail_true_response: ");
   //             Serial.print(true_response);
   //             Serial.println();

                }
                trial = 0;
                true_response = 0;
                StrClear(HTTP_response, RESPONSE_BUF_SZ);
        } else if (!client2.connected()) {
            //  Serial.println();
           //   Serial.println("disconnecting.");
            client2.stop();
        }
      ExcelSD = SD.open("light.csv", FILE_WRITE);   // if the file opened okay, write to it:
      if (ExcelSD) {
       String WriteSD = Date_Time + ", " + "Light-OFF" + ", " + hh + ", " + mm ;
       ExcelSD.println(WriteSD);
       // close the file:
        ExcelSD.close();
        }  
        
        break;
    }
    }
}

No sorry... I meant can you post the RTC code that works.

#include <Wire.h>
#include <RTClib.h>

RTC_DS1307 rtc;


void setup () {
  Serial.begin(9600);

#ifndef ESP8266
  while (!Serial); // wait for serial port to connect. Needed for native USB
#endif

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    abort();
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
  //  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // When time needs to be re-set on a previously configured device, the
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop() {

   DateTime now = rtc.now();

  //buffer can be defined using following combinations:
  //hh - the hour with a leading zero (00 to 23)
  //mm - the minute with a leading zero (00 to 59)
  //ss - the whole second with a leading zero where applicable (00 to 59)
  //YYYY - the year as four digit number
  //YY - the year as two digit number (00-99)
  //MM - the month as number with a leading zero (01-12)
  //MMM - the abbreviated English month name ('Jan' to 'Dec')
  //DD - the day as number with a leading zero (01 to 31)
  //DDD - the abbreviated English day name ('Mon' to 'Sun')

   char buf1[] = "hh:mm";
   Serial.println(now.toString(buf1));

   char buf2[] = "YYMMDD-hh:mm:ss";
   Serial.println(now.toString(buf2));

   char buf3[] = "Today is DDD, MMM DD YYYY";
   Serial.println(now.toString(buf3));

   char buf4[] = "MM-DD-YYYY";
   Serial.println(now.toString(buf4));

   delay(1000);
}

Can't see where you are doing this in your original code?