APNT-29 - Extensão <tc>Fibaro</tc> Capacidades de nascer/pôr do sol do HC2

O Fibaro O Home Center 2 tem algumas limitações quanto aos horários do pôr do sol e do nascer do sol que você pode usar em suas cenas. Por exemplo, você pode selecionar 15, 30, 45 e 60 minutos antes do nascer do sol e 15, 30, 45 e 60 minutos depois do pôr do sol. Mas você não pode selecionar 60 minutos antes do pôr do sol ou qualquer outro valor.

Na verdade, é muito fácil alterar uma única linha de código LUA para estender os horários do pôr do sol/nascer do sol para qualquer horário desejado.

Como exemplo, usaremos a cena do pôr do sol que utilizamos na Nota de Aplicação 28.

Sunset On Scene

Esta cena acende uma luz exatamente ao pôr do sol. Isso funciona bem para luzes externas, mas se você usasse a mesma cena para uma luz interna, provavelmente gostaria que ela fosse ativada antes do pôr do sol, pois escurece mais cedo dentro de um prédio.

Então vamos mudar isso para que a cena seja ativada 1 hora antes do pôr do sol.

Veja o código LUA

Para isso, precisamos alterar uma linha do código LUA que executa essa cena.

  • Na cena Avançado guia vá para o Alterne o modo de edição de cena para a base LUA.
  • Clique em 'Mudar'
  • O código LUA é exibido em uma janela HC2 (mostrada abaixo).

HC2 LUA Scene Code

  • A linha de código que nos interessa está em Linha 14.

( ((currentDate.wday == 2 ou currentDate.wday == 3 ou currentDate.wday == 4 ou currentDate.wday == 5 ou currentDate.wday == 6) e string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "sunsetHour")) )

  • Para alterar isso de forma que a cena seja ativada 60 minutos antes do pôr do sol, alteramos a linha 14 para:

( ((currentDate.wday == 2 ou currentDate.wday == 3 ou currentDate.wday == 4 ou currentDate.wday == 5 ou currentDate.wday == 6) e os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "sunsetHour")) )

  • O código que controla o horário antes ou depois do pôr do sol está marcado em negrito. os.time()+60*60)
    • Se isso for positivo '+' A cena será ativada antes do pôr do sol, se negativo '-' Ele será ativado em seguida.
    • O tempo antes/depois é determinado pelos números, '+60*60Neste exemplo, a ativação ocorre 60 minutos antes do pôr do sol; 90 minutos seria '+90*60'.
  • Nota: Para testar este código, configurei a cena original para 1 hora após o pôr do sol. O código LUA para essa cena era idêntico ao novo código que usamos acima, exceto pelo horário. os.time()-60*60)Então, simplesmente alterando a seção de código para os.time()+60*60) Agora temos uma cena que se passa 1 hora antes do pôr do sol.

Alterar o código LUA

Para alterar o código LUA para usar nossa nova linha de código (linha 14), precisamos ativar o modo de edição LUA.

Importante - Sugiro que você faça isso depois de ter o resto da cena funcionando corretamente - você não pode voltar do editor baseado em LUA para o editor de blocos gráficos.

Quando estiver pronto, mude o editor para baseado em LUA.

  • Se você ainda não está na seção LUA da aba 'Avançado', vá para... Alterne o modo de edição de cena para a base LUA., clique em 'Mudar'
  • Clique em 'Ligar'

HC2 LUA Editor

  • Clique em 'OK' na caixa de diálogo de aviso
  • Altere a linha 14 para o novo código.
  • Clique em 'Salvarbotão ' no menu à direita

HC2 final LUA Code


A cena agora será exibida 60 minutos antes do pôr do sol.

Com essa simples alteração de código, podemos fazer com que nossas cenas sejam executadas antes ou depois do pôr do sol/nascer do sol e no horário que quisermos.

Informações relacionadas