Διαφάνεια: Το XIAO ESP32-C6 μας το παραχώρησε η OpenELAB, μαζί με τη Seeed Studio, για ανεξάρτητο τεστ. Δεν πληρωθήκαμε για γνώμη — όσα διαβάσετε παρακάτω είναι τα δικά μας συμπεράσματα, θετικά και αρνητικά. Links για την πλακέτα στο τέλος του άρθρου.
Η ιδέα
Θέλαμε έναν αξιόπιστο εξωτερικό αισθητήρα θερμοκρασίας και υγρασίας για το Home Assistant. Αντί για έτοιμο, τον φτιάξαμε — πάνω σε μια πλακέτα μικρότερη από κέρμα, που κρύβει μέσα της τρία ασύρματα: WiFi, Thread και Zigbee. Και τον συνδέσαμε στο Home Assistant και με τους τρεις τρόπους, με τον ίδιο ακριβώς αισθητήρα, για να δούμε στην πράξη ποιο πρωτόκολλο αξίζει — με τα καλά και τα στραβά του καθενός.
Τι είναι το XIAO ESP32-C6
Το XIAO ESP32-C6 της Seeed Studio βασίζεται στο νέο ESP32-C6 της Espressif. Αυτό που το κάνει ξεχωριστό:
- WiFi 6 (2.4 GHz)
- Bluetooth LE 5
- Ραδιόφωνο 802.15.4 → Thread και Zigbee
Όλα σε μια πλακέτα με USB-C, θέση για μπαταρία (solder pads BAT+/BAT−), και μέγεθος νυχιού. Ιδανικό για να δοκιμάσεις και τα τρία πρωτόκολλα με ένα μόνο board.
Ο σωστός αισθητήρας για εξωτερική χρήση
Το πιο συχνό λάθος στους εξωτερικούς αισθητήρες: παίρνει κανείς έναν κοινό αισθητήρα πλακέτας, τον κλείνει σε στεγανό κουτί, και οι μετρήσεις βγαίνουν λάθος. Χωρίς αερισμό, το κουτί γίνεται θερμοκήπιο και μαζεύει υγρασία.
Γι' αυτό χρησιμοποιήσαμε τον DFRobot SEN0546, με ανοξείδωτο ατσάλινο κέλυφος στο probe. Το probe αντέχει έξω, μπαίνει απευθείας στον αέρα, και μέσα στο κουτί μένουν μόνο τα ηλεκτρονικά.
Χρήσιμη τεχνική λεπτομέρεια: η νέα έκδοση αυτού του αισθητήρα δεν έχει τσιπ SHT — έχει CHT832X (το ξεχωρίζεις από το πράσινο καλώδιο SCL· η παλιά έκδοση με λευκό SCL έχει CHT8305). Παρ' όλα αυτά είναι register-compatible με τα SHT3x, οπότε στο ESPHome δουλεύει μια χαρά με την πλατφόρμα sht3xd στη διεύθυνση 0x44. Δεν χρειάζεται external component.
Το κοινό setup (ESPHome)
Για δίκαιη σύγκριση κρατήσαμε τα πάντα ίδια: ίδια πλακέτα, ίδιος αισθητήρας, ίδιο firmware βάσης (ESPHome). Αλλάζει μόνο το πρωτόκολλο.
Δύο πράγματα να προσέξετε:
- I2C pins στο XIAO ESP32-C6:
SDA = GPIO22(D4),SCL = GPIO23(D5) — όπως στο pinout της Seeed. Προσοχή να μην τα μπερδέψετε. - Στο ESPHome, το C6 απαιτεί framework ESP-IDF (όχι Arduino). Αλλιώς δεν χτίζει.
esp32:
board: seeed_xiao_esp32c6
framework:
type: esp-idf
i2c:
sda: GPIO22
scl: GPIO23
frequency: 100kHz
scan: true
sensor:
- platform: sht3xd
address: 0x44
update_interval: 60s
temperature:
name: "SHT Temperature"
id: sht_temperature
humidity:
name: "SHT Humidity"
id: sht_humidity
Αρχεία για download
Τα πλήρη ESPHome configs που χρησιμοποιήσαμε, καθαρισμένα από κωδικούς. Οι κωδικοί μπαίνουν στο secrets.yaml του ESPHome — δείτε το secrets.example.yaml. Οδηγίες βήμα-βήμα στο README μέσα στο ZIP.
- shh-c6-wifi.yaml WiFi · native API, web server, OTA
- shh-c6-thread.yaml Thread · openthread MTD, API πάνω από IPv6
- shh-c6-zigbee.yaml Zigbee · native zigbee component,
report: force - partitions_zb.csv partition table για το Zigbee build — δίπλα στο YAML
- secrets.example.yaml πρότυπο για το
secrets.yaml - xiao-esp32-c6-esphome.zip όλα μαζί + README
Γύρος 1: WiFi
Το πιο εύκολο. Με ESPHome και το native API, μόλις ανέβει το firmware, το Home Assistant τη βρίσκει μόνο του — καμία γέφυρα, κανένα dongle. Σε δύο λεπτά έχεις θερμοκρασία και υγρασία στο dashboard.
Πλήρες config: shh-c6-wifi.yaml
Υπέρ: ευκολία, ταχύτητα, auto-discovery, απευθείας σύνδεση στο HA.
Κατά (και μάλιστα κρίσιμα για εξωτερικό):
- Κατανάλωση: το WiFi τρώει πολύ ρεύμα σε κάθε wake — άσχημο για αισθητήρα με μπαταρία.
- Χωρίς mesh: όσο φτάνει το router σου, τόσο.
Στο δικό μας σημείο, το WiFi κρατούσε ~40% σήμα στα 9 μέτρα — έφτανε πιο μακριά από τα άλλα δύο.
Γύρος 2: Thread
Εδώ αρχίζει το ενδιαφέρον — και τα δύσκολα.
Το Thread δεν συνδέεται στο router. Χρειάζεται Thread Border Router. Χρησιμοποιήσαμε το Sonoff ZBDongle-E, αλλάζοντας το firmware του σε OpenThread RCP, και στήσαμε τον Border Router μέσα στο Home Assistant με το OpenThread Border Router add-on.
Το πιο πολύτιμο tip όλου του project
Το OTBR add-on δεν επικοινωνούσε καθόλου με το dongle — συνεχώς Device did not respond to reset. Δοκιμάσαμε baudrate, reflash, power-cycle. Η λύση ήταν ένα και μόνο toggle:
Hardware flow control: OFF στο OpenThread Border Router add-on. Με ON, το ZBDongle-E ως Thread radio δεν απαντάει. Με OFF, ξεκίνησε αμέσως και έγινε leader / Primary Border Router.
Ρυθμίσεις add-on που δουλέψανε: device = το by-id path του dongle, Baudrate 460800, Hardware flow control OFF.
ha-thread-9b9c με 1 Border Router — το ZBDongle-E.Το firmware & το TLV
- Reflash του ZBDongle-E σε OpenThread RCP μέσω του web flasher darkxst.github.io/silabs-firmware-builder (Chrome/Edge).
- Στο ESPHome,
openthread:μεdevice_type: MTDκαι το TLV dataset του δικτύου (Developer Tools → Actions →otbr.get_active_dataset_tlvs).
network:
enable_ipv6: true
openthread:
device_type: MTD
tlv: !secret thread_tlv # από το HA: Developer Tools -> otbr.get_active_dataset_tlvs
api: # μιλάει στο HA πάνω από Thread/IPv6
Πλήρες config: shh-c6-thread.yaml (το TLV στο secrets.yaml)
Μόλις μπήκε στο δίκτυο, ο αισθητήρας εμφανίστηκε στο HA μέσω native API και κατέγραφε κανονικά.
Υπέρ: χαμηλή κατανάλωση, mesh, δρόμος προς Matter, σταθερό μόλις μπει.
Κατά: πιο σύνθετο στήσιμο (θέλεις Border Router). Σε κάποιες περιπτώσεις το C6 προσπαθεί να πάρει ρόλο leader και να αναστατώσει το υπάρχον Thread mesh — το device_type: MTD το περιορίζει.
Εμβέλεια: ως απλό end-device (χωρίς ενδιάμεσο router), έχανε τη σύνδεση πάνω από τα ~7,5 μέτρα.
Γύρος 3: Zigbee
Το πιο ώριμο οικοσύστημα smart home — αλλά και το πιο προβληματικό στο στήσιμο εδώ.
Γυρίσαμε το ίδιο dongle πίσω σε Zigbee (EZSP) και στο ESPHome βάλαμε το native zigbee component. Απαιτήσεις:
- ESPHome 2026.4.0+ (εμείς σε 2026.8.2).
- Ειδικό partition table (
partitions_zb.csv). - Το
report:δεν παίρνειtrue— οι έγκυρες τιμές είναιforce,enable,coordinator,default. Χρησιμοποιήσαμεreport: force.
esp32:
board: seeed_xiao_esp32c6
partitions: partitions_zb.csv
framework:
type: esp-idf
zigbee:
sensor:
- platform: sht3xd
address: 0x44
update_interval: 60s
temperature:
name: "SHT Temperature"
id: sht_temperature
report: force
humidity:
name: "SHT Humidity"
id: sht_humidity
report: force
Πλήρες config: shh-c6-zigbee.yaml + partitions_zb.csv
Στο Zigbee δεν υπάρχει IP δίκτυο: οι τιμές πάνε στον coordinator (ZBDongle-E) μέσω Zigbee clusters, όχι μέσω HA API. Τα παράγωγα (dew point, absolute humidity) που υπολογίζονται τοπικά δεν εκτίθενται εύκολα στο Zigbee — π.χ. η απόλυτη υγρασία έμεινε «Άγνωστη».
Το δεύτερο μεγάλο εύρημα: η τροφοδοσία
Το C6 δεν έκανε join με τροφοδοτικό κινητού ούτε με power bank. Έκανε join μόνο με τροφοδοτικό πάγκου ή USB υπολογιστή.
Ο λόγος: το ESP32-C6 τραβάει ρεύμα-αιχμή 200–300 mA στη ραδιοεκπομπή, και το join είναι η πιο απαιτητική στιγμή (συνεχής σάρωση + εκπομπή). Τα φτηνά τροφοδοτικά/power banks δεν προλαβαίνουν να δώσουν το peak → brownout → Failed to join.
Αν σας βγάζει «Failed to join»: πριν ψάξετε οτιδήποτε άλλο, αλλάξτε τροφοδοτικό. Για λειτουργία με μπαταρία, ένας πυκνωτής 100–470 µF στο 3V3/GND βοηθάει να καλυφθεί το peak.
Το join θέλει κοντινή απόσταση
Το Zigbee έχει chicken-and-egg: μια συσκευή δεν κάνει join στα όρια της εμβέλειας, ακόμα κι αν θα δούλευε εκεί αφού μπει. Στα 9 μέτρα δεν έπιανε καθόλου· στα 4–6,5 μέτρα ζευγάρωσε αμέσως. Ο κανόνας: pair κοντά στον coordinator, μετά μετακίνησε στην τελική θέση.
Πραγματικές μετρήσεις εμβέλειας (Zigbee)
Όλες με τροφοδοτικό πάγκου, ίδιος χώρος, ίδιος coordinator (ZBDongle-E). Σημειώνουμε και τι υπάρχει ανάμεσα, γιατί ένας τοίχος μετράει.
| Απόσταση | Εμπόδια | LQI | RSSI | Κατάσταση |
|---|---|---|---|---|
| 4 m | — | 255 | −35 dBm | Τέλειο (εδώ έγινε pair) |
| 6,5 m | — | — | — | Pair OK |
| 7 m | 1 γυψοσανίδα | 160 | −60 dBm | Άριστα |
| 8 m | 1 γυψοσανίδα + τοίχος | 108 | −73 dBm | Οριακό / αστάθεια |
| 9 m | — | χάθηκε | — | Χάθηκε |
Τι δείχνουν: μια γυψοσανίδα σχεδόν δεν πειράζει το σήμα (στα 7 m ακόμα −60 dBm). Ο τοίχος όμως κοστίζει πολύ (στα 8 m έπεσε στα −73 dBm). Στα όρια (8 m) το ZHA κατέγραψε 229 retries και 76 failed μεταδόσεις — από εκεί και η αστάθεια. Το C6 εκπέμπει μόλις ~+3 dBm, οπότε για μεγαλύτερες αποστάσεις θέλει ενδιάμεσο Zigbee router.
Η σύγκριση
Σημαντικό πλαίσιο: Δεν μετράμε «ποιο πρωτόκολλο είναι καλύτερο γενικά». Μετράμε τι δίνει το C6 έτσι όπως το στήνει ο περισσότερος κόσμος, out of the box, με ό,τι εξοπλισμό έχει στο σπίτι — έναν Border Router/coordinator, χωρίς ενδιάμεσο mesh router. Το Thread ειδικά είναι φτιαγμένο για mesh, οπότε με έναν επιπλέον κόμβο η εικόνα αλλάζει.
XIAO ESP32-C6 · WiFi vs Thread vs Zigbee
Ίδιος αισθητήρας (CHT832X), ίδιο σπίτι, out of the box — Smart Home Hellas
| Κριτήριο | WiFi | Thread | Zigbee |
|---|---|---|---|
| Ευκολία στησίματος | ★★★ | ★ | ★★ |
| Κατανάλωση (μπαταρία) | ★ | ★★★ | ★★★ |
| Σύνδεση στο HA | Απευθείας | Απευθείας | ZHA/Z2M |
| Ωριμότητα (ESPHome) | ★★★ | ★★ | ★ |
| Εμβέλεια (μετρημένη) | 40% @ 9 m | cutoff ~7,5 m | καλό ως 7 m |
Πρακτικά:
- Κοντά στο σπίτι, με ρεύμα → WiFi, τελείωσες γρήγορα.
- Μακριά ή με μπαταρία και mesh → Thread, με το βλέμμα στο Matter — αλλά αξίζει και δεύτερος κόμβος για να δουλέψει το mesh.
- Έχεις ήδη δίκτυο Zigbee → παίζει, αλλά κάνε pair κοντά και φρόντισε καλή τροφοδοσία.
Ετυμηγορία για την πλακέτα
Το XIAO ESP32-C6 είναι εντυπωσιακή αξία: τρία ασύρματα σε ένα μικροσκοπικό board, ιδανικό για να στήσεις έναν πραγματικό αισθητήρα και να μάθεις και τα τρία πρωτόκολλα με ένα μόνο εξάρτημα.
Τα υπέρ: WiFi 6 + Thread + Zigbee/Matter, μικρό, USB-C, θέση για μπαταρία, εξαιρετική τιμή.
Τα ψεγάδια (ειλικρινά):
- Θέλει ESP-IDF στο ESPHome.
- Το Zigbee είναι το πιο εύθραυστο κομμάτι — σύνταξη που αλλάζει, ευαισθησία στην τροφοδοσία στο join, χαμηλή ισχύς εκπομπής.
- Αν του βάλεις πάνω module LoRa (Wio-SX1262), σου μένουν μόλις 3 ελεύθερα GPIO.
Συνολικά: το C6 λάμπει σε WiFi και Thread. Στο Zigbee δουλεύει, αλλά με προσοχή στην τροφοδοσία και στην απόσταση pairing. Ως εργαλείο για DIY αισθητήρες και για να πειραματιστείς με τα πρωτόκολλα του Home Assistant, το προτείνουμε.
Σύνοψη ευρημάτων (γρήγορη αναφορά)
- CHT832X (DFRobot SEN0546, πράσινο SCL) → ESPHome
sht3xd@0x44. - I2C στο C6: SDA
GPIO22(D4), SCLGPIO23(D5). Framework esp-idf υποχρεωτικό. - Thread + ZBDongle-E: Hardware flow control OFF στο OTBR add-on — αλλιώς δεν επικοινωνεί. Baudrate 460800.
- Zigbee:
report: force(όχιtrue), ESPHome 2026.4+,partitions_zb.csv. - Zigbee join: θέλει καλή τροφοδοσία (όχι φτηνό τροφοδοτικό/power bank) και κοντινή απόσταση.
- Εμβέλεια (out of the box): WiFi > Zigbee ≈ Thread.
- Αρχεία: τα πλήρη configs για WiFi / Thread / Zigbee και το partition table στο κουτί «Αρχεία για download».
Όλο το project και σε βίντεο: δείτε το στο YouTube.
Πού θα το βρείτε
- OpenELAB: Seeed Studio XIAO ESP32-C6 στο openelab.io
- Seeed Studio: XIAO ESP32-C6 στο seeedstudio.com
- Αισθητήρας: DFRobot SEN0546 (ανοξείδωτο probe θερμοκρασίας/υγρασίας, I2C)
Χρήσιμα εργαλεία/αναφορές:
- Silabs firmware web flasher (ZBDongle-E, Thread/Zigbee): darkxst.github.io/silabs-firmware-builder
- ESPHome Zigbee component: esphome.io/components/zigbee
Η OpenELAB είναι online κατάστημα ηλεκτρονικών για makers (development boards, αισθητήρες, modules για smart home και IoT), με αποθήκη στο Μόναχο — στέλνουν και στην Ελλάδα. Το προϊόν παραχωρήθηκε από OpenELAB / Seeed Studio για ανεξάρτητο τεστ· οι απόψεις και τα συμπεράσματα είναι αποκλειστικά δικά μας.
Το ίδιο dongle που έπαιξε Thread Border Router και Zigbee coordinator σε αυτό το τεστ. Chip EFR32MG21, εξωτερική κεραία, έτοιμο για ZHA και Zigbee2MQTT.
Δείτε το προϊόν →Έχετε δοκιμάσει το XIAO ESP32-C6 σε Home Assistant; Πείτε μας στα σχόλια του βίντεο — WiFi, Thread ή Zigbee;