Watchdog Timer not working when used with alarm.alarmRepeat events

I am trying to incorporate a watchdog timer to my code. Since my code is called off the time alarms library, can the watchdog timer work in this instance? For example, I have a piece of code that sends data to the internet every 6 minutes and once every 10,12, 24 hours or so the device hangs up and stops sending data. I cant explain a reason for this but can only think of a way of resetting the system when this happens. Typically, when this happens, all that’s needed is a push of the red button on the Arduino board and the system is back to normal. I am trying to integrate a watchdog timer that will reset my program if that alarm event did not occur. But since I have my event trigger every 6 minutes does this create some sort of dilemma considering the watchdog timer goes up to 8 seconds? I included the file, enabled the timer, and stated it for 8 seconds. I then put resets in a few places. The code is posted below. I am not getting any errors but it did hang up on me a few hours ago and the watchdog didn’t reset my system because I still didn’t get fresh cycles of data. I had to push the red button in order to get the data again. The code is posted below, thank you for the help.

#include "Wire.h"
#include "DS1307RTC.h"
#include "DHT.h"
#include "PID_v1.h"
#include "SPI.h"
#include "Time.h"
#include "TimeAlarms.h"
#include "WiFi.h"
#include "avr/wdt.h"


#define SensorPin 2      
#define Offset 0            
#define DHTPIN 2
#define DHTTYPE DHT11
#define RELAY_ON 1
#define RELAY_OFF 0
#define Relay1  9  
#define Relay2  8
#define Relay3  6
#define Relay4  5
#define Relay5  4  
#define Relay6  3
#define Relay7  38
#define Relay8  39  

char server[] = "xx";  //IPAddress server(); 
char ssid[] = "xx";     //SSID Home Network Name
char pass[] = "xx";  //Key or Network Password
int status = WL_IDLE_STATUS;               
int analogChannel0 = 0; //nsor
int analogChannel1 = 1; //SPARE 
int analogChannel2 = 2; //
int analogChannel3 = 3; //
int analogChannel4 = 4; //SPARE
int analogChannel5 = 5; //
int flag = 0;
double Setpoint, Input, Output;
double Kp=1, Ki=0.5, Kd=0.25;  //PID Tuning Parameters
unsigned long int avgValue;
WiFiClient client;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); //PID Tuning Parameters
DHT dht(DHTPIN, DHTTYPE);
AlarmID_t firstAlarm;
AlarmID_t secondAlarm;
AlarmID_t third;
AlarmID_t fourth;
AlarmID_t fifth;

void setup() {
     wdt_enable(WDTO_8S);
     wdt_reset();
     dht.begin();
     Wire.begin();
     //myPID.SetSampleTime(30000);
     digitalWrite(Relay1, RELAY_ON);
     digitalWrite(Relay2, RELAY_ON);
     digitalWrite(Relay3, RELAY_ON);
     digitalWrite(Relay4, RELAY_ON);  
     digitalWrite(Relay5, RELAY_ON);
     digitalWrite(Relay6, RELAY_ON);
     digitalWrite(Relay7, RELAY_ON);
     digitalWrite(Relay8, RELAY_ON);
     
     pinMode(Relay1, OUTPUT);   
     pinMode(Relay2, OUTPUT);  
     pinMode(Relay3, OUTPUT);  
     pinMode(Relay4, OUTPUT);    
     pinMode(Relay5, OUTPUT);   
     pinMode(Relay6, OUTPUT);  
     pinMode(Relay7, OUTPUT); 
     pinMode(Relay8, OUTPUT); 
      
     Serial.begin(9600); 

     setSyncProvider(RTC.get);
     
     firstAlarm = Alarm.alarmRepeat(23,28,00, MorningAlarm1); //2 ALARM MAX 
     secondAlarm =  Alarm.alarmRepeat(23,28,10, NightAlarm1);   //2 ALARM MAX
     third= Alarm.alarmRepeat(23,28,00, MorningAlarm2); //2 ALARM MAX
     fourth = Alarm.alarmRepeat(23,28,10, NightAlarm2);   //2 ALARM MAX
     fifth = Alarm.timerRepeat(360, SendData);   

     
     Input = analogRead(2);
     myPID.SetMode(AUTOMATIC);     
     Setpoint = 7.0;
  
     while ( status != WL_CONNECTED) { 
     status = WiFi.begin(ssid, pass);     
     }
     } //End of Void Setup

