[GUIDA] GEA - INSTALLAZIONE e CONFIGURAZIONE
  • 40 voti - 3.15 media
#1
Questa discussione è dedicata esclusivamente a GEA, uno script Lua per Fibaro Home Center 2 che permette di automatizzare in un'unica scena moltissimi eventi.
Vorrei sapere che li sta usando e aprire una collaborazione in ITALIANO sui comandi ed esempi di script integrativi.

Per chi non sa nulla a riguardo rimando al post ufficiale sul portale della comunità Francese Fibaro dove il mitico STEVEN ha condiviso questo eccezionale lavoro:
  • Qui invece la repository ufficiale aggiornata su GitHub
DESCRIZIONE
GEA è il nome di uno script LUA usato per controllare le automazioni con una Fibaro HC2.

SCOPO
Questo script è progettato per controllare periodicamente lo stato del proprio ambiente domestico e per avvisare l'utente di potenziali problemi e, se necessario, per eseguire automaticamente determinate azioni.

ACUNI UTILIZZI
Essere informati se la porta del garage è aperta da più di 10 minuti
Accendere il riscaldamento e ricevere una notifica se un locale è troppo freddo per X minuti
Spegnere automaticamente la luce del bagno se è accesa da più di 5 minuti
Spegnere il frigo e ricevere una notifica se consuma troppa elettricità o notificare se non ne consuma abbastanza (guasto)
A tal ora accendi o spegni la luce se determinate condizioni sono soddisfatte

VANTAGGI
Il vantaggio è di avere un’unica scena che si ripete ciclicamente e controlla lo stato di tutti i comandi in essa inserita invece di avere molteplici scene distinte per ogni operazione.
Inoltre alleggerisce notevolmente lo stress del sistema.

GEA nato inizialmente per eseguire le operazioni solo all’avvio ciclico della scena ogni TOT tempo.
Con le ultime versioni è stata aggiunta la possibilità di far partire lo script e alla richiesta dei trigger. 
Pertanto si possono impostare comandi che devono essere eseguiti immediatamente e non con il ritardo del ciclo.

Successivamente è stata inoltre aggiunta la possibilità di inserire negli script funzioni quali IF, THEN, ELSE ecc..

INSTALLAZIONE
  • Scaricare l’ultima versione dello script dal seguente link  cliccando sul pulsante DOWNLOAD ZIP
  • Dal pannello delle variabili creare una nuova VARIABILE (semplice) chiamata GEA_Tasks. Lasciare il contenuto a 0 (non ha importanza)
[Immagine: 61ACs8C.png]
  • Creare una nuova scena in modalità LUA e chiamarla GEA
  • Copiare lo script aggiornato di GEA all’interno dell’editor LUA della scena
  • Modificare i parametri qui di seguito descritti in base alla vostra configurazione/esigenza. Essi si trovano all’inizio dello script dopo la riga 35 “Paramétrage de GEA / GEA configuration”
  • Inserire gli script personalizzati di automatismo tra le righe “Ajouter ici les événements à exécuter / Add here events to schedule” e “NE PLUS RIEN TOUCHER / DON'T TOUCH UNDER THIS POINT”. NON MODIFICARE MAI NULLA AL DI SOTTO DI QUESTA RIGA!!
PARAMETRI

Definisce l’intervallo di controllo (o lancio dello scena) in secondi
GEA.checkEvery = <n secondi> (30 predifiniti)
Esempio : GEA.checkEvery = 30

Indica la lista dei dispositivi mobile che dovranno ricevere le notifiche
GEA.portables = {<id portable> [, <id portable>][, …]}
Esempio : GEA.portables = {70, 71}

Indica se si sta utilizzando una versione firmware uguale o superiore alla versione 4.017
GEA.isVersionFour = true

Indica il linguaggio utilizzato (Francese : FR o Inglese : EN)
GEA.language = “EN”

Abilità il debug per avere traccia delle esecuzioni
GEA.debug = true o false (false di default)
Exemple : GEA.debug = true

