Cosa succede all'accensione / power on in ControlHUB
 
In un sistema di controllo impiegato per compiti reali e non solo amatoriali è importante progettare tutto sapendo molto bene cosa può succedere quando si accende il sistema, sia questo avvenga da zero, sia dopo un calo di corrente. 
Be' in realtà questo è cosa ben fatta e fa piacere anche in sistemi amatoriali!! 
Naturalmente molti comportamenti dipendono dal particolare sistema, quindi di molte cose devi tener conto tu, non è che ControlHUB faccia le magie. 
ControlHUB però ti dà una mano per aiutarti a programmare comportamenti ben definiti. 
Vediamo come. 
 
Ecco cosa succede all'accensione: 
- la variabile speciale $poweron$ è messa a 1 (puoi così usarla all'interno di tue condizioni per far eseguire compiti particolari quando c'è l'accensione oppure per NON far eseguire alcune cose se il sistema è in fase di accensione) 
- tutte le variabili vengono caricate dalle ultime letture che erano state salvate (ultime "risposte" seriali e/o ModBus, ultime azioni/lettura HTTP, ultime ricezioni di topic MQTT) 
- ControlHUB attende di essere collegato in rete e quindi attende, chiedendola a un pool di orologi atomici, l'informazione ora/data corrente (per time tminute, ecc);  
- in assenza dopo un po' si procede comunque, con data 1-1-2019 o 1-1-1970 0:0.0 (questo vuol dire che azioni o condizioni che hanno a che fare con data o ora possono per esempio decidere di non fare nulla se $tyear$<2020 ovvero l'informazione di data/ora è non valida) 
- vengono valutate tutte quelle Condizioni/Espressioni che creano variabili (se ce ne sono) 
- viene eseguita l'azione che nelle Impostazioni hai definito come "azione iniziale", come prima azione in assoluto ad essere eseguita 
- vengono valutate tutte le condizioni ed eseguite eventuali azioni relative, ma attenzione non in modo completo: sono eseguite le azioni seriali o ModBus e relé interni (per ripristinare eventuali stati persi con un Power Off); sono invece non eseguite le azioni MQTT/HTTP (in caso di calo di tensione, non possiamo sapere se il poweroff ha colpito anche i dispositivi remoti e in ogni caso penseranno loro a sé); puoi usare $poweron$ dentro eventualmente le tue condizioni 
- la variabile $poweron$ ritorna non definita, ovvero va a 00 
 
Cosa succede se il collegamento Internet ha qualche problema? 
- l'informazione data/ora non sarà valida (sarà vera/TRUE l'espressione $tyear$<2020
- le condizioni associate a time,tminute ecc saranno IN OGNI CASO valutate al cambio del minuto ora ecc., perché ci possono essere azioni che si vuole siano effettuate anche se l'orologio non è giusto (es. se umidità bassa apri il relé per l'acqua alle 14 e chiudi alle 15, dove magari non importa tanto se l'ora fosse sbagliata ma è più importante che l'irrigazione si apra in ogni caso per un'ora). 
Se ci fossero azioni che non vuoi eseguire se data/ora non è valida, basta usare $tyear$ - ricordiamo infatti che se l'ora/data non è valida, sarà un numero minore di 2020... 
 
Manuale veloce... 
 
ControlHUB Home - il controller programmabile da smartphone, il modo facile per leggere sensori e comandare dispositivi MQTT ModBus HTTP RS232 Web... 
 
Soluzioni Semplici - Home - L'hardware di VisualVision 
(C) 2020 VisualVision