void loop() {     
            wdt_reset();
            Alarm.delay(0);           
            } //End of Loop   
            
                void SendData(){            
                if (client.connect(server, 80)) {
                wdt_reset();
                tmElements_t tm;
                client.print("GET xx");
                client.print("&Setpoint=");
                client.println(Setpoint);
                client.println(" HTTP/1.1");
                client.println("Host: xx ");
                client.println();
                } 
                }           
                void MorningAlarm1()
                {
                digitalWrite(Relay1, RELAY_OFF);//
                }
                
                void NightAlarm1()
                {
                digitalWrite(Relay1, RELAY_ON);//
                }
                
                void MorningAlarm2()
                {
                digitalWrite(Relay2, RELAY_OFF);//
                }
                
                void NightAlarm2()
                {
                digitalWrite(Relay2, RELAY_ON);//
                }                                                          
                void showAlarmTime(AlarmID_t id)
                {
                time_t alarmTime = Alarm.read(id); 
                if( alarmTime <= SECS_PER_DAY)  
            
                // client.print(id, DEC);  
                digitalClockDisplay(alarmTime);
                }
                void digitalClockDisplay(time_t t)
                {
                client.print(hour(t)); 
                if (minute(t)<10)
                client.print("0");
                client.print(minute(t));                
                if (second(t)<10)
                client.print("0");
                client.print(second(t));              
                }
                void print2digits(int number) {
                if (number >= 0 && number < 10) {
                client.write('0');
                }
                client.print(number);
                }
int analogChannel0 = 0; //nsor
int analogChannel1 = 1; //SPARE 
int analogChannel2 = 2; //
int analogChannel3 = 3; //
int analogChannel4 = 4; //SPARE
int analogChannel5 = 5; //

Arrays!

Given that you have an RTC, why do you need a library to hold your hand and tell you that it is time to do something?

AlarmID_t firstAlarm;
AlarmID_t secondAlarm;
AlarmID_t third;
AlarmID_t fourth;
AlarmID_t fifth;

Ah, such meaningful names.

     digitalWrite(Relay1, RELAY_ON);
     digitalWrite(Relay2, RELAY_ON);
     digitalWrite(Relay3, RELAY_ON);
     digitalWrite(Relay4, RELAY_ON);  
     digitalWrite(Relay5, RELAY_ON);
     digitalWrite(Relay6, RELAY_ON);
     digitalWrite(Relay7, RELAY_ON);
     digitalWrite(Relay8, RELAY_ON);
     
     pinMode(Relay1, OUTPUT);   
     pinMode(Relay2, OUTPUT);  
     pinMode(Relay3, OUTPUT);  
     pinMode(Relay4, OUTPUT);    
     pinMode(Relay5, OUTPUT);   
     pinMode(Relay6, OUTPUT);  
     pinMode(Relay7, OUTPUT); 
     pinMode(Relay8, OUTPUT);

Wouldn’t a 5 line for loop have been easier. Of course, you would have needed an array of pin numbers.

                client.print("GET xx");
                client.print("&Setpoint=");
                client.println(Setpoint);
                client.println(" HTTP/1.1");
                client.println("Host: xx ");

The HTTP part is part of the GET request; it does not go on a new line. All the string literals should be wrapped in the F() macro, to keep them out of SRAM.

client.print(F(“GET xx”));

Your indenting is atrocious Use Tools + Auto Format before you post code again.