Permette un blocco forzato di GEA; qualunque errore provoca il blocco di GEA se questa opzione è impostata su false 
GEA.catchError = true | false (true per defaut)
Esempio : GEA.catchError = false – controlla gli errori e ferma GEA

Fermare lo script al volo
GEA.getGlobalForActivation = {<variable globale>, <valeur>}
Esempio : GEA.getGlobalForActivation = {“SuspendreGEA”, “no”} Fino a quando la variable globale “SuspendreGEA” sarà impostata su “no” le script continuerà la sua azione.
Questo messaggio è stato modificato l'ultima volta il: 30-01-2016, 01:15 PM da kead.
#2
SINTASSI:

GEA.add(<condizione>, <durata in secondi-1>, <messaggio di notifica>[, <opzioni>])

CONDIZIONI:

Condizione semplice:
GEA.add(<condizione>, <durata in secondi-1>, <messaggio di notifica>[, <opzioni>]) 
Esempio :
GEA.add(100, 10*60, “La lampada è accesa da più di 10 minuti e la spengo", {{"turnOff"}})

Condizione multipla:
GEA.add( { <condizione_principale>[, <condizione2>[, ...]] } , <durata in secondi-1>, <messaggio di notifica>[, <opzioni>])
Esempio :
GEA.add( { 100, {"Global", “Giorno_Notte", "notte"} } }, 10*60, “La luce è accesa da più di 10 minuti e la variabile globale Giorno_Notte indica notte e quindi la spengo", {{"turnOff"}})


Lista delle condizioni:

<Id modulo> —IDentificativo del modulo

{“Global”, <nome variabile>, <valore>} — se il valore della variabile globale X è uguale a Y
{“Global+”, <nome variabile>, <valore>} — se il valore della variabile globale X è superiore a Y
{“Global-”, <nome variabile>, <valore>} — se il valore della variabile globale X è inferiore a Y
{“Global!”, <nome variabile>, <valore>} — se il valore della variabile globale X è differente di Y
{“Weather”, <valore>} — Se il meteo indica il valore
{“Sensor+”, <id modulo>, <valore max>} — Se il valore del sensore X è superiore a Y
{“Sensor-”, <id modulo>, <valore max>} — Se il valore del sensore X è inferiore a Y
{“Sensor”, <id modulo>, <valore max>} — Se il valore del sensore X è uguale a Y
{“Sensor!”, <id modulo>, <valore max>} — Se il valore del sensore X è differente di Y
{“Value+”, <id modulo>, <valore max>} — Se il valore del modulo  X è superiore a Y
{“Value-”, <id modulo>, <valore max>} — Se il valore del modulo X è inferiore a Y
{“Value”, <id modulo>, <valore max>} — Se il valore del modulo X è uguale a Y
{“Value!”, <id modulo>, <valore max>} — Se il valore del modulo X è differente a Y
{“Slider-”, <id_vd>, <nome slider>, <valore>} — se il valore del slidere è inferiore a Y
{“Slider+”, <id_vd>, <nome slider>, <valore>} — se il valore del slidere è superiore a Y
{“Slider”, <id_vd>, <nome slider>, <valore>} — se il valore del slidere uguale a X
{“Slider!”, <id_vd>, <nome slider>, <valore>} — se il valore del slidere è differente di X
{“Label”, <id_vd>, <nom etichetta>, <contenuto>} — Se il valore dell’etichetta è uguale a X
{“Label!”, <id_vd>, <nom etichetta>, <contenuto>} — Se il valore dell’etichetta è differente di X
{“Property”, <id_modulo>, <nome proprieta>, <valore>} — Se il valore delle proprietà di un modulo è uguale al valore indicato
{“Property!”, <id_modulo>, <nome proprietà>, <valore>}—  Se il valore della proprietà di un modulo è differente dal valore indicato
{“Battery”, <id modulo>, <valore max>} — Se lo stato di una batteria del modulo X è inferiore o uguale a Y
{“Batteries”, <valore max>} — se lo stato delle batterie dei dispositivi è inferiore o uguale a X
{“Dead”, <id modulo>} — Si il modulo X non risponde più
{“Group”, <numero di gruppo>} — se il gruppo X è valido
{“SceneActivation”, <id modulo>, <id scena>} —Se la scena X del modulo Y è il trigger dello script

DURATA
La durata è numero di secondi che le condizioni devono essere valide.

<durata in secondi >        -- Numero di secondi durante i quali la/le condizioni devono essere rispettata/e

Attenzione: è possibile mettere una durata di -1 se si desidera utilizzare un trigger immediato. Questo è valido solo per la prima condizione. 
Inoltre, il modulo o la variabile globale testato DEVE essere incluso nello script dei trigger all’inizio del codice.

MESSAGGI
<messaggio di notifica>                    —Il messaggio che sarà notificato
Se il messaggio è vuoto non verrà inviata alcuna notifica.
Un messaggio può contenere variabili che saranno sostituite al volo. Queste variabili sono:
      #time#          -- tempo
      #duration#      -- durata
      #value#         -- ultimo valore
      #date#          -- data
      #seconds#       -- secondi
      #name#          -- nome del dispositivo
      #runs#          -- numero di esecuzione
      #rooms#         -- pièce

Esempio:
 “Il consumo #valeur#W rilevato alle #time#, in #date# sul dispositivo #name# è troppo elevato!”

E’ inoltre possibile conoscere i valori degli altri dispositivi coinvolti. Esempio:
GEA.add( { condition1, condition2, condition3 }, <durata>, “#value[1]# #value[2]# #value[3]#”)
Le variabili indicizzate sono: #value[index]#, #name[index]# et #room[index]#. 
Le condizioni principali sono: #name#, #value# et #room#

OPZIONI
Una Opzione è un'azione che GEA eseguirà se sono state soddisfatte le condizioni durante il tempo specificato in precedenza.
Alcune opzioni non sono azioni ma ulteriori parametri (tempo, giorni, ...)
Esse sono delle opzioni per priorità storica.
Le opzioni dove l’ID non è specificato (turnOn, turnOff, …) si riferiscono all’ID della condizione principale. Se differente va precisato.
Questo è sempre un gruppo di opzioni, anche se ve ne è una sola. 
Un gruppo di opzioni è quindi scritto con la seguente sintassi:
{<option>[, <option>[, ...]]}

Lista delle opzioni disponibili:
{“turnOff”[,<id module>]}  Spegne il dispositivo corrente {“turnOff”} oppure uno specificato {“turnOff”,21}
{“turnOn”[,<id module>]}  Accende il dispositivo corrente {“turnOn”} oppure uno specificato {“turnOn”,21}
{“Inverse”}  La condizione viene invertita se fosse vero, lo script restituisce false. Si applica solo alla prima condizione
{“Repeat”}  Vengono ripetuti gli avvertimenti fino a quando il dispositivo non ha cambiato stato.{“Portable”, <id>}  Il messaggio associato a questo dispositivo verrà inviato a questo smartphone al posto di quelli di default {“Portable”, 70}
{“Scenario”, <id>}  Lancia una scena con id specifico {“Scenario”, 2}
{“Value”, <value>}  Assegna il valore al dispositivo corrente - dimmera una lampada. {“Value”, 20}
{“Value”, <id>, <value>}  Assegna il valore X al dispositivoa <id> - dimmera una lampada {“Value”, 19, 20}
{“Open”}  Apre una tapparella
{“Open”, <value>}  Apre la tapparella dell’ X% {“Open”, 20}
{“Open”, <id>, <value>}  Apre la tapparella con (id) del X% {“Open”, 61, 20}
{“Close”}  Chiude la tapparella
{“Close”, <value>} Chiude la tapparella dell’ X% {“Close”, 20}
{“Close”, <id>, <value>} Chiude la tapparella con (id) del X% {“Close”, 61, 20}
{“Global”, <variable>, <valeur>} Assegna il valore “Si” nella variabile globale “casa” {“Global”, “casa”, “Si”}
{“Global”, <variable>, “inc%”} Incrementa di 1 automaticamente la variabile globale
{“Global”, <variable>, “dec%”} Decrementa di 1 automaticamente la variabile globale
{“Time”, <from>, <to>} Verifica che l’evento si verifichi tra gli orari specificati {“Time”, “22:00”, “06:00”}
{“Dates”, <from>, <to>} Verifica che l’evento si verifichi tra le date specificati {“Dates”, “01/01[/2014]”, “31/01[/2014]”}. Non tengono conto del cambiamento di anno per “01/10”, “01/03”; quindi fare due linee “01/10”, “31/12” et “01/01”, “01/03”
{“Armed”} Verifica che il modulo sia armato
{“Disarmed”} Verifica che il modulo sia disarmato
{“setArmed”, <id>} arma il modulo <id>
{“setDisarmed”, <id>} disarma il modulo <id>
{“RestartTask”, <id_task>} Riavvia un task secondo il suo <id_task>
{“StopTask”, <id_tâche>} Interrompe un'operazione in base alla sua <id_tâche>
{“NotStarted”} Impedisce al Task di avviarsi automaticamente (vedi RestartTask)
{“MaxTime”, <number>} Ferma un task dopo un certo numero di esecuzioni
{“DST”} Si verifica la condizione solo se siamo in modalità orario estivo
{“NOTDST”} Si verifica la condizione solo se siamo in modalità orario invernale
{“VirtualDevice”, <id,_module>, <no_bouton>} Premi il pulsante del modulo virtuale {“VirtualDevice”, 2, 1}
{“Label”, <id_module>, <name>, <message>} Assegna in messaggio sull’etichetta del modulo virtuale {“Label”, 21, “ui.Label1.value”, “activé”}
{“WakeUp”, <id,_module>} Prova a svegliare il modulo {“WakeUp”, 54}
{“Email”, <id_user>} Manda il messaggio per email all’utente n.2 {“Email”, 2}
{“Email”, <id_user>, <sujet>} Manda il messaggio per email all’utente n.2 con un soggetto specificato {“Email”, 2, “Sujet du message”}
{“Group”, <numero>} Assegna questo gruppo di eventi {“Group”, 2}
{“Slider”, <id_module>, <id_slider>, <valeur>} Mette il valore nel modulo di scorrimento slider {“Slider”, 19, 1, 21.3}
{“Program”, <id_module>, <no>} Esegue il programma del dispositivo RGB {“Program”, 19, 5}
{“RGB”, <id_module>, <col1>, <col2>, <col3>, <col4>}  Modifica i colori del modulo RGB {“RGB”, 19, 100, 100, 0, 100}
{“Days”, <jours>} Si verifica che l’esecuzione avvenga solo in determinati giorni della settimana (i giro possono essere come i seguenti “Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, All, Weekday, Weekend”)
{“CurrentIcon”, <id_module>, <no_icon>}  Cambia l’icona del modulo virtuale
{“CopyGlobal”, <var_source>, <var_dest>}  Copia il valore della variabile globale <var_source> in un altra variabile globale <var_dest>
{“Function”, function() end} riservato agli sviluppatori
[Dépréciés] A éviter
{“If”, {[{<condition}[,{<condition}[,…]]}}  L'evento sarà autorizzato solo se tutte le condizioni sono valide

LA GESTIONE DEL TEMPO CON GEA

Esistono 4 opzione che permettono di gestire il tempo con GEA:

{“Time”, <debut>, <fin>} gestione delle ore
{“Days”, <jour(s)>} gestione dei giorni della settimana
{“Date”, <début>, <fin>} Gestione di date da calendario
{“DST”} et {“NOTDST”} Orari estivi o invernali

Gestione delle ore:
Alcune istruzioni devono essere verificate solamente in alcuni orari come per esempio l’accensione di una luce tra le 20.00 e le 22.00. GEA permette di gestire facilmente questa esigenza. Esempio:
GEA.add(100, 30, “solo in prima serata", {{"Time", "20:00", "21:00"}})

Se si vuole specificare due fasce di orario come tra le 20.00 e 21.00 e tra le 22.00 e 23.00 basta semplicemente scrivere:
GEA.add(100, 30, “solo in prima serata", {{"Time", "20:00", "21:00"}, {"Time", "22:00", "23:00"}})

GEA conosce alcune scorciatoie come: 
Sunset – Tramonto
Sunrise – Alba
GEA.add(100, 30, “solamente di notte", {{"Time", "Sunset", "Sunrise"}})

Operazioni aritmetiche sugli orari
GEA permette qualche operazione aritmetica sugli orari come +, -, < et >

{“Time”, “Sunset+10”, “Sunrise-20”} 10 minuti dopo il tramonto e 20 minuti prima dell’alba
{“Time”, “Sunset>19:00”, “Sunrise”} Al calare del sole solo se è dopo le 19.00 
{“Time”, “Sunset”, “Sunrise<08:00”} Fino all'alba se avviene prima 08:00 altrimenti alle 8:00

Gestione dei giorni
E’ possibile chiedere a GEA di verificare una istruzione unicamente un certo giorno della settimana.
Sintassi:
 {“Days”, “<liste des jours>”} I giorni devono essere separati da una virgola. I giorni sono i seguenti:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

Voi potete anche utilizzare le seguenti abbreviazioni:
Weekday Un giorno della settimana solo dal lunedì al venerdi
Weekend Sabato e domenica 

Esempio:
GEA.add(100, 30, “Solo il lunedi", {{"Days", "Monday"}})
GEA.add(100, 30, “Solo il lunedi e giovedi", {{"Days", "Monday, Thursday"}})
GEA.add(100, 30, “Solo i weekend", {{"Days", "Weekend"}})
GEA.add(100, 30, “Solo in settimana", {{"Days", "Weekday"}})

Gestione delle date
Serve per specificare un periodo dove GEA eseguirà le azioni. L'anno è opzionale e può essere saltato se si desidera eseguire eventi ripetitivi. 

Sintassi : {“Date”, “jj/mm</aaaa>”, “jj/mm</aaaa>”} 
jj = giorni “13” 
mm = mesi “06” 
aa = anno “2015” 

Esempio :
GEA.add(100, 30, “Solo in gennaio", {{"Date", "01/01", "31/01"}})
GEA.add(100, 30, “Solo a gennaio 2015", {{"Date", "01/01/2015", "31/01/2015"}})

È possibile combinare diverse date:
GEA.add(100, 30, “Solo in gennaio e marzo 2015", {{"Date", "01/01/2015", "31/01/2015"},{"Date", "01/03/2015", "31/03/2015"}})

Estate o Inverno
GEA comprende le istruzioni {“DST”} estate e {“NOTDST”} inverno

Per un’istruzione che deve avvenire solo nel periodo estivo:
GEA.add(100, 30, “Solo in estate", {{"DST"}})

Al contrario solo in inverno:
GEA.add(100, 30, “Solo in inverno", {{"NOTDST"}})

MULTI ISTANZA


L'idea originale di GEA è quello di avere un unico script che viene eseguito continuamente HC2 e che esegua tutte le istruzioni stabilite.

Prima di tutto: Essere consapevoli del fatto che spesso si possono avere più istanze di GEA in esecuzione nello stesso momento sul controller HC2 e non sempre e solo una. Questo perché quando si salva la scena o si riavvia la HC2 un'istanza viene avviata automaticamente, ma anche ogni volta che HC2 attiva un evento (vedi Trigger), il HC2 avvia una nuova istanza di GEA.

Per necessità di test o prestazioni ... può essere utile avere più istanze di GEA (più copie della scena). Per fare questo, vi è la variabile GEA_Tasks che ti aiuterà.

Perché? 
In primo luogo, questa variabile conserva i comandi RestartTask, StopTask, MaxTime in modo che questi ordini possono essere elaborati tra le diverse istanze GEA che partono automaticamente sul controller (descritti nel paragrafo precedente). Ogni volta che si salva o si riavvia lo script  di GEA, il valore della variabile GEA_Tasks viene eliminato automaticamente. Inoltre, non ci può essere un conflitto se due istanze di GEA  vanno a modificare la stessa variabile globale.

Come? 
Se si desidera avere due scene indipendenti di GEA, è sufficiente impostare il valore della variabile globale GEA.globalTasks in qualcosa di diverso da "GEA_Tasks", che è l'impostazione predefinita.

Andate a creare una variabile globale GEA_Tasks_2 dal tuo pannello delle variabili  e nello script GEA aggiungere semplicemente:

GEA.globalTasks =  "GEA_Tasks_2"
Ora avrete 2 istanze ben isolate.

ESEMPI DI UTILIZZO

Voglio che quando apro la porta il comando venga eseguito immediatamente. Per fare questo bisogna:
1) L'ID del dispositivo trigger deve essere dichiarato nell'intestazione dello script
2) Il tempo di esecuzione dello script deve essere impostato a -1.

--[[
%% properties
16 value
%% globals
--]]

...
GEA.add(16, -1, "", {{"turnOn",17}}) -- Accendi la luce (17) quando si apre la porta (16)

Questa informa se le porta è aperta da piu di 5 minuti
GEA.add(28, 5*60, "La porta del garage è aperta da più di 5 minuti”)

Questa informa ogni 5 minuti se la porta è aperta
GEA.add(28, 5*60, "La porta del garage è aperta da #duration# minutes", {{“Repeat"}})

Questa informa se la porta è aperta da più di 5 minuti ma solo di lunedì e giovedì
GEA.add(28, 5*60, “La porta del garage è aperta da #duration# minutes", {{"Repeat"}, {"Days", "Monday, Thursday"}})

Questa informa se la porta è aperta da piu di 5 minuti ma solo di lunedi e giovedi tra le 12.00 e le 18.00
GEA.add(28, 5*60, "La porta del garage è aparta da pic di #duration# minutes", {{"Repeat"}, {"Days", "Monday, Thursday"}, {"Time", "12:00", “18:00"}})

Questa controlla se la porta è aperta da piu di 5 minuti e la televisione (ID 30) è accesa ma solo il lundi e giovedi dalle 12.00 alle 18.00. La condizione diventa quindi un gruppo di condizioni che verificano se la porta del garage è aperta e la televisione accesa.
GEA.add({ 28,30 }, 5*60, "La porte du garage est ouverte depuis plus de #duration# minutes", {{"Repeat"}, {"Days", "Monday, Thursday"}, {"Time", "12:00", "18:00"}})

Chiudere le persiane se la temperatura è superiore a 24° per più di 10 minuti 
local termometro, persiana1, persiana2 = 8, 22, 23
GEA.add({"Value+", termometro, 24}, 10*60, “chiusura persiane, temperatura #value#", {{"Close",persiana1},{"Close",persiana2}})

Controllo del carico di alcuni dispositivi e spegnerli in caso di consumo eccessivo
local consumo, vmc = 9, 24
GEA.add({"Sensor+", consumo, 600}, 1*60, “Consumo #value# superiore a 600W da più di 1 minuto", {{"turnOff",vmc}})

Restituisce il contenuto di una variabile globale quando la condizione è corretta.
GEA salva il valore in una variabile che è possibile utilizzare per le notifiche. Se il "messaggio" della variabile globale non è vuoto (Inverse) allora invia una notifica contenente il valore della variabile globale.
GEA. Aggiungi ({"Global", "Messaggio", ""}, 1, "# # valore", {{"Inverse"}}) 
 
Controlla l'apertura della porta per le fasce orarie e giorni specifici
GEA.add(17, -1, "Porte ouvertes à #date# #time#",{{"Days","Monday,Tuesday,Thursday,Friday"},{"Time","11:30","13:30"}, {"Time","16:30","18:30"}})  


Voglio ricevere le notifiche solo per email.
GEA invia i messaggi direttamente per notifica PUSH per default più per email se è richiesto.
Per richiedere l’invio su email, l’astuzia consiste nel richiedere l’invio push ad un dispositivo inesistente. Esempio:
GEA.add(16, -1, "Ouverture de la porte à #time#, le #date#", {{"Email",2},{"Portable",0}})

ALTRI ESEMPI DI CONFIGURAZIONI QUI
Questo messaggio è stato modificato l'ultima volta il: 30-01-2016, 01:13 PM da kead.
#3
Grazie per questa condivisione... ci vorrei tentare.
Come trovo l'ID del dispositivo mobile che riceve le notifiche?
#4
Come mai secondo voi conviene usare GEA invece che singole scene in lua? alla fine mi sembra che le righe da scrivere siano più o meno le stesse.
Citazione:Questa informa se le porta è aperta da piu di 5 minuti
GEA.add(28, 5*60, "La porta del garage è aperta da più di 5 minuti”)

Questa informa ogni 5 minuti se la porta è aperta
GEA.add(28, 5*60, "La porta del garage è aperta da #duration# minutes", {{“Repeat"}})
poi negli esempi ho visto questi due comandi che mi sembrano molto simili nella scrittura, ma che fanno cose diverse. dove non ho capito?
#5
(27-01-2016, 02:19 PM)Cristiano Ha scritto: Grazie per questa condivisione... ci vorrei tentare.
Come trovo l'ID del dispositivo mobile che riceve le notifiche?

Tenta tenta che poi vedrai che goduria.

L'id lo trovi andando su TUOIP/api/devices
Li trovi una serie di parole confuse.
Puoi cercare con FIND del brownser il nome del tuo dispositivo mobile e vedi l'ID che gli è stato assegnato.
#6
(27-01-2016, 02:41 PM)LaMax Ha scritto: Come mai secondo voi conviene usare GEA invece che singole scene in lua? alla fine mi sembra che le righe da scrivere siano più o meno le stesse.
Citazione:Questa informa se le porta è aperta da piu di 5 minuti
GEA.add(28, 5*60, "La porta del garage è aperta da più di 5 minuti”)

Questa informa ogni 5 minuti se la porta è aperta
GEA.add(28, 5*60, "La porta del garage è aperta da #duration# minutes", {{“Repeat"}})
poi negli esempi ho visto questi due comandi che mi sembrano molto simili nella scrittura, ma che fanno cose diverse. dove non ho capito?

Conviene perche hai un'unica scena invece di una montagna di scene che a lungo andare creano confusione a te e pesantezza al sistema.
Le funzioni domotiche piu utili e comuni solo gestibili con GEA. Per funzioni speciali programmi a parte.
Inoltre una volta capito è molto piu semplice da usare che non il classico Lua.

I comandi che riporti sono diversi perche il primo riporta il testo pari pari. Il secondo riporta il testo ma aggiornato con la durata effettiva che la porta è aperta (non cose da poco ;Wink
#7
Perfetto, adesso mi ci metto.
#8
Voglio comprendere: Cosa sto sbagliando? devo dichiarare delle variabili?
   
#9
Le virgolette " prima del testo "La lampada..."
Se guardi le prime sono bianche e quelle in fondo alla frase verdi.
Cancella le prime bianche e rifalle.. vedrai che diventano verdi e funziona.
E' un classico facendo copia ed incolla delle stinge da pagine web o altro.
Ci sono impazzito pure io Wink
#10
Wow, adesso funziona, giustamente non conoscendo la sintassi non mi ero accorto di questa cosa, adesso seguo l'altra guida per stamparmi gli ID così posso cominciare a giocarci un po'


Utente(i) che stanno guardando questa discussione:
1 Ospite(i)