Jump to content

Benvenuto nella comunità della Domotica Wireless

ZWave-community.it cambia e vuole crescere aprendo il suo portale a tutta la comunità interessata allo sviluppo della domotica WIRELESS generale ed ai nuovi sistemi di automazione alla portata di tutti! E' a disposizione un nuovo forum su CMS IPS che garantisce stabilità e possibilità di evoluzione. Sono in progetto sezioni dedicate a recensioni prodotti, guide tecniche, sezioni download e molto altro. Siamo sempre alla ricerca di supporto tecnico ed economico per sostenere lo sviluppo e migliorare la comunità. Contribuisci anche tu oggi per avere un supporto dalla nostra comunità!
FAI UNA DONAZIONE
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ù!

Leaderboard


Popular Content

Showing content with the highest reputation since 08/21/2020 in all areas

  1. 1 point
    Ciao, fra un buco e l'altro ho creato questa, ricavandola dalla mia che utilizzo per inizializzare tutte le mie variabile globali. Da noi si dice 'l'appetito vien mangiando' e quindi ho implementato ed ottimizzato l'idea iniziale, in modo, fra l'altro, che possa servire come schedulatore per tutti i moduli presenti e futuri. IMPORTANTE: Devi creare una Variabile Globale con nome ProgramSettimanale La descrizione e le istruzioni di come implementarla lo ho messe nel relativo commento all'interno della scena . Il valore attuale della variabile è un esempio, puoi variarlo a piacimento.... .RISPETTANDO IL FORMALISMO INDICATO! n.b. I 2 puntini a fine riga servono per dire a LUA che sulla riga successiva c'è la continuazione della Variabile Globale,. quindi devi metterli su tutte le righe di avvaloramento ad eccezione dell'ultima. E' basilare leggere con attenzione i commenti all'interno della scena, per capirne la logica! Ora mancano 2 scene: - una che avvii la scena principale ogni minuto - ed una che provveda a mettere in pratica quanto specificato nella Variabile globale. A giorni ti passo la scena principale che accende o spegne la stufa in base alle impostazione della Variabile Globale. Una volta copiata in HC2 e lanciata, nell'area di debug dovrebbe apparirti il valore della variabile: Ciao --[[ %% properties %% events %% globals --]] --[[ ************************************************************************* inizializzazione Variabili Globali ================================== Arturo 16 settembre 2020 ************************************************************************* ************************************************************************* ************************************************************************* Dichiarazione ed asseganzione opzioni a variabili guida. Per aggiungere altre variabili Globali dichiarare qui la variabile Locale che la identifica con l'opione desiderata e aggiungere il codice prima della FINE, sulla falsa riga di una già esistente Opzioni: - se = 0 lo salta - (non fa niente) - se = 1 inizializza e visualizza il valore della Variabile - se = 2 visualizza solamente il valore della Variabile --]] local ProgrammatoreSettimanale = 1 -- qua aggiungo altre variabili locali con relative opzioni (vedi sopra) -- ************************************************************************* local Valore, Valore1, Operativita = ' ', ' ', 0 local Righello = '...._..10|...._..20|...._..30|...._..40|...._..50|' .. '...._..60|...._..70|...._..80|...._..90|...._.100|' .. '...._.110|...._.120|...._.130|...._.140|...._.150|' .. '...._.160|...._.170|...._.180|...._.190|...._.200|' -- ************************************************************************* -- gestione output nell'area di debug -- NON MODIFICARE! -- ************************************************************************* function AreaDebug(Operativita, VariabileGlobale, LunghezzaRecord, Colore) -- intestazione colonne tabella per area di debug (fibaro:debug) MsgDebug = '<style> table, th {border-collapse: collapse;padding: 2px;border:' .. '2px solid dimgray;font-size: 106%;font-weight: normal;}' .. ' td {padding: 1px;border: 1px solid dimgray;} th, td {text-align: ' .. 'center}tr:nth-child(even) {background-color: #161616;} tr:hover ' .. '{background-color:#001a33;} table {width:70%;}</style>'.. '<table><tr> <th> Dettaglio Records </th> ' .. "</tr>" -- leggo la Vg local Valore = fibaro:getGlobal(VariabileGlobale) -- scrivo i dati nella tabella local LunghezzaVariabile = string.len(Valore) local RighelloA = string.sub(Righello, 1, LunghezzaRecord) for IniRec = 1, LunghezzaVariabile, LunghezzaRecord do ValoreRecord = string.sub(Valore, IniRec, IniRec + LunghezzaRecord -1) -- costruzione tabella per area di debug (fibaro:debug) MsgDebug = MsgDebug .. '<tr><td><font color=' .. 'grey' .. '> ' .. RighelloA MsgDebug = MsgDebug .. '<tr><td><font color=' .. Colore .. '> ' .. ValoreRecord end MsgDebug = MsgDebug .. "</tr>" -- scrivo la tabella nella zona debug fibaro:debug('<font color=yellow>' .. 'Variabile Globale: ' .. VariabileGlobale) if Operativita == 1 then fibaro:debug('<font color=red>' .. 'Inizializzata e Visualizzata') elseif Operativita == 2 then fibaro:debug('<font color=green>' .. 'Solo Visualizzata') end fibaro:debug('<font color=white></font><pre>' .. MsgDebug .. '</table>') end -- ************************************************************************* -- separatore fra una variabile e l'altra nell'area di debug -- ************************************************************************* function Separatore() fibaro:debug('====================================================') end -- ************************************************************************** -- ************************************************************************** -- ************************************************************************** Separatore() fibaro:debug('I N I Z I O INIZIALIZZAZIONE VARIABILI GLOBALI') Separatore() -- ************************************************************************** -- ************************************************************************** -- ************************************************************************** if ProgrammatoreSettimanale ~= 0 then --[[ Questa tabella è stata creata con l' intenzione di renderla utilizzabile da tutti I moduli che necessitano di una programmazione settimanale, condizionata o non, con possibilità di disattivarla (Manuale) in determinate fasce e/o giorni. E' grazie al primo campo che questa VG può servire vari moduli, con fasce diverse: - innescare l'accesione/spegnimento di una stufa o di una caldaia - attivazione/disattivazione allarme - attivazione di un controllo particolare (luci accese/spente) - ecc ecc Ogni singola fascia ha 2 campi (chiave1 echiave2) da 3 caratteri ciascuno per permettere di condizionare l'azione prevista dal modulo. (vedi il tracciato sotto per degli esempi. Permette inoltre di disattivare l'automatismo per una determinata fascia, a livello di singolo giorno. Prevede la possibilità di configurare fino ad un massimo di 10 fasce giornaliere per ogni singolo giorno della settimana, con possibilità di configurare fasce con orari diversi, e numero diverso a seconda del giorno. Le fasce Devono essere inserite in ordine cronologico, partendo dalla prima, con orario formattato sulle 24 ore (da 0000 a 2400) Quelle non utilizzate vanno avvalorate con ora inizio fascia a ' ' (blanks) LOGICA DELLE FASCE: nel caso si inserisca solo 'Inizio prima Fascia', qualunque sia l'ora inserita le scene considerano come durata tutto il giorno (24 ore) Nel caso si interiscano 2 'Inizio Fascia', le scene intendono le 24 ore divise in 2 fasce: da 'Inizio prima fascia' ad 'Inizio seconda fascia' meno 1 minuto e da 'Inizio seconda fascia' ad 'Inizio prima fascia' meno 1 minuto ecc. ecc ..... fino alla decima Visto quanto sopra, deve essere presente almeno una Fascia!! Nel caso le fasce giornaliere siano uguali per tutta la settimana, sarà sufficente inserire un solo record con giorno = 9. Nel caso per un determinato modulo manchi il record relativo a 1 o più giorni, la relativa scena dovrà applicare le fasce del record ccn giorno = 9 Quindi se oltre alle fasce con giorno = 9, fossero presenti altri giorni questi dovranno essere rispettati e se mancano uno o più giorni della settimana, per questi ultimi dovrenno essere prese le fasce del giorno = 9 La lunghezza di questa variabile dipende dal numero di moduli da servire e dal fatto che le fasce siano o meno diverse nei vari giorni della settimana, se per ipotesi fosse un solo modulo, con fasce uguali per tutta la settimana, sarebbe lunga 152 caratteri (21+131). TUTTE LE SCENE CHE SI APPOGGERANNO A QUESTA VARIABILE GLOBALE DOVRANNO RISPETTARE QUANTO SOPRA. ********************************************************************************** Tracciato: da 1 a 20 - Codice Modulo (Serve per identificare il modulo a cui applicare le fasce di questo record) da 21 a 21 - Giorno della settimana (1 = lunedi ........ 7 = domenica ... 9 = default) da 22 a 25 - Inizio prima fascia (nel formato hhmm , dove il primo hh = ore ed mm = minuti) da 26 a 28 - Chiave1 prima fascia (se = 000 attivazione senza condizioni nel caso di Stufa o Caldaia , temperatura limite minima per accensione nel caso di Luci, lux limite minino di accesione per n minuti se movimento, minuti di accensione luce ecc ecc ) da 29 a 31 - Chiave2 prima fascia (se = 000 da non verificare nel controllo condizioni nel caso di Stufa o Caldaia , temperatura limite massima per spegnimento ecc ecc ) da 32 a 32 - Tipo di operativita della fascia (M o A in questa fascia attiva o meno l'automatismo) da 33 a 36 - Inizio seconda fascia (se non esite da avvalorare a blanks da 37 a 39 - Chiave1 seconda fascia da 40 a 42 - Chiave2 seconda fascia da 43 a 43 - Tipo di operativita della fascia .. .... ...... ed avanti cosi fino alla decima fascia oraria ........ da 121 a 124 - Inizio decima fascia da 125 a 127 - Chiave1 decima fascia da 128 a 130 - Chiave2 decima fascia da 131 a 131 - Tipo di operativita della fascia --]] -- fasce del modulo AccensioneStufa uguali per tutta la settimana, ad eccezione -- di martedì e giovedì ... (vedi sopra) Valore = 'AccensioneStufa 20001015017A0631019021A1301017019A A A A A A A A' .. 'AccensioneStufa 40001015017A A A A A A A A A A' .. 'AccensioneStufa 90001015017A0631019021A0801017019A1131020022A1301018019A1801019021A2101018020A2231015017A A A' if ProgrammatoreSettimanale == 1 then fibaro:setGlobal('ProgramSettimanale', Valore) end Operativita = ProgrammatoreSettimanale AreaDebug(Operativita, 'ProgramSettimanale', 131, 'green') Separatore() end -- ************************************************************************** -- qua aggiungo il codice, sulla falsa riga di quello sopra, di altre inizializzazioni -- ************************************************************************** -- ************************************************************************** fibaro:debug('F I N E INIZIALIZZAZIONE VARIABILI GLOBALI') Separatore()
  2. 1 point
    Sto terminando un modulo abbastanza corposo per la gestione dei superi potenza, quindi, nei momenti liberi sono tutto li 😉 ma se hai pazienza potrei aiutarti. Cominciamo dalla base su cui lavorerà la scena: creazione VG con fascie orarie settimanali, penso siano sufficienti massimo 5 fasce al giorno per ogni giorno della settimana. d'istinto io la creerei con questo tracciato: - 1 carattere giorno della settimana (1 = lunedi ........ 7 = domenica) - 1 carattere M o A (Manuale o Automatica - 8 caratteri prima fascia (nel formato hhmmhhmm , dove il primo hhmm è l'inizio, mentre il secondo è la fine) - 8 caratteri seconda fascia (se non esite da avvalorare con tutti 0 ( 00000000 ) - 8 caratteri terza fascia (se non esite da avvalorare con tutti 0 ( 00000000 ) - 8 caratteri quarta fascia (se non esite da avvalorare con tutti 0 ( 00000000 ) - 8 caratteri quinta fascia (se non esite da avvalorare con tutti 0 ( 00000000 ) Considerando 7 giorni, la lunghezza totale sarà di 287 caratteri Una di queste sere ti creo una piccola scena per inizializzarla
  3. 1 point
    In poche parole: fascia oraria: nessun problema, si crea una variabile guida con tutte le fasce che desideri. temperatura più bassa di x gradi: devi avere un dispositivo z-wave che ti ritorni i gradi (tipo l'occhio di Fibaro) Accendere la stufa: intendi dare corrente ad un Power Plug a cui è collegata la stufa o inviare una stringa alla stufa? se power plug, nessun problema, si cambia lo stato dello stesso. Presente in casa: io assocerei il controllo se telefono in wifi (che da solo non è affidabile) alla verifica se l'occhio di Fibaro non intercetta movimento per tot minuti
×