MQTT για Shelly και Sonoff: από τις μετρήσεις στους αυτοματισμούς
Το MQTT συνδέει συσκευές Shelly και Sonoff με εφαρμογές, βάσεις δεδομένων και αυτοματισμούς. Δείτε πώς σχεδιάζεται μια ασφαλής και αξιόπιστη διασύνδεση για πραγματικές επιχειρησιακές ανάγκες.

Το MQTT για Shelly και Sonoff είναι ένας ελαφρύς τρόπος ανταλλαγής μηνυμάτων ανάμεσα σε συσκευές και πληροφοριακά συστήματα. Οι συσκευές στέλνουν μετρήσεις ή δέχονται εντολές, ένας διαμεσολαβητής MQTT διαχειρίζεται την επικοινωνία και μια εφαρμογή αξιοποιεί τα δεδομένα σε πίνακες, ειδοποιήσεις και αυτοματισμούς.
Η αξία του MQTT δεν βρίσκεται μόνο στο ότι ένας αισθητήρας μπορεί να στείλει μια θερμοκρασία ή ένας διακόπτης να δεχτεί μια εντολή. Βρίσκεται κυρίως στο τι συμβαίνει μετά. Αν τα δεδομένα μείνουν σε μια έτοιμη εφαρμογή, η χρήση τους είναι περιορισμένη. Αν όμως συνδεθούν με αποθήκευση, επιχειρησιακούς κανόνες και άλλα συστήματα, μπορούν να υποστηρίξουν πραγματικές διαδικασίες.
Πώς συνδέονται τα Shelly και Sonoff με το MQTT
Η διασύνδεση Shelly με MQTT και η διασύνδεση Sonoff με MQTT βασίζονται στην ίδια γενική λογική. Κάθε συσκευή συνδέεται σε έναν διαμεσολαβητή MQTT, δηλαδή σε έναν εξυπηρετητή που παραλαμβάνει και διανέμει μηνύματα. Η συσκευή μπορεί να δημοσιεύει δεδομένα, να λαμβάνει εντολές ή να κάνει και τα δύο.
Μια εφαρμογή, όπως ένας πίνακας παρακολούθησης ή ένα σύστημα αυτοματισμού, εγγράφεται στα μηνύματα που την ενδιαφέρουν. Έτσι, η συσκευή δεν χρειάζεται να γνωρίζει ποιος θα χρησιμοποιήσει τη μέτρηση. Στέλνει το μήνυμα στον διαμεσολαβητή και οι κατάλληλοι αποδέκτες το λαμβάνουν.
Η βασική αρχιτεκτονική: συσκευές, διαμεσολαβητής και θέματα
Στο MQTT η επικοινωνία οργανώνεται γύρω από τα «θέματα», δηλαδή ονομαστικές διαδρομές στις οποίες δημοσιεύονται και από τις οποίες διαβάζονται μηνύματα. Ένα απλό παράδειγμα είναι:
κτίριο/όροφος1/γραφείο3/θερμοκρασία
κτίριο/όροφος1/γραφείο3/κατάσταση
κτίριο/όροφος1/γραφείο3/εντολή
Ένας αισθητήρας Shelly μπορεί να δημοσιεύει τη θερμοκρασία του στο πρώτο θέμα. Μια συσκευή Sonoff μπορεί να δημοσιεύει την κατάστασή της στο δεύτερο και να παρακολουθεί το τρίτο για να ενεργοποιήσει ή να απενεργοποιήσει ένα φορτίο. Η εφαρμογή που εμφανίζει τις μετρήσεις εγγράφεται στα θέματα κατάστασης, ενώ μια υπηρεσία αυτοματισμού μπορεί να δημοσιεύει εντολές.
Η ονοματοδοσία χρειάζεται συνέπεια από την αρχή. Καλό είναι να συμφωνηθούν πριν εγκατασταθούν πολλές συσκευές:
- η ταυτότητα της εγκατάστασης ή του κτιρίου,
- ο χώρος και η συσκευή,
- το είδος της μέτρησης ή της εντολής,
- η μορφή του μηνύματος και οι μονάδες μέτρησης.
Ο διαμεσολαβητής MQTT δεν αποθηκεύει από μόνος του το ιστορικό των δεδομένων με τρόπο κατάλληλο για αναφορές. Διαχειρίζεται τις συνδέσεις και τη διανομή των μηνυμάτων. Η αποθήκευση, η επεξεργασία, τα δικαιώματα πρόσβασης και η επιχειρησιακή λογική χρειάζονται ξεχωριστό επίπεδο λογισμικού.
Από την ένδειξη του αισθητήρα σε χρήσιμη επιχειρησιακή πληροφορία
Μια μέτρηση αποκτά αξία όταν μπορεί να απαντήσει σε ένα πρακτικό ερώτημα. Πόση ενέργεια καταναλώθηκε; Πότε ξεπέρασε η θερμοκρασία ένα όριο; Ποια συσκευή αποσυνδέθηκε; Πόσες ώρες λειτούργησε ένας εξοπλισμός; Για να απαντηθούν αυτά τα ερωτήματα, τα μηνύματα MQTT πρέπει να μετατραπούν σε δεδομένα που αποθηκεύονται και αναζητούνται.
Η ροή συνήθως περιλαμβάνει ένα ενδιάμεσο πρόγραμμα που λαμβάνει το μήνυμα, ελέγχει τη μορφή του και καταγράφει:
- την ταυτότητα της συσκευής και του χώρου,
- την τιμή και τη μονάδα μέτρησης,
- την ώρα λήψης και, όπου υπάρχει, την ώρα μέτρησης,
- την κατάσταση σύνδεσης και την ποιότητα του μηνύματος.
Η χρονική σήμανση θέλει προσοχή. Η ώρα που έφτασε ένα μήνυμα στον διαμεσολαβητή μπορεί να διαφέρει από την ώρα που μετρήθηκε η τιμή στη συσκευή. Αν το σύστημα κρατά μόνο μία χρονική ένδειξη, η ανάλυση καθυστερημένων ή επαναληπτικών δεδομένων γίνεται δύσκολη.
Για λίγες συσκευές και μικρό ιστορικό μπορεί να αρκεί μια απλή αποθήκευση. Σε μεγαλύτερη εγκατάσταση χρειάζεται σχεδιασμός βάσης δεδομένων με σαφή διαχωρισμό μεταξύ συσκευών, μετρήσεων, συμβάντων και κανόνων. Ο σχεδιασμός βάσης δεδομένων για επιχειρήσεις βοηθά ώστε η λύση να μη στηρίζεται σε πρόχειρους πίνακες που δυσκολεύουν τις αναφορές αργότερα.
Είναι επίσης χρήσιμο να διαχωρίζονται τα ζωντανά δεδομένα από το ιστορικό. Ο πίνακας παρακολούθησης χρειάζεται την τρέχουσα κατάσταση με μικρή καθυστέρηση. Μια αναφορά κατανάλωσης χρειάζεται συγκεντρωμένα δεδομένα ανά ώρα, ημέρα ή περίοδο. Τα δύο προβλήματα δεν λύνονται πάντα με τον ίδιο τρόπο.
Πότε μια μέτρηση γίνεται αυτοματοποιημένη ενέργεια
Μια τιμή μπορεί να ενεργοποιήσει έναν απλό κανόνα: αν η θερμοκρασία ξεπεράσει ένα όριο, στείλε ειδοποίηση. Αν η συσκευή δηλώσει διαρροή ή υπερθέρμανση, καταχώρισε συμβάν και ενημέρωσε τον υπεύθυνο. Αν ένας χώρος παραμείνει κενός, απενεργοποίησε συγκεκριμένο εξοπλισμό.
Οι απλοί κανόνες συνήθως περιλαμβάνουν μια συνθήκη και μια ενέργεια. Οι επιχειρησιακές ροές είναι διαφορετικές. Μπορεί να απαιτούν επιβεβαίωση από χρήστη, έλεγχο ωραρίου, διαφορετικά δικαιώματα ανά εγκατάσταση, καταγραφή κάθε αλλαγής και χειρισμό αποτυχίας. Για παράδειγμα, η εντολή προς έναν διακόπτη δεν αρκεί. Το σύστημα πρέπει να επιβεβαιώσει ότι η συσκευή εκτέλεσε την εντολή και να ενημερώσει τον υπεύθυνο αν δεν το έκανε.
Σε μια επιχείρηση η ίδια πληροφορία μπορεί να ενημερώνει και άλλο σύστημα. Ένα σύστημα επιχειρησιακής διαχείρισης (ERP) μπορεί να χρειάζεται δεδομένα λειτουργίας εξοπλισμού, ενώ ένα σύστημα διαχείρισης πελατειακών σχέσεων (CRM) μπορεί να συνδέεται με ειδοποιήσεις ή ιστορικό εξυπηρέτησης. Σε αυτό το σημείο η έξυπνη αυτοματοποίηση δεν είναι απλώς ένας κανόνας «αν συμβεί αυτό, κάνε εκείνο». Είναι συντονισμός δεδομένων, ενεργειών και υπευθύνων.
Πώς σχεδιάζεται ένα αξιόπιστο και ασφαλές σύστημα MQTT
Η ασφάλεια MQTT ξεκινά από τον διαμεσολαβητή και τις συσκευές, όχι από το τέλος της εγκατάστασης. Κάθε συσκευή ή κατηγορία χρηστών χρειάζεται ταυτοποίηση. Τα δικαιώματα πρέπει να περιορίζουν ποιος μπορεί να διαβάσει ή να γράψει σε κάθε θέμα. Μια συσκευή που δημοσιεύει θερμοκρασία δεν χρειάζεται δικαίωμα να στέλνει εντολές σε όλες τις άλλες συσκευές.
- Χρησιμοποιήστε διαφορετικά διαπιστευτήρια αντί για έναν κοινό κωδικό.
- Προτιμήστε κρυπτογραφημένη σύνδεση, ειδικά όταν η επικοινωνία περνά από μη έμπιστο δίκτυο.
- Περιορίστε την έκθεση του διαμεσολαβητή στο διαδίκτυο και επιτρέψτε μόνο τις απαραίτητες συνδέσεις.
- Καταγράφετε συνδέσεις, αποσυνδέσεις, αποτυχημένες προσπάθειες και εντολές.
- Ελέγχετε τα μηνύματα πριν αποθηκευτούν ή χρησιμοποιηθούν σε αυτοματισμό.
Η αξιοπιστία χρειάζεται εξίσου συγκεκριμένο σχεδιασμό. Οι συσκευές μπορεί να χάσουν προσωρινά τη σύνδεσή τους, να επανασυνδεθούν ή να στείλουν ξανά ένα μήνυμα. Για αυτό το σύστημα πρέπει να αναγνωρίζει διπλές εγγραφές, να χειρίζεται καθυστερημένες τιμές και να ξεχωρίζει το «δεν υπάρχει νέα μέτρηση» από το «η τιμή είναι μηδέν».
Χρειάζεται επίσης πολιτική για την επανασύνδεση. Πότε ξαναδοκιμάζει η συσκευή; Πόσο διάστημα θεωρείται μια μέτρηση έγκυρη; Ποιος ενημερώνεται όταν μια συσκευή παραμένει εκτός σύνδεσης; Το MQTT βοηθά στη μεταφορά των μηνυμάτων, αλλά δεν αποφασίζει μόνο του τις απαντήσεις σε αυτά τα ερωτήματα.
Για πρακτικές αρχές ασφαλούς σχεδιασμού αξίζει να εξετάσετε και την ασφάλεια των μικρών επιχειρήσεων απέναντι σε συνηθισμένες επιθέσεις. Οι συνδεδεμένες συσκευές δεν είναι αόρατες επειδή είναι μικρές.
Έτοιμη σύνδεση ή προσαρμοσμένο ενδιάμεσο λογισμικό;
Μια έτοιμη σύνδεση μπορεί να αρκεί όταν υπάρχουν λίγες συσκευές, ένας απλός κανόνας και μικρές απαιτήσεις αποθήκευσης. Είναι λογικό σημείο εκκίνησης για μια δοκιμή ή για έναν περιορισμένο αυτοματισμό. Δεν χρειάζεται κάθε εγκατάσταση ξεχωριστή εφαρμογή.
Προσαρμοσμένο ενδιάμεσο λογισμικό ή διεπαφή προγραμματισμού εφαρμογών (API) χρειάζεται όταν τα δεδομένα πρέπει να περάσουν από ελέγχους, μετασχηματισμούς ή πολλαπλά συστήματα. Ενδείξεις είναι:
- διαφορετικές μορφές μηνυμάτων από Shelly και Sonoff,
- σύνδεση με ERP, CRM, αποθήκη ή σύστημα συντήρησης,
- ρόλοι χρηστών και διαφορετικά δικαιώματα εντολών,
- ιστορικό, αναφορές και ανάγκη ελέγχου κάθε αλλαγής,
- κανόνες που περιλαμβάνουν εξαιρέσεις, εγκρίσεις ή διαδοχικά βήματα.
Σε αυτές τις περιπτώσεις, το MQTT παραμένει το επίπεδο επικοινωνίας, ενώ η επιχειρησιακή λογική μεταφέρεται σε υπηρεσία ή εφαρμογή. Τα API ως σύνδεσμοι μεταξύ συστημάτων μπορούν να μεταφέρουν τις πληροφορίες εκεί όπου χρειάζονται. Αν απαιτείται ειδικός πίνακας, διαχείριση χρηστών ή σύνθετη ροή, μια προσαρμοσμένη διαδικτυακή εφαρμογή δίνει περισσότερο έλεγχο από μια γενική έτοιμη οθόνη.
Το πρακτικό συμπέρασμα για ένα έργο Shelly και Sonoff
Η σωστή επιλογή δεν ξεκινά από το αν μια συσκευή υποστηρίζει MQTT. Ξεκινά από το τι πρέπει να συμβαίνει στα δεδομένα μετά τη λήψη τους. Καταγράψτε τις συσκευές, τα θέματα, τα μηνύματα, τους κανόνες και τα συστήματα προορισμού πριν επιλέξετε λύση.
Για έναν απλό αυτοματισμό αρκεί συχνά μια έτοιμη σύνδεση. Όταν όμως οι μετρήσεις επηρεάζουν λειτουργίες, ανθρώπους και επιχειρησιακές αποφάσεις, χρειάζεται σχεδιασμός δεδομένων, ασφάλεια και σαφής αρχιτεκτονική. Εκεί η ομάδα της Saikō μπορεί να βοηθήσει στην ανάλυση της ροής και στην επιλογή ανάμεσα σε έτοιμη διασύνδεση, ενδιάμεσο λογισμικό ή προσαρμοσμένη εφαρμογή.