Como já dito antes, seu código nem compila. Operador booleano AND é feito com &&. Além disso, há variáveis que foram inseridas no programa e não declaradas. Seu código está repleto de IF. A ideia é usar comparações mesmo, mas você encheu o programa de coisas antes de fazer ele rodar com o mais simples.
Quando o compilador retorna a mensagem:
'rele' was not declared in this scope
Quer dizer que inseriu uma variável no programa e ela não foi declarada no início. Você precisa dizer para ele "olha, rele vai ser uma saída e vou usar a porta tal".
int rele = 11; //por exemplo
O mesmo para as demais variáveis. Diminua os IFs provisoriamente para mostrar as horas no monitor serial e faça apenas uma comparação de teste.
pseudo código (isso é apenas uma ideia para seu teste básico):
if ((hora == 8) && (minuto == 00) && (segundos == 00)){
//LIGA rele numero XX
}
else if ((hora == 8)&& (minuto == 30) && (segundos == 00)){
//DESLIGA rele numero XX
}
Interessante usar os segundos porque se usar apenas horas e minutos ele vai ficar ligando durante 1 minuto a saída do relé (até minutor ser diferente de 00, ou seja, 01), o que é desnecessário. Usando "segundos" ele ainda vai fazer isso, mas um pouco menos. Pois 1 segundo passa mais rápido que 1 minuto ![]()