Validazione e salvataggio
Al salvataggio, ogni funzione modificata viene verificata:
- Ingresso richiesto non collegato — una porta obbligatoria non ha alcuna sorgente.
- Tipo non corrispondente — un collegamento o binding con tipi incompatibili (senza alcuna conversione impostata).
- Destinazione non consentita — un'uscita indirizzata a un oggetto su cui non deve scrivere.
- Ciclo senza blocco temporale — un ciclo di feedback continuo non delimitato; inserire un blocco temporale per renderlo valido.
Il salvataggio è sempre consentito — ma una funzione che non supera la validazione viene salvata come disabilitata ("disabilitata da validazione") e non viene eseguita finché il problema non viene risolto. Il risultato viene segnalato ("Salvato. Una funzione presenta problemi e rimane disattivata.") e il pannello di validazione elenca ogni anomalia, indicando la scheda, la porta o il collegamento esatto.
📘 Nota: Questa scelta è intenzionale: è possibile salvare una logica incompleta a fine giornata senza interrompere ciò che è già operativo.

Monitoraggio e manutenzione
Impostare la vista su Monitor per osservare l'esecuzione della logica: i valori in tempo reale compaiono su porte e collegamenti, e ogni scheda mostra uno stato di integrità:
| Stato | Significato |
|---|---|
| OK | Funzionamento normale; visualizza l'orario dell'ultima esecuzione. |
| SUSPENDED | Messa in pausa da un comando manuale dall'app (un utente ha azionato manualmente la tapparella). Mostra il conto alla rovescia e un pulsante Riprendi ora. |
| DISABLED | Disattivata — manualmente o a seguito della validazione. |
| ERROR | Segnalazione di errore in chiaro — ad es. ingresso non aggiornato: "sensore non raggiungibile da 18 min — valore di uscita mantenuto". |
Cronologia di esecuzione. Aprendo la cronologia di una funzione è possibile esaminare le ultime esecuzioni — ciascuna con i relativi valori di ingresso e uscite generate — ed esportare il registro. Questo permette di verificare il motivo esatto di ogni azione (ad esempio, l'azionamento delle tapparelle a un orario specifico).
Test forzato / simulazione. Per eseguire test senza attendere le condizioni reali, è possibile forzare un valore di ingresso:
- Aprire la finestra di test della funzione e selezionare la porta di ingresso.
- Inserire il valore forzato e la durata di Ripristina dopo (predefinita a 15 minuti, massimo 1 ora).
- Fare clic su Forza il valore. La porta viene contrassegnata come SIM; il binding reale sottostante rimane inalterato.
Il server ripristina automaticamente il valore tramite un timer interno — la chiusura del browser non lascia la simulazione attiva — e sia l'inizio che la fine del test compaiono nella cronologia di esecuzione.
Eliminazione di una funzione. Il comando Elimina mostra prima una finestra di impatto: indica quali funzioni utilizzano le sue uscite e quali widget materializzati sono stati generati — per ogni widget è possibile scegliere se mantenerlo (rimane come dispositivo virtuale standard) o eliminarlo.

Meccanismi di sicurezza
Il motore logico protegge l'installazione da errori di configurazione:
- Interruzione dei cicli — un limite alla profondità di propagazione impedisce alle catene cicliche tra dispositivi di proseguire all'infinito.
- Limitazione della frequenza — una funzione che esegue 20 cicli entro 10 secondi viene automaticamente sospesa per 60 secondi e segnalata in modalità Monitor, evitando di saturare il bus.
- Dimensionamento — come linea guida generale si consigliano circa 200 funzioni per installazione. Oltre questa soglia, è preferibile raggruppare i calcoli (un valore calcolato con 8 ingressi invece di una struttura ad albero) e valutare se alcune logiche debbano essere gestite direttamente dai dispositivi.
📘 Nota: Questi meccanismi limitano i rischi ma non sostituiscono una corretta progettazione. Le funzioni critiche per la sicurezza (come protezione vento o antigelo) devono essere configurate anche nei parametri propri dell'attuatore.