Stazione meteo con ESP32 che si blocca dopo un po' di tempo

Quello che intendevo io è modificare la funzione getReadings() in void (quindi cancella il return alla fine) e poi semplicemente fai cosi:

  getReadings(); // Get readings modifica la String globale message in funzione dei valori letti dai sensori
  myBot.sendMessage(CHAT_IDD3, message, ""); 

Per quanto riguarda i delay() ce ne sono un paio anche nel loop.

Ci sono anche altre ottimizzazioni che si possono fare, ad esempio nella funzione getReading() a che servono queste copie di variabili?

  Mese = currentMonthName;
  Giorno = monthDay;
  Anno = currentYear;
  giornosettimana = weekDay;
  ora = currentHour;
  minuti = currentMinute;
  orario = formattedTime;

Usa direttamente le variabili currentMonthName, monthDay etc etc!!

In realtà anche queste variabili per come la vedo io sono ridonanti perché le puoi recuperare rapidamente con la libreria NTPClient solo quando servono realmente, ma questo è ancora passabile tutto sommato.
E' la necessità di fare la copia della copia della copia delle variabili che non mi spiego.