PROBLEMA RTC DS3231

Hola Team,
Hoy me he percatado de un problema en mi proyecto "Programador de Riego", inicialmente todo bien básicamente muestra la fecha y hora actual en la pantalla LCD, sin embargo hoy me he percatado que el RTC esta enviando las horas mas de 24, es decir si son la 1:00 am me envía el numero 25 y así para adelante. No sé si es un error de la librería RTClib o del hardware, que creen que esté pasando.

El código es simple, hasta lo he enviado directamente al puerto serial y sale lo mismo.

void dashboard(){
DateTime fechaNow = rtc.now();
diaSemana = fechaNow.dayOfTheWeek(); dia=fechaNow.day(); mes=fechaNow.month(); anio=fechaNow.year()-2000; hora=fechaNow.hour(); minuto=fechaNow.minute();
tft.setTextColor(BLACK,WHITE);
display_day(164,96);
tft.setTextSize(5);
tft.setCursor(90, 140);
printDigits(dia);
tft.print('-');
printDigits(mes);
tft.print("-20");
tft.print(anio);
tft.setCursor(126, 210);
** if (hora==24) hora=0;**
** Serial.println(hora); **
** printDigits(hora);**
tft.print(':');
printDigits(minuto);
tft.print(':');
printDigits(fechaNow.second());
if (digitalRead(valvulas)==LOW) {
tft.setTextColor(BLACK,WHITE);
textSinClear(178, 272, "REGANDO!", 3, NULL);
}
else {
tft.setTextColor(WHITE,WHITE);
textSinClear(178, 272, "REGANDO!", 3, NULL);
}
subDashboard();
}

Adjunto evidencia directamente al puerto serial.

Moderador
Por favor edita tu post usando etiquetas de código.
Además de explicar el problema con esa rutina, sube todo el código, si supera 9k entonces lo subes como adjunto pero de lo contrario que se vea con etiquetas como te estoy reclamando.
Normas del foro

Primero que nada hacé lo que te pidió surbyte, por favor.

Según la documentación, hour() devuelve un número de 0 a 23. Rarísimo que te devuelva un 25.
¿Está bien configurado el RTC?

Saludos