Control de Luces y temperatura terrario

Buenas noches a todos en mi pais, Gracias a todos los que me han ayudado en este tiempo y he logrado hacer varios proyectos, simples, pero que me han funcionado muy bien. Pero el dia requiero nuevamente de su ayuda y estoy desesperado porque como dice el dicho universitario en las previas "si algo te va muy bien es porque algo haz hecho mal" y asi estoy, tengo un terrario para mi proyecto universitario y tenia mi proyecto como un temporizador, pero el problema que tenia es que si se apagaba el arduino no regresaba al estado en el cual se apago. encontre este code
Aqui lo encotre
pero me dio muchos problemas error tras error pero vi el uso de los eventos, pero ahora al ajustarlo al mio

#include <Wire.h> 
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#include <TimeAlarms.h>
#define DS3231_I2C_ADDRESS 0x68
RTC_DS3231 RTC;
LiquidCrystal_I2C lcd(0x27,20,4);
int hora=00;
int minutos=00;
int segundos=00;
int horn0 = 6;
int horn1 = 6;
int luz0 = 5;
int luz1 = 5;



void setup () 
 {
 //Inicio el puerto serie, wire y el modulo RTC
   Serial.begin(115200);
   Wire.begin();
   RTC.begin();
   //
   //RTC.adjust(DateTime(__DATE__, __TIME__));
       
 lcd.init();
 lcd.backlight();
 lcd.setCursor(3,0);
 lcd.print("Universidad");
 lcd.setCursor(4,1);
 lcd.print("Uniagraria");
 lcd.setCursor(4,2);
 lcd.print("Facultad");
 lcd.setCursor(3,3);
 lcd.print("Veterinaria");
 delay(10000);
 lcd.clear();
 pinMode(luz1, OUTPUT);
 digitalWrite (luz1, HIGH);
 pinMode(luz0, OUTPUT);
 digitalWrite (luz0, LOW);
 pinMode(horn1, OUTPUT);
 digitalWrite (horn1, HIGH);
  pinMode(horn0, OUTPUT);
 digitalWrite (horn0, LOW);
     
 Alarm.alarmRepeat(8, 30, 0, luz1);  // (enciende luz)
 Alarm.alarmRepeat(15, 30, 0, luz0);  //  (apaga luz)
 Alarm.alarmRepeat(22, 30, 0, horn1);  // (enciende calentador)
 Alarm.alarmRepeat(5, 30, 0, horn0);  // (apaga calentador)
 }


void loop () 
{


//___________________________________

   DateTime now = RTC.now();
 hora=(now.hour(),DEC);
 minutos=(now.minute(),DEC);
 segundos=(now.second(),DEC);
   //Imprimimos el dia
   Serial.print(now.day(), DEC);
   Serial.print('/');
   //Imprimimos el mes
   Serial.print(now.month(), DEC);
   Serial.print('/');
   //Imprimimos el año
   Serial.print(now.year(), DEC);
   Serial.print(' ');
   //Imprimimos la hora
   Serial.print(now.hour(), DEC);
   Serial.print(':');
   //Imprimimos los minutos
   Serial.print(now.minute(), DEC);
   Serial.print(':');
   //Imprimimos los segundos
   Serial.print(now.second(), DEC);
   Serial.println();
  
 lcd.clear();   
 lcd.setCursor(6,1);
 lcd.print(now.hour(), DEC);
 lcd.setCursor(8,1);
 lcd.print(":");
 lcd.setCursor(9,1);
 lcd.print(now.minute(), DEC);
 lcd.setCursor(11,1);
 lcd.print(":");
 lcd.setCursor(12,1);
 lcd.print(now.second(), DEC);
 lcd.setCursor(5,0);
 lcd.print(now.day(), DEC);
 lcd.setCursor(7,0);
 lcd.print("/");
 lcd.setCursor(8,0);
 lcd.print(now.month(), DEC);
 lcd.setCursor(10,0);
 lcd.print("/");
 lcd.setCursor(11,0);
 lcd.print(now.year(), DEC);
 }

void luz1 ();
{
lcd.clear();
 lcd.setCursor(2,0);
 lcd.print("luces ON");
 digitalWrite(luz1,HIGH);
 }
void luz0 ();
{
 lcd.clear();
 lcd.setCursor(2,0);
 lcd.print("luces OFF");
 digitalWrite(luz0,LOW);
 }

Despues de depurarlo de errores y mas errores, de este ultimo no fui capaz y buscando en internet la mala suerte es como si a mi entre millones de usarios que tiene arduino fuera a mi el unico que me pasa. en la parte de los VOID me sale este error.

exit status 1
'void luz1()' redeclared as different kind of symbol

lo que he visto es que tengo declaraciones repetidas pero.... WDF!!! no se donde hay declaraciones repetidas...

Ayuda por favor. :sob: :sob: :sob:

**Primero que si ya has recibido ayuda en este foro, deberías saber que esta no es la sección para este tipo de consulta. Debe ser Software a donde lo moveré en canto termine de escribir esto. **
Segundo, gracias por ponerlo con etiquetas pero recuerda ademas identarlo o usar autoFormato con el IDE es muy fácil de hacer y la lectura se hace mas cómoda.
Hilo movido a Software

Mira alguno de tus errores

void luz1 ();
{
 lcd.clear();
 lcd.setCursor(2,0);
 lcd.print("luces ON");
 digitalWrite(luz1,HIGH);
 }

eso simplemente debe ser asi

void luz1 ()
{

Sin el ; al final del if
Prueba a ver como marcha

Esta mal declaras las funciones de usuario.

void luz1();{                        //Quita el ;
   lcd.clear();
   lcd.setCursor(2,0);
   lcd.print("luces ON");
   digitalWrite(luz1, HIGH);
}
void luz0();{                        //Quita el ;
   lcd.clear();
   lcd.setCursor(2,0);
   lcd.print("luces OFF");
   digitalWrite(luz0, LOW);
}