APNT-29 - Extensión <tc>Fibaro</tc> Capacidades de amanecer/atardecer del HC2

El Fibaro Home Center 2 tiene algunas limitaciones en las horas de salida y puesta del sol que puedes usar en tus escenas. Por ejemplo, puedes seleccionar 15, 30, 45 y 60 minutos antes del amanecer y 15, 30, 45 y 60 minutos después del atardecer. Sin embargo, no puedes seleccionar 60 minutos antes del atardecer ni ningún otro valor.

En realidad, es muy fácil cambiar una sola línea de código LUA para extender los horarios de salida y puesta del sol a cualquier hora que desees.

Como ejemplo utilizaremos la escena del Atardecer que usamos en la Nota de aplicación 28.

Sunset On Scene

Esta escena enciende una luz justo al atardecer. Funciona bien para luces exteriores, pero si usaras la misma escena para una luz interior, probablemente querrías que se activara antes del atardecer, ya que oscurece dentro del edificio.

Entonces cambiemos 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 pestaña ir 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 HC2 (que se muestra a continuación)

HC2 LUA Scene Code

  • 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", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "horadelatardecer")) )

  • Para cambiar esto de modo 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", os.time()+60*60) == fibaro:getValue(1, "horadelatardecer")) )

  • El código que controla el tiempo antes o después de la puesta del sol está marcado 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, configuré la escena original una hora después del atardecer. El código LUA para esa escena era idéntico al nuevo código que usamos anteriormente, excepto por el momento. os.time()-60*60). Entonces, simplemente cambiando la sección de código a os.time()+60*60) Ahora tenemos una escena que se desarrolla 1 hora antes del atardecer.

Cambiar el código LUA

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

Importante - Te sugeriría que hagas esto después de que el resto de la escena funcione correctamente: no puedes pasar del editor basado en LUA al editor de bloques gráficos.

Cuando esté listo, cambie el editor a basado en LUA.

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

HC2 LUA Editor

  • Haga clic en 'DE ACUERDO' en el cuadro de diálogo de advertencia
  • Cambie la línea 14 al nuevo código
  • Haga clic en el 'Ahorrarbotón ' en el menú de la derecha

HC2 final LUA Code


La escena ahora durará 60 minutos antes del atardecer.

Usando este simple cambio de código podemos tener nuestras escenas ejecutándose antes o después del atardecer/amanecer y a la hora que queramos.

Información relacionada