APNT-29 - Estendendo le funzionalità di Sunrise / Sunset Fibaro HC2

Il FIBARO Home Center 2 ha alcuni limiti sul tramonto e sui tempi di alba che puoi usare nelle tue scene. Ad esempio è possibile selezionare 15, 30, 45 e 60 minuti prima dell'alba e 15, 30, 45 e 60 minuti dopo il tramonto. Ma non è possibile selezionare 60 minuti prima del tramonto o altri valori.

In realtà è molto facile modificare una singola riga di codice LUA per estendere il tramonto / Sunrise Times in qualsiasi momento che ti piace.

Ad esempio useremo la scena del tramonto che abbiamo usato nella nota dell'applicazione 28 -

Tramonto sulla scena.

 

Questa scena accende una luce esattamente al tramonto. Funziona bene per le luci esterne, ma se hai usato la stessa scena per una luce interna probabilmente vorresti che venga attivato prima del tramonto mentre diventa più scuro all'interno di un edificio.

Quindi lascia cambiarlo in modo che la scena sia attivata 1 ora prima del tramonto.

Visualizza il codice LUA

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

  • Nella scena Avanzate scheda Vai al Cambia la modalità di modifica della scena in base a LUA
  • Clicca 'Modificare'
  • Il codice LUA viene visualizzato in una finestra HC2 (mostrata sotto)

Codice della scena HC2 LUA

 

  • La linea del codice che siamo interessati è accesa Linea 14..

(((correnteDate.wday == 2 o CurrentDate.wday == 3 o CurrentDate.wday == 4 o currentDate.wday == 5 o currentDate.wday == 6) e string.Format ("% 02D", CurrentDate. ora) .. ":" ... String.Format ("% 02D", CurrentDate.min) == Fibaro: GetValue (1, "Sunsethour")))

 

  • Per modificarlo in modo che la scena sia attivata 60 minuti prima del tramonto, cambiamo la linea 14 a:

(((correnteDate.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 attiverà prima del tramonto, se negativo '-' si attiva in seguito
    • Il tempo prima / dopo è determinato dai numeri ","+60*60'In questo esempio attiva 60 minuti prima del tramonto, 90 minuti sarebbero "+ 90 * 60"
  • Nota: per testare questo codice ho impostato la scena originale su 1 ora dopo il tramonto. Il codice LUA per quella scena era identico al nuovo codice che abbiamo usato sopra tranne per il momento OS.Time () - 60 * 60). Quindi semplicemente cambiando la sezione del codice a OS.Time () + 60 * 60) Ora abbiamo una scena che corre 1 ora prima del tramonto.

Cambia il codice LUA

Per modificare il codice LUA per utilizzare la nostra nuova riga di codice (linea 14) dobbiamo attivare la modalità di modifica LUA.

Importante - Ti suggerirei di farlo dopo aver effettuato il resto della scena che funziona correttamente - non è possibile passare dal redattore basato su Lua all'editor del blocco grafico.

Quando sei pronto - cambia l'editor in base a Lua.

  • Se non sei già nella sezione LUA della scheda "Advanced" vai al Cambia la modalità di modifica della scena in base a LUA, cliccaModificare'
  • Clicca 'Accendere'

HC2 LUA Editor.

 

  • Clicca 'ok'Nella finestra di dialogo di avviso
  • Cambia la linea 14 al nuovo codice
  • Clicca il 'Salva"Pulsante sul menu a destra

Codice LUA finale HC2


 

La scena ora eseguirà 60 minuti prima del tramonto.

Usando questo semplice cambiamento di codice possiamo avere le nostre scene in esecuzione prima o dopo il tramonto / l'alba e in qualsiasi momento ci piace.

Informazioni correlate