Αν ασχοληθείτε σοβαρά με το smart home, σύντομα θα συναντήσετε τον όρο MQTT. Τι ακριβώς είναι; Πώς δουλεύει; Γιατί θεωρείται απαραίτητο στο Home Assistant και σε κάθε προηγμένο σύστημα αυτοματισμών; Σε αυτόν τον οδηγό εξηγούμε τα πάντα — από τη βασική θεωρία μέχρι πρακτική εγκατάσταση — ώστε ακόμα κι αν είστε αρχάριοι, να καταλάβετε πλήρως το πρωτόκολλο MQTT.
Τι Είναι το MQTT
Το MQTT (Message Queuing Telemetry Transport) είναι ένα ελαφρύ πρωτόκολλο μηνυμάτων σχεδιασμένο για συσκευές IoT. Δημιουργήθηκε το 1999 από τον Andy Stanford-Clark (IBM) και τον Arlen Nipper αρχικά για την παρακολούθηση πετρελαιαγωγών. Σήμερα αποτελεί τη ραχοκοκαλιά του smart home automation.
Σε αντίθεση με το HTTP που χρησιμοποιούν τα περισσότερα web εφαρμογές, το MQTT είναι εξαιρετικά αποδοτικό — ένα μήνυμα μπορεί να είναι μόλις 2 bytes. Αυτό το κάνει ιδανικό για μικροελεγκτές (ESP32, ESP8266) και συσκευές με περιορισμένους πόρους.
Πώς Δουλεύει: Publish/Subscribe
Το MQTT βασίζεται στο μοντέλο Publish/Subscribe (Pub/Sub) και αποτελείται από τρία βασικά στοιχεία:
- Broker: Ο κεντρικός σέρβερ που λαμβάνει, φιλτράρει και διανέμει τα μηνύματα
- Publisher: Η συσκευή που δημοσιεύει (στέλνει) δεδομένα σε ένα topic
- Subscriber: Η συσκευή που εγγράφεται (ακούει) σε ένα topic
Παράδειγμα: Ένας αισθητήρας θερμοκρασίας δημοσιεύει 22.5°C στο topic home/bedroom/temperature. Το Home Assistant, που είναι εγγεγραμμένο σε αυτό το topic, λαμβάνει αυτόματα την τιμή. Δεν χρειάζεται να “ρωτήσει” τον αισθητήρα — το μήνυμα φτάνει μόλις δημοσιευτεί.
Topics: Η Δομή των Μηνυμάτων
Τα MQTT topics λειτουργούν σαν φάκελοι με ιεραρχική δομή χωρισμένη με /:
| Topic | Περιγραφή |
|---|---|
home/living_room/light/state | Κατάσταση φωτός σαλονιού |
home/bedroom/temperature | Θερμοκρασία κρεβατοκάμαρας |
home/garage/door/command | Εντολή πόρτας γκαράζ |
home/+/temperature | Θερμοκρασία ΟΛΩΝ των δωματίων (wildcard) |
home/# | ΟΛΑ τα topics κάτω από home (recursive wildcard) |
Το + αντιστοιχεί σε ένα επίπεδο, ενώ το # σε πολλαπλά επίπεδα. Αυτά τα wildcards κάνουν πολύ εύκολη την ομαδική παρακολούθηση πολλών συσκευών.
Quality of Service (QoS)
Το MQTT υποστηρίζει τρία επίπεδα QoS (ποιότητα υπηρεσίας) που καθορίζουν πόσο αξιόπιστη θα είναι η παράδοση:
| QoS | Ονομασία | Εγγύηση | Χρήση |
|---|---|---|---|
| 0 | At most once | Καμία | Αισθητήρες που στέλνουν συχνά |
| 1 | At least once | Τουλάχιστον 1 φορά | Εντολές φωτισμού |
| 2 | Exactly once | Ακριβώς 1 φορά | Κρίσιμες εντολές (κλειδαριά) |
Στο smart home, τα QoS 0 και 1 χρησιμοποιούνται πιο συχνά. Το QoS 2 χρειάζεται σπάνια αλλά είναι διαθέσιμο για κρίσιμες λειτουργίες ασφαλείας.
Mosquitto: Ο Δημοφιλέστερος Broker
Ο Eclipse Mosquitto είναι ο πιο δημοφιλής MQTT broker στο smart home. Είναι open-source, ελαφρύς, και τρέχει σε οτιδήποτε — από Raspberry Pi μέχρι NAS. Στο Home Assistant μπορείτε να τον εγκαταστήσετε ως add-on σε 2 λεπτά.
Εγκατάσταση στο Home Assistant
- Settings → Add-ons → Add-on Store → “Mosquitto broker”
- Install → Start → Ο broker τρέχει αυτόματα
- Settings → Devices & Services → MQTT → Configure
- Ο broker ακούει στη θύρα 1883 (ή 8883 για SSL)
Standalone Εγκατάσταση (Linux/Docker)
Αν δεν χρησιμοποιείτε Home Assistant OS, μπορείτε να εγκαταστήσετε τον Mosquitto μέσω Docker:
docker run -d --name mosquitto -p 1883:1883 eclipse-mosquitto
Ή σε Debian/Ubuntu: sudo apt install mosquitto mosquitto-clients
MQTT στο Smart Home: Πρακτικές Χρήσεις
Πώς χρησιμοποιείται καθημερινά το MQTT στην πράξη;
- Zigbee2MQTT: Μετατρέπει όλες τις Zigbee συσκευές (Aqara, IKEA, Sgreverse) σε MQTT messages. Κάθε αισθητήρας, λάμπα ή διακόπτης επικοινωνεί μέσω MQTT topics
- Tasmota/ESPHome: Firmware για ESP32/ESP8266 που δημοσιεύει δεδομένα μέσω MQTT. Ιδανικό για DIY αισθητήρες
- Node-RED: Οπτικός αυτοματισμός — διαβάζει MQTT messages και δημιουργεί σενάρια χωρίς κώδικα
- Frigate (NVR): Στέλνει ειδοποιήσεις μέσω MQTT όταν εντοπίζει κίνηση/πρόσωπα με AI
- Shelly συσκευές: Υποστηρίζουν native MQTT χωρίς cloud, για τοπικό έλεγχο
MQTT vs Άλλα Πρωτόκολλα
| Χαρακτηριστικό | MQTT | HTTP/REST | WebSocket | CoAP |
|---|---|---|---|---|
| Μοντέλο | Pub/Sub | Request/Response | Bidirectional | Request/Response |
| Overhead | Ελάχιστο (2 bytes) | Μεγάλο (headers) | Μεσαίο | Μικρό |
| Κατανάλωση | Χαμηλή | Υψηλή | Μέτρια | Χαμηλή |
| IoT κατάλληλο | ✅ Εξαιρετικό | ⚠️ Μέτριο | ⚠️ Μέτριο | ✅ Καλό |
| Smart Home | ✅ Κυρίαρχο | ✅ API | ❌ Σπάνιο | ❌ Σπάνιο |
Ασφάλεια MQTT
Το MQTT δεν είναι εγγενώς ασφαλές — πρέπει να ρυθμίσετε εσείς την ασφάλεια:
- Username/Password: Πάντα ενεργοποιημένο — ποτέ anonymous access
- TLS/SSL: Κρυπτογράφηση στη θύρα 8883 αντί 1883
- ACL (Access Control List): Κάθε χρήστης βλέπει μόνο τα δικά του topics
- Firewall: Μην εκθέτετε τον broker στο internet — μόνο τοπικά ή μέσω VPN
Χρήσιμα Εργαλεία MQTT
- MQTT Explorer: Desktop εφαρμογή για debugging — βλέπετε όλα τα topics σε πραγματικό χρόνο (Windows/Mac/Linux)
- mosquitto_pub / mosquitto_sub: Command line εργαλεία για δοκιμές
- MQTT.fx: Γραφικό client για testing με φίλτρα
- Home Assistant MQTT panel: Ενσωματωμένο debugging εργαλείο
Βέλτιστες Πρακτικές
- Δομημένα topics: Χρησιμοποιήστε ιεραρχία τύπου
home/room/device/property - Retain flag: Ενεργοποιήστε το για καταστάσεις (state) ώστε νέοι subscribers να λαμβάνουν αμέσως την τελευταία τιμή
- Last Will (LWT): Ρυθμίστε ένα “τελευταίο μήνυμα” για κάθε συσκευή — αν αποσυνδεθεί, ο broker ειδοποιεί αυτόματα
- JSON payloads: Στέλνετε δομημένα δεδομένα αντί απλών strings
- Birth message: Κάθε συσκευή δημοσιεύει “online” κατά τη σύνδεση
Συμπέρασμα
Το MQTT είναι η “κοινή γλώσσα” του smart home. Δεν χρειάζεται να είστε προγραμματιστής για να το χρησιμοποιήσετε — εγκαταστήστε τον Mosquitto στο Home Assistant, προσθέστε Zigbee2MQTT, και οι συσκευές σας μιλάνε μεταξύ τους. Σε συνδυασμό με Node-RED μπορείτε να δημιουργήσετε αυτοματισμούς αδύνατους με cloud-based λύσεις. Αν θέλετε ένα αληθινά τοπικό, γρήγορο και αξιόπιστο smart home, το MQTT είναι η βάση.
