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

El Fibaro Home Center 2 tiene algunas limitaciones en cuanto a 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 de la puesta del sol. Pero no puedes seleccionar 60 minutos antes de la puesta del sol 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 puesta/salida 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 más 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 ello, necesitamos cambiar una línea del código LUA que ejecuta esta escena.

  • En la escena Avanzado pestaña ir a la Cambia el modo de edición de escenas a LUA base.
  • Haz 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, "sunsetHour")) )

  • Para cambiar esto de modo que la escena se active 60 minutos antes de la puesta de sol, modificamos la línea 14 de la siguiente manera:

( ((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, "sunsetHour")) )

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

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 sugiero que hagas esto después de que el resto de la escena funcione correctamente; no puedes volver del editor basado en LUA al editor de bloques gráficos.

Cuando estés listo, cambia el editor a uno basado en LUA.

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

HC2 LUA Editor

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

HC2 final LUA Code


La escena se reproducirá ahora 60 minutos antes de la puesta de sol.

Con este sencillo cambio de código podemos hacer que nuestras escenas se ejecuten antes o después del atardecer/amanecer y a la hora que queramos.

Información relacionada