Επικύρωση & αποθήκευση
Κατά την αποθήκευση, ελέγχεται κάθε συνάρτηση που τροποποιήθηκε:
- Μη συνδεδεμένη υποχρεωτική είσοδος — μια υποχρεωτική θύρα δεν έχει πηγή.
- Αναντιστοιχία τύπων — σύνδεση ή αντιστοίχιση των οποίων οι τύποι δεδομένων δεν ταιριάζουν (και δεν έχει επιλεγεί μετατροπή τύπου).
- Μη επιτρεπόμενος προορισμός — μια έξοδος που κατευθύνεται σε αντικείμενο στο οποίο απαγορεύεται να γράψει.
- Βρόχος χωρίς μπλοκ χρονισμού — ένας βρόχος ανατροφοδότησης που θα εκτελούνταν επ' άπειρον. Εισαγάγετε ένα μπλοκ χρονισμού για να καταστεί έγκυρος.
Η αποθήκευση επιτρέπεται πάντα — αλλά μια συνάρτηση που αποτυγχάνει στην επικύρωση αποθηκεύεται ως απενεργοποιημένη («απενεργοποίηση λόγω επικύρωσης») και δεν εκτελείται μέχρι να διορθωθεί. Το αποτέλεσμα εμφανίζεται («Αποθηκεύτηκε. Μία συνάρτηση παρουσιάζει σφάλματα και παραμένει απενεργοποιημένη.») και ο πίνακας επικύρωσης καταγράφει κάθε πρόβλημα υποδεικνύοντας ακριβώς την κάρτα, τη θύρα ή τη σύνδεση.
📘 Σημείωση: Αυτό γίνεται σκόπιμα: μπορείτε να αποθηκεύσετε ένα ημιτελές φύλλο λογικής στο τέλος της ημέρας χωρίς να επηρεαστούν οι λειτουργίες που ήδη εκτελούνται.

Παρακολούθηση & συντήρηση
Μεταβείτε στη λειτουργία Monitor για να παρακολουθήσετε τη λογική σε πραγματικό χρόνο: οι τρέχουσες τιμές εμφανίζονται στις θύρες και τις γραμμές σύνδεσης, και κάθε κάρτα αποκτά μια ένδειξη κατάστασης:
| Κατάσταση | Σημασία |
|---|---|
| OK | Κανονική εκτέλεση. Εμφανίζει τον χρόνο της τελευταίας εκτέλεσης. |
| SUSPENDED | Τέθηκε σε παύση από χειροκίνητη παράκαμψη μέσω της εφαρμογής (π.χ. ένας χρήστης κίνησε το ρολό χειροκίνητα). Εμφανίζει αντίστροφη μέτρηση και το κουμπί Συνέχιση τώρα. |
| DISABLED | Απενεργοποιημένη — από εσάς ή λόγω αποτυχίας επικύρωσης. |
| ERROR | Πρόβλημα σε απλή γλώσσα — π.χ. μη ενημερωμένη είσοδος: «αισθητήρας ανενεργός για 18 λεπτά — διατήρηση τιμής εξόδου». |
Ιστορικό εκτέλεσης. Ανοίξτε το ιστορικό μιας συνάρτησης για να δείτε τις τελευταίες εκτελέσεις — καθεμία με τις τιμές εισόδου και τις αντίστοιχες εξόδους — και εξάγετε το αρχείο καταγραφής. Αυτή είναι η απάντηση στο ερώτημα «γιατί κινήθηκαν τα ρολά στις 14:02;».
Δοκιμαστική εκτέλεση / προσομοίωση. Για να πραγματοποιήσετε δοκιμές χωρίς να περιμένετε πραγματικές συνθήκες, εξαναγκάστε μια τιμή εισόδου:
- Ανοίξτε το παράθυρο δοκιμαστικής εκτέλεσης της συνάρτησης και επιλέξτε τη θύρα εισόδου.
- Εισαγάγετε την εξαναγκασμένη τιμή και τη διάρκεια Επαναφορά μετά από (προεπιλογή 15 λεπτά, μέγιστο 1 ώρα).
- Κάντε κλικ στο Εξαναγκασμός τιμής. Η θύρα επισημαίνεται με την ένδειξη SIM, ενώ η πραγματική σύνδεση παραμένει αμετάβλητη στο παρασκήνιο.
Ο διακομιστής επαναφέρει την εξαναγκασμένη τιμή βάσει του δικού του χρονοδιακόπτη — μια κλειστή καρτέλα προγράμματος περιήγησης δεν μπορεί να αφήσει μια προσομοίωση σε εξέλιξη — και τόσο η έναρξη όσο και η λήξη της προσομοίωσης καταγράφονται στο ιστορικό εκτέλεσης.
Διαγραφή συνάρτησης. Η διαγραφή εμφανίζει πρώτα ένα παράθυρο επιπτώσεων: ποιες συναρτήσεις καταναλώνουν τις εξόδους της και ποια ενσωματωμένα γραφικά στοιχεία (widgets) έχει δημιουργήσει — για κάθε widget επιλέγετε αν θα το διατηρήσετε (παραμένει ως κανονική εικονική συσκευή) ή αν θα διαγραφεί επίσης.

Μηχανισμοί ασφαλείας
Η μηχανή λογικής προστατεύει την εγκατάσταση από λογικά σφάλματα:
- Διακοπή βρόχων — ένα όριο βάθους διάδοσης σταματά αλυσίδες σημάτων που ανακυκλώνονται μέσω συσκευών από το να εκτελούνται επ' άπειρον.
- Περιορισμός ρυθμού (Rate limiting) — μια ανεξέλεγκτη συνάρτηση (20 εκτελέσεις εντός 10 δευτερολέπτων) τίθεται αυτόματα σε αναστολή για 60 δευτερόλεπτα και επισημαίνεται στη λειτουργία Monitor, αποτρέποντας την υπερφόρτωση του διαύλου (bus).
- Διαστασιολόγηση — προτείνεται ενδεικτικά όριο περίπου 200 συναρτήσεων ανά εγκατάσταση. Πέρα από αυτό, προτιμήστε τη συνένωση λογικών πράξεων (π.χ. μία Υπολογισμένη τιμή με 8 εισόδους αντί για δέντρο αθροισμάτων) και εξετάστε εάν μέρος της λογικής ανήκει στις ίδιες τις συσκευές KNX.
📘 Σημείωση: Αυτοί οι μηχανισμοί περιορίζουν τη ζημιά, δεν αντικαθιστούν τον ορθό σχεδιασμό. Οτιδήποτε απαιτεί απόλυτη ασφάλεια σε περίπτωση αστοχίας (άνεμος, παγετός) πρέπει να προστατεύεται πρωτίστως μέσω των παραμέτρων του ίδιου του ενεργοποιητή.