APNT-29 - Estensione <tc>Fibaro</tc> Capacità di alba/tramonto HC2

IL Fibaro Home Center 2 presenta alcune limitazioni sugli orari di tramonto e alba utilizzabili nelle scene. Ad esempio, è possibile selezionare 15, 30, 45 e 60 minuti prima dell'alba e 15, 30, 45 e 60 minuti dopo il tramonto. Non è invece possibile selezionare 60 minuti prima del tramonto o altri valori.

In realtà è molto semplice modificare una singola riga di codice LUA per estendere gli orari di tramonto/alba a qualsiasi orario desiderato.

Come esempio useremo la scena del tramonto che abbiamo utilizzato nella nota applicativa 28 -

Sunset On Scene

Questa scena accende una luce esattamente al tramonto. Funziona bene per le luci esterne, ma se si usa la stessa scena per una luce interna, probabilmente si desidera che si attivi prima del tramonto, poiché all'interno di un edificio diventa più buio.

Quindi modifichiamolo in modo che la scena venga attivata 1 ora prima del tramonto.

Visualizza il codice LUA

Per fare ciò dobbiamo modificare una riga del codice LUA che esegue effettivamente questa scena.

  • Nella scena Avanzato scheda vai a Passa alla modalità di modifica della scena in base LUA
  • Clicca 'Modifica'
  • Il codice LUA viene visualizzato in una finestra HC2 (mostrata di seguito)

HC2 LUA Scene Code

  • La riga di codice che ci interessa è su Linea 14.

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

  • Per modificare questa impostazione in modo che la scena venga attivata 60 minuti prima del tramonto, modifichiamo la riga 14 in:

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

  • Il codice che controlla il tempo prima o dopo il tramonto è contrassegnato in grassetto - os.time()+60*60)
    • Se questo è positivo '+' la scena si attiverà prima del tramonto, se negativo '-' si attiverà in seguito
    • Il tempo prima/dopo è determinato dai numeri, '+60*60' in questo esempio si attiva 60 minuti prima del tramonto, 90 minuti sarebbero '+90*60'
  • Nota: per testare questo codice ho impostato la scena originale a 1 ora dopo il tramonto. Il codice LUA per quella scena era identico al nuovo codice che abbiamo usato sopra, tranne per il fatto che per il momento os.time()-60*60)Quindi, semplicemente modificando la sezione di codice in os.time()+60*60) ora abbiamo una scena che si svolge 1 ora prima del tramonto.

Cambia il codice LUA

Per modificare il codice LUA in modo che utilizzi la nostra nuova riga di codice (riga 14), dobbiamo attivare la modalità di modifica LUA.

Importante - Ti suggerisco di farlo dopo che il resto della scena funziona correttamente: non puoi tornare dall'editor basato su LUA all'editor Graphic Block.

Quando sei pronto, cambia l'editor in LUA.

  • Se non ti trovi già nella sezione LUA della scheda "Avanzate", vai a Passa alla modalità di modifica della scena in base LUA, clicca 'Modifica'
  • Clicca 'Accendi'

HC2 LUA Editor

  • Clicca 'OK' nella finestra di dialogo di avviso
  • Modificare la riga 14 con il nuovo codice
  • Clicca su 'Salva' pulsante nel menu di destra

HC2 final LUA Code


La scena verrà ora riprodotta 60 minuti prima del tramonto.

Utilizzando questa semplice modifica al codice possiamo far funzionare le nostre scene prima o dopo il tramonto/l'alba e all'ora che preferiamo.

Informazioni correlate