Vai al contenuto
News Ticker
  • Zwave-Community.it diventa DOMOTICA Easy!!
  • Il portale dedicato alla DOMOTICA WIRELESS
  • Forum - Guide - Recensioni

REGISTRATI PER VISUALIZZARE TUTTI I CONTENUTI DEL NOSTRO PORTALE!

ATTENZIONE: Alcuni contenuti del sito sono visualizzabili sono dagli utenti registrati. 

REGISTRATI ADESSO alla nostra comunità e dai anche il tuo supporto per ottenere di più!

kead

[GUIDA] GEA - INSTALLAZIONE e CONFIGURAZIONE

Recommended Posts

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:

  • Discussione ufficiale su 

    Please login or register to see this link.

    Please login or register to see this link.

    Please login or register to see this link.

  •  
  • Qui invece la repository ufficiale aggiornata su

    Please login or register to see this link.

    b

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

Please login or register to see this link.

 cliccando sul pulsante

Please login or register to see this link.

  •  
  • Dal pannello delle variabili creare una nuova VARIABILE (semplice) chiamata GEA_Tasks. Lasciare il contenuto a 0 (non ha importanza)

Please login or register to see this image.

  • 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 = (30 predifiniti) Esempio : GEA.checkEvery = 30

Indica la lista dei dispositivi mobile che dovranno ricevere le notifiche GEA.portables = { [, ][, …]} 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 = {, } Esempio : GEA.getGlobalForActivation = {“SuspendreGEA”, “no”} Fino a quando la variable globale “SuspendreGEA” sarà impostata su “no” le script continuerà la sua azione.

Share this post


Link to post
Share on other sites

SINTASSI: GEA.add(, , [, ])

CONDIZIONI:

Condizione semplice: GEA.add(, , [, ])  Esempio : GEA.add(100, 10*60, “La lampada è accesa da più di 10 minuti e la spengo", {{"turnOff"}})

Condizione multipla: GEA.add( { [, [, ...]] } , , [, ])

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:

—IDentificativo del modulo {“Global”, , }

— se il valore della variabile globale X è uguale a Y {“Global+”, , }

— se il valore della variabile globale X è superiore a Y {“Global-”, , }

— se il valore della variabile globale X è inferiore a Y {“Global!”, , }

— se il valore della variabile globale X è differente di Y {“Weather”, }

— Se il meteo indica il valore {“Sensor+”, , }

— Se il valore del sensore X è superiore a Y {“Sensor-”, , }

— Se il valore del sensore X è inferiore a Y {“Sensor”, , }

— Se il valore del sensore X è uguale a Y {“Sensor!”, , }

— Se il valore del sensore X è differente di Y {“Value+”, , }

— Se il valore del modulo  X è superiore a Y {“Value-”, , }

— Se il valore del modulo X è inferiore a Y {“Value”, , }

— Se il valore del modulo X è uguale a Y {“Value!”, , }

— Se il valore del modulo X è differente a Y {“Slider-”, , , }

— se il valore del slidere è inferiore a Y {“Slider+”, , , }

— se il valore del slidere è superiore a Y {“Slider”, , , }

— se il valore del slidere uguale a X {“Slider!”, , , }

— se il valore del slidere è differente di X {“Label”, , , }

— Se il valore dell’etichetta è uguale a X {“Label!”, , , }

— Se il valore dell’etichetta è differente di X {“Property”, , , }

— Se il valore delle proprietà di un modulo è uguale al valore indicato {“Property!”, , , }

—  Se il valore della proprietà di un modulo è differente dal valore indicato {“Battery”, , }

— Se lo stato di una batteria del modulo X è inferiore o uguale a Y {“Batteries”, }

— se lo stato delle batterie dei dispositivi è inferiore o uguale a X {“Dead”, }

— Si il modulo X non risponde più {“Group”, }

— se il gruppo X è valido {“SceneActivation”, , }

—Se la scena X del modulo Y è il trigger dello script

 

DURATA

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

-- 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                    

—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#         -- stanza

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 }, , “#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: {[,[, ...]]} Lista delle opzioni disponibili:

{“turnOff”[,]}  Spegne il dispositivo corrente {“turnOff”} oppure uno specificato {“turnOff”,21} {“turnOn”[,]}  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”, }  Il messaggio associato a questo dispositivo verrà inviato a questo smartphone al posto di quelli di default {“Portable”, 70}

{“Scenario”, }  Lancia una scena con id specifico {“Scenario”, 2}

{“Value”, }  Assegna il valore al dispositivo corrente - dimmera una lampada. {“Value”, 20}

{“Value”, , }  Assegna il valore X al dispositivoa - dimmera una lampada {“Value”, 19, 20}

{“Open”}  Apre una tapparella

{“Open”, }  Apre la tapparella dell’ X% {“Open”, 20}

{“Open”, , }  Apre la tapparella con (id) del X% {“Open”, 61, 20}

{“Close”}  Chiude la tapparella {“Close”, } Chiude la tapparella dell’ X% {“Close”, 20}

{“Close”, , } Chiude la tapparella con (id) del X% {“Close”, 61, 20}

{“Global”, , } Assegna il valore “Si” nella variabile globale “casa” {“Global”, “casa”, “Si”}

{“Global”, , “inc%”} Incrementa di 1 automaticamente la variabile globale

{“Global”, , “dec%”} Decrementa di 1 automaticamente la variabile globale

{“Time”, , } Verifica che l’evento si verifichi tra gli orari specificati {“Time”, “22:00”, “06:00”}

{“Dates”, , } 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”, } arma il modulo

{“setDisarmed”, } disarma il modulo

“RestartTask”, } Riavvia un task secondo il suo

{“StopTask”, } Interrompe un'operazione in base alla sua

{“NotStarted”} Impedisce al Task di avviarsi automaticamente (vedi RestartTask)

{“MaxTime”, } 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”, , } Premi il pulsante del modulo virtuale {“VirtualDevice”, 2, 1}

{“Label”, , , } Assegna in messaggio sull’etichetta del modulo virtuale {“Label”, 21, “ui.Label1.value”, “activé”}

{“WakeUp”, } Prova a svegliare il modulo {“WakeUp”, 54}

{“Email”, } Manda il messaggio per email all’utente n.2 {“Email”, 2}

{“Email”, , } Manda il messaggio per email all’utente n.2 con un soggetto specificato {“Email”, 2, “Sujet du message”}

{“Group”, } Assegna questo gruppo di eventi {“Group”, 2}

{“Slider”, , , } Mette il valore nel modulo di scorrimento slider {“Slider”, 19, 1, 21.3}

{“Program”, , } Esegue il programma del dispositivo RGB {“Program”, 19, 5}

{“RGB”, , , , , }  Modifica i colori del modulo RGB {“RGB”, 19, 100, 100, 0, 100}

{“Days”, } 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”, , }  Cambia l’icona del modulo virtuale

{“CopyGlobal”, , }  Copia il valore della variabile globale in un altra variabile globale

{“Function”, function() end} riservato agli sviluppatori [Dépréciés] A éviter {“If”, {[{, } gestione delle ore[/color] {“Days”, } gestione dei giorni della settimana {“Date”, , } 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”, “”}

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”, “jj/mm”}  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.add ({"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

Please login or register to see this link.

 

Share this post


Link to post
Share on other sites

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.

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?

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

 

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.

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 ;

Please login or register to see this image.

/emoticons/wink.png" alt=";)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/wink@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

Voglio comprendere: Cosa sto sbagliando? devo dichiarare delle variabili?

Please login or register to see this link.

Share this post


Link to post
Share on other sites

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

Please login or register to see this image.

/emoticons/wink.png" alt=";)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/wink@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

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'

Share this post


Link to post
Share on other sites

Vai vai giocaci e poi mi dici...

Anzi... Poi iniziamo a scambiarci idee e configurazioni

Please login or register to see this image.

/emoticons/wink.png" alt=";)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/wink@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

Certo!

Please login or register to see this image.

/emoticons/smile.png" alt=":)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/smile@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

e niente, ancora ci sbatto la testa con le funzioni più semplici: Oggi volevo sostituire una scena in LUA che mi spegneva l'interruttore dell'apertura porta dopo 1 secondo dall'accensione. Pensavo che avrei potuto inserire questa condizione in GEA ed eliminare la scena. Ho scritto questo e pensavo fosse corretto, ma invece non va:

Please login or register to see this code.

se non intervengo manualmente non mi spegne l'interruttore. Avrei voluto usare anche la condizione temporale -1 ma nemmeno quella funziona. La notifica invece va benissimo.

Share this post


Link to post
Share on other sites

257 cos'è? La porta immagino.

Se è così cosa vuoi che spenga se non gli dici cosa deve spegnere?

Please login or register to see this image.

/emoticons/smile.png" alt=":)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/smile@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

Guarda tra gli esempi. Devi mettere in fianco a turnoff l'id del dispositivo che deve spegnere altrimenti lui cerca di spegnere quello della condizione principale (che però è una porta)

Please login or register to see this image.

/emoticons/wink.png" alt=";)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/wink@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

si 257 è l'apriporta (un modulo switch aeonlabs) quindi quello che vorrei facesse (e che prima facevo con una grafico a blocchi non con lua, ricordavo male) è che non appena l'interruttore apriporta va in ON, immediatamente deve passare in OFF, in pratica deve comportarsi come un pulsante, deve dare solo l'impulso. con il relè fibaro non avrei avuto questo problema perché è configurabile, ma con questo si.

 

Volevo inserire questa scena in GEA, perché in seguito vorrei assegnare un parametro allo stato di impulso (ovvero quando avviene questo impulso porta la variabile allo stato "1") per ricevere un avviso se il portone è stato "aperto" elettricamente, ma ancora non è entrato nessuno (contatto porta ancora chiuso) dopo un minuto e con il conteggio dei minuti di questo stato, per poi azzerare la variabile non appena il contatto porta viene rilevato aperto.

 

spero di essermi spiegato.

Share this post


Link to post
Share on other sites

Ti sei spiegato... Ma il rele non ha gia di sio questa opzione nei parametri del dispositivo???

Comunque prova ad aggiungere (inverse) prima di turnoff.

Ma i \ che vedo nel codice sono errori di visualizzazione o li hai messi anche nel codice???

Share this post


Link to post
Share on other sites

Quali "\"? non vedo nulla.


Ho trovato cosa c'era che non andava, in pratica lo script fa il check ogni 30 secondi di default, quindi se non sei in quel momento specifico (alla scadenza dei 30 secondi) devi aspettare il tempo di check più il tempo impostato.

Ho risolto impostando il tempo di check a 1 secondo.

anche se ho paura di caricare un po' troppo il sistema.

mi sa che vado di nuovo di scena a blocchi.

 

-------EDIT------

 

edito il messaggio per non fare troppi post.

 

Adesso che ho funziona, voglio andare avanti, ma ho notato che lo script GEA già mi conta il tempo dall'esecuzione del "compito". È un problema?

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites

Far girare GEA ogni secondo non ha molto senso. GEA nasce principalmente per controllare ogni TOT secondi lo stato di molti dispositivi ed eseguire comandi in funzione di essi. Per fargli compiere un'azione immediatamente devi mettere il dispositivo tra i trigger ed inpostare il valore di controllo a "-1" Prova cosi... dovrebbe funzionare. tipo:

Please login or register to see this code.

 

Share this post


Link to post
Share on other sites

Ancora non va, ma sospetto di essere uno scemo, Premetto che mi sono riletto tutto il primo post prima di rispondere di nuovo ma forse mi manca proprio qualche cosa per comprendere al meglio.

Please login or register to see this code.

Questo è il trigger (adesso il dispositivo è diventato 170 perché ho fatto una riconfigurazione per vedere se mi apparivano altri parametri)

Please login or register to see this code.

e questo è il comando. Il mio sospetto è che il value indichi qualcosa :)

Share this post


Link to post
Share on other sites

Sembra tutto corretto. Anche il Trigger è ok (in sostanza è settato sul cambiamento del valore dell'ID 170). Prova cosi:

Please login or register to see this code.

In pratica ho inserito una funzione di pausa di 1 secondo e poi nuovamente il comando di spegnimento del dispositivo....

Share this post


Link to post
Share on other sites

Sono stato mezza giornata a combatterci, me ne vergogno perchè sono anche un programmatore... ma di farlo funzionare non c'è storia... ho iniziato cercando di far accendere la macchina del caffè ad un certo orario... ma nulla poi mi sono fissato sul spegnere una luce dopo 60 secondi ? Mi dite cosa cè che non va? dai log in blue scrive che il task è stato eseguito ma la luce rimane accesa... la versione della mia HC è 4.056 altra cosa... gli ID dei "portables" come li ricavo?

Please login or register to see this code.

LOG

Please login or register to see this code.

Share this post


Link to post
Share on other sites

Gli ID dei portable li ricavate andando al link TUOIP/api/devices (tipo 192.168.1.100/api/devices) dove l'IP è quello della Home center.

Compare un codice... cercate il nome del vostro dispositivo (iphone, android) e vedete in fianco l'ID corrispondente.

 

Riguardo al problema di @"TheItalianJob" non capisco perche non funzioni...

Prova a mettere al posto di "LUCE_SALA" direttamente l'ID del dispositivo e successivamente prova a cambiarlo con quello di un altro dispositivo.

Share this post


Link to post
Share on other sites

Sono stato mezza giornata a combatterci, me ne vergogno perchè sono anche un programmatore... ma di farlo funzionare non c'è storia...

ho iniziato cercando di far accendere la macchina del caffè ad un certo orario... ma nulla poi mi sono fissato sul spegnere una luce dopo 60 secondi ?

 

Mi dite cosa cè che non va? dai log in blue scrive che il task è stato eseguito ma la luce rimane accesa... la versione della mia HC è 4.056

 

altra cosa... gli ID dei "portables" come li ricavo?

 

Please login or register to see this code.

 

LOG

 

Please login or register to see this code.

 

prova così.. 

Please login or register to see this code.

Share this post


Link to post
Share on other sites

Verissimo, non avevo visto che mancavano le parentesi graffe doppie!

Mettile e vedrai che va...

Grazie @"ocram84" 

Please login or register to see this image.

/emoticons/wink.png" alt=";)" data-emoticon="" srcset="http://www.zwave-community.it/uploads/emoticons/wink@2x.png 2x" width="20" height="20" />

Share this post


Link to post
Share on other sites

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per poter lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi Subito

Sei già registrato? Accedi da qui.

Accedi Adesso

×