Apnt-29 - Estendendo Fibaro HC2 Sunrise / Sunset Capacidades

O Fibaro Home Center 2 tem algumas limitações nos tempos 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 após o pôr do sol. Mas você não pode selecionar 60 minutos antes do pôr do sol ou de qualquer outro valor.

Na verdade, é muito fácil mudar uma única linha de código Lua para estender os tempos do sol / nascer do sol a qualquer momento que você goste.

Como exemplo, usaremos a cena do por do sol que usamos na nota de aplicativo 28 -

Pôr do sol na cena

 

Esta cena liga uma luz exatamente ao pôr do sol. Isso funciona bem para as luzes externas, mas se você usou a mesma cena para uma luz interna, provavelmente queria que ela seja ativada antes do pôr do sol, pois elas escurece 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 da LUA

Para fazer isso, precisamos mudar uma linha do código Lua que realmente executa essa cena.

  • Na cena Avançado guia vai para o Modo de edição de cena para a base da LUA
  • Clique 'Mudar'
  • O código Lua é exibido em uma janela HC2 (mostrada abaixo)

Código de cena do HC2 Lua

 

  • A linha de código que estamos interessados ​​está em Linha 14..

(((atualDate.wday == 2 ou CurrentDate.wday == 3 ou currentdate.wday == 4 ou currentdate.wday == 5 ou currentdate.wday == 6) e string.format ("% 02D", CurrentDate. hora) .. ":" .. string.format ("% 02d", currentdate.min) == Fibaro: GetValue (1, "Sunsethour")))

 

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

(((atualDate.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 a hora anterior ou após o pôr do sol é marcado em negrito - OS.Time () + 60 * 60)
    • Se isso é positivo '+' A cena será ativada antes do pôr do sol, se negativo '-' vai ativar depois
    • O tempo antes / depois é determinado pelos números "+60*60'Neste exemplo ativa 60 minutos antes do pôr do sol, 90 minutos seriam' + 90 * 60 '
  • Nota: Para testar este código, coloquei a cena original para 1 hora após o pôr do sol. O código Lua para essa cena foi idêntico ao novo código que usamos acima, exceto pelo tempo sendo OS.Time () - 60 * 60). Então, simplesmente mudando a seção de código para OS.Time () + 60 * 60) Agora temos uma cena que funciona 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 ligar o modo de edição Lua.

Importante - Eu sugiro que você faça isso depois de ter o resto da cena funcionando corretamente - você não pode ir do editor baseado em Lua de volta para o editor de blocos gráficos.

Quando você estiver pronto - altere o editor para a LUA baseada.

  • Se você ainda não estiver na seção Lua da guia 'Avançado', vá para o Modo de edição de cena para a base da LUA, clique em 'Mudar'
  • Clique 'Ligar'

HC2 Lua Editor

 

  • Clique 'OK'Na caixa de diálogo de aviso
  • Alterar a linha 14 para o novo código
  • Clique no 'Salvar'Botão no menu da direita

HC2 Final Lua Code


 

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

Usando esta mudança de código simples, podemos ter nossas cenas em execução antes ou depois do pôr do sol / nascer do sol e no que sempre gostamos.

Informação relacionada