APNT-29 - Extendiendo FIBARO HC2 Amanecer / Capacidades de la puesta del sol

El Fibaro Home Center 2 tiene algunas limitaciones en el atardecer y los tiempos de amanecer que puede usar en sus escenas. Por ejemplo, puede seleccionar 15, 30, 45 y 60 minutos antes del amanecer y 15, 30, 45 y 60 minutos después del atardecer. Pero no se puede seleccionar 60 minutos antes del atardecer o cualquier otro valor.

En realidad, es muy fácil cambiar una sola línea de código de LUA para extender los tiempos del atardecer / amanecer a cualquier momento que desee.

Como ejemplo, usaremos la escena del atardecer que utilizamos en la aplicación Note 28 -

Puesta de sol en escena

 

Esta escena enciende una luz exactamente al atardecer. Esto funciona bien para las luces externas, pero si usó la misma escena para una luz interior, probablemente querrá activarse antes de la puesta del sol, ya que se oscurece dentro de un edificio.

Así que vamos a cambiar esto para que la escena se active 1 hora antes del atardecer.

Ver el código LUA

Para hacer esto, necesitamos cambiar una línea del código LUA que realmente ejecuta esta escena.

  • En la escena Avanzado Tab ve a la Cambiar el modo de edición de escena a la base LUA
  • Haga clic en 'Cambiar'
  • El código LUA se muestra en una ventana de HC2 (que se muestra a continuación)

Código de escena HC2 LUA

 

  • La línea de código que nos interesa está en Línea 14.

(((CurrentDate.wday == 2 o CurrentDate.wday == 3 o CurrentDate.wday == 4 o CurrentDate.wday == 5 o CurrentDate.wday == 6) y String.Format ("% 02D", CRUCTDATE. hora) .. ":" .. string.format ("% 02d", actualdate.min) == FIBARO: GetValue (1, "Sunsethour"))))

 

  • Para cambiar esto para que la escena se active 60 minutos antes del atardecer, cambiamos la línea 14 a:

(((CurrentDate.wday == 2 o CurrentDate.wday == 3 o CurrentDate.wday == 4 o CurrentDate.wday == 5 o CurrentDate.wday == 6) y OS.Date ("% H:% M" De OS.Time () + 60 * 60) == FIBARO: GetValue (1, "Sunsetheur"))

 

  • El código que controla la hora antes o después de la puesta de sol está marcada en negrita. OS.Time () + 60 * 60)
    • Si esto es positivo '+' La escena se activará antes del atardecer, si es negativo. '-' se activará después
    • El tiempo antes / después está determinado por los números, '+60*60'En este ejemplo se activa 60 minutos antes del atardecer, 90 minutos serían' + 90 * 60 '
  • Nota: Para probar este código, configuro la escena original a 1 hora después del atardecer. El código de LUA para esa escena fue idéntico al nuevo código que hemos utilizado anteriormente, excepto por el momento. OS.Time () - 60 * 60). Así que simplemente cambiando la sección del código a OS.Time () + 60 * 60) Ahora tenemos una escena que corre 1 hora antes del atardecer.

CAMBIAR EL CÓDIGO DE LUA

Para cambiar el código de LUA para usar nuestra nueva línea de código (línea 14), debemos encender el modo de edición de LUA.

Importante - Le sugeriría que haga esto después de que tenga el resto de la escena que trabaja correctamente: no puede ir del editor basado en LUA al editor de bloques gráficos.

Cuando esté listo, cambie el editor a LUA en función.

  • Si aún no está en la sección LUA de la pestaña 'Avanzado' vaya a la Cambiar el modo de edición de escena a la base LUA, haga clic en 'Cambiar'
  • Haga clic en 'Encender'

Editor de HC2 LUA

 

  • Haga clic en 'OK'En el diálogo de advertencia
  • Cambiar la línea 14 al nuevo código.
  • Haga clic en el 'Salvar'Botón en el menú de la derecha

Código Final LUA de HC2


 

La escena ahora se ejecutará 60 minutos antes del atardecer.

Usando este simple cambio de código, podemos tener nuestras escenas que se ejecutan antes o después del atardecer / amanecer y en lo que nos gusta.

Información relacionada