No estoy seguro de la lógica de su diseño.
Si su reloj de alarma no tiene batería, obviamente no funcionará si no está conectado a un puerto USB (ya sea una fuente de alimentación USB o un puerto de computadora).
(Espero que en su diseño esté permitiendo el hecho de que la NodeMCU es solo de 3.3 V)
Así que, desenchufado, está APAGADO, enchufado ... ¿por qué el ESP8266 necesita dormir?
¿Qué ventaja obtiene si la MCU se pone en suspensión cuando hay energía disponible?
Para responder a su pregunta de manera más directa.
Si desea implementar uno de los modos de suspensión profunda, hay docenas de proyectos de código de ejemplo (Arduino y NodeMCU) en los que utiliza un temporizador interno (o una interrupción de cambio de pin) en la MCU para despertarse de la suspensión profunda después de un período de tiempo ( establecido por el MCU).
En su caso, simplemente puede hacer que la MCU encienda cada 55 segundos y comparar un valor de alarma guardado en la MCU con la hora RTC del DS3231. Si la hora no está cerca de la hora de la alarma (por más de 1 minuto), vuelva a activar el temporizador y vuelva a dormir.
Puede dejar el DS3231 programado en una zona horaria de referencia fija en modo de 24 horas y hacer todo lo demás en la MCU.
Esto evita tener que cambiar (agregar a) el RTCLib para permitir configurar los registros de alarma en el DS 3231 externo. Hay poca diferencia entre usar SQW para activar un cambio de Pin para activar la MCU y usar un temporizador de MCU para despertar el MCU.
Nota al margen: RTClib ya admite la configuración de SQW a 1 Hz, por lo que otra forma de implementar sería ingresar esto a un temporizador en la MCU y configurar un temporizador de activación / desactivación (número de segundos) como el alarma.
Si mantiene las alarmas en la MCU, tiene la posibilidad de crear alarmas de relación de zona horaria múltiples y complejas (12 / 24hr) y más fáciles (en términos de software) que si intenta programar solo las dos alarmas DS3231 registros
Si realmente desea escribir su propio código, use la biblioteca Wire directamente para tratar los registros de DS3231 y simplemente bifurque Adafruit libray , agregando su funcionalidad a la biblioteca.