Διαφάνεια: Το XIAO ESP32-C6 μας το παραχώρησε η OpenELAB, μαζί με τη Seeed Studio, για ανεξάρτητο τεστ. Δεν πληρωθήκαμε για γνώμη — όσα διαβάσετε παρακάτω είναι τα δικά μας συμπεράσματα, θετικά και αρνητικά. Links για την πλακέτα στο τέλος του άρθρου.

Ένας αισθητήρας στο Home Assistant — WiFi, Thread, Zigbee: ποιο κερδίζει; XIAO ESP32-C6, σε συνεργασία με OpenELAB

Η ιδέα

Θέλαμε έναν αξιόπιστο εξωτερικό αισθητήρα θερμοκρασίας και υγρασίας για το Home Assistant. Αντί για έτοιμο, τον φτιάξαμε — πάνω σε μια πλακέτα μικρότερη από κέρμα, που κρύβει μέσα της τρία ασύρματα: WiFi, Thread και Zigbee. Και τον συνδέσαμε στο Home Assistant και με τους τρεις τρόπους, με τον ίδιο ακριβώς αισθητήρα, για να δούμε στην πράξη ποιο πρωτόκολλο αξίζει — με τα καλά και τα στραβά του καθενός.

Το στεγανό κουτί ανοιχτό: το XIAO ESP32-C6 καλωδιωμένο στο probe που βγαίνει από τον στυπιοθλίπτη
Μέσα στο κουτί: μόνο το C6 και τέσσερα καλώδια προς το probe.
Το στεγανό κουτί κλειστό, με στυπιοθλίπτες και το ανοξείδωτο probe να προεξέχει
Κλειστό και στεγανό: USB-C από τη μία, probe από την άλλη.

Τι είναι το 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.

Το XIAO ESP32-C6 δίπλα σε κέρμα 2 ευρώ — μικρότερο από το κέρμα
Το XIAO ESP32-C6 δίπλα σε δίευρο. WiFi 6, BLE 5 και 802.15.4 (Thread/Zigbee) σε 21 × 17,8 mm.

Ο σωστός αισθητήρας για εξωτερική χρήση

Το πιο συχνό λάθος στους εξωτερικούς αισθητήρες: παίρνει κανείς έναν κοινό αισθητήρα πλακέτας, τον κλείνει σε στεγανό κουτί, και οι μετρήσεις βγαίνουν λάθος. Χωρίς αερισμό, το κουτί γίνεται θερμοκήπιο και μαζεύει υγρασία.

Γι' αυτό χρησιμοποιήσαμε τον DFRobot SEN0546, με ανοξείδωτο ατσάλινο κέλυφος στο probe. Το probe αντέχει έξω, μπαίνει απευθείας στον αέρα, και μέσα στο κουτί μένουν μόνο τα ηλεκτρονικά.

Χρήσιμη τεχνική λεπτομέρεια: η νέα έκδοση αυτού του αισθητήρα δεν έχει τσιπ SHT — έχει CHT832X (το ξεχωρίζεις από το πράσινο καλώδιο SCL· η παλιά έκδοση με λευκό SCL έχει CHT8305). Παρ' όλα αυτά είναι register-compatible με τα SHT3x, οπότε στο ESPHome δουλεύει μια χαρά με την πλατφόρμα sht3xd στη διεύθυνση 0x44. Δεν χρειάζεται external component.

Το ανοξείδωτο probe του DFRobot SEN0546 με το καλώδιό του, δίπλα στο στεγανό κουτί
DFRobot SEN0546: ανοξείδωτο probe θερμοκρασίας/υγρασίας με I2C — το μόνο που βγαίνει έξω από το κουτί.

Το κοινό setup (ESPHome)

Για δίκαιη σύγκριση κρατήσαμε τα πάντα ίδια: ίδια πλακέτα, ίδιος αισθητήρας, ίδιο firmware βάσης (ESPHome). Αλλάζει μόνο το πρωτόκολλο.

Δύο πράγματα να προσέξετε:

  • I2C pins στο XIAO ESP32-C6: SDA = GPIO22 (D4), SCL = GPIO23 (D5) — όπως στο pinout της Seeed. Προσοχή να μην τα μπερδέψετε.
  • Στο ESPHome, το C6 απαιτεί framework ESP-IDF (όχι Arduino). Αλλιώς δεν χτίζει.
Pinout του XIAO ESP32-C6 (Seeed Studio): SDA στο D4 / GPIO22, SCL στο D5 / GPIO23, τροφοδοσία 3V3 και GND
Pinout XIAO ESP32-C6 (Seeed Studio). Ο αισθητήρας πάει στα D4 = GPIO22 (SDA) και D5 = GPIO23 (SCL), με τροφοδοσία από 3V3 και GND.
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
ESPHome Device Builder μέσα στο Home Assistant, με το YAML του XIAO ESP32-C6
Όλα τα builds γράφτηκαν στον ESPHome Device Builder (ESPHome 2026.8.2) μέσα από το Home Assistant.

Αρχεία για download

Τα πλήρη ESPHome configs που χρησιμοποιήσαμε, καθαρισμένα από κωδικούς. Οι κωδικοί μπαίνουν στο secrets.yaml του ESPHome — δείτε το secrets.example.yaml. Οδηγίες βήμα-βήμα στο README μέσα στο ZIP.

Γύρος 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.

Ρυθμίσεις του OpenThread Border Router add-on: device by-id του ZBDongle-E, baudrate 460800, hardware flow control απενεργοποιημένο
OTBR add-on: by-id device, 460800, Hardware flow control OFF.
Το Thread δίκτυο ha-thread-9b9c στο Home Assistant με έναν Border Router
Το Thread δίκτυο 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).
Ο web flasher silabs-firmware-builder με επιλεγμένο το firmware OpenThread (RCP) για το Sonoff ZBDongle-E
Το ίδιο dongle γίνεται Thread radio (OpenThread RCP) ή Zigbee coordinator (EZSP) με ένα reflash από τον browser.
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 μέτρα.

Ιστορικό θερμοκρασίας μίας ημέρας στο Home Assistant από τον αισθητήρα σε Thread
Μια μέρα καταγραφής πάνω από Thread: σταθερό, χωρίς κενά, μόλις μπει στο δίκτυο.

Γύρος 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 → brownoutFailed to join.

Αν σας βγάζει «Failed to join»: πριν ψάξετε οτιδήποτε άλλο, αλλάξτε τροφοδοτικό. Για λειτουργία με μπαταρία, ένας πυκνωτής 100–470 µF στο 3V3/GND βοηθάει να καλυφθεί το peak.

Το join θέλει κοντινή απόσταση

Το Zigbee έχει chicken-and-egg: μια συσκευή δεν κάνει join στα όρια της εμβέλειας, ακόμα κι αν θα δούλευε εκεί αφού μπει. Στα 9 μέτρα δεν έπιανε καθόλου· στα 4–6,5 μέτρα ζευγάρωσε αμέσως. Ο κανόνας: pair κοντά στον coordinator, μετά μετακίνησε στην τελική θέση.

Το ZHA βρίσκει τη συσκευή shh-c6-zigbee: Η συσκευή είναι έτοιμη για χρήση
Join στο ZHA — αφού βρήκαμε τροφοδοτικό πάγκου και το φέραμε στα 4 m.
Σελίδα συσκευής shh-c6-zigbee στο Home Assistant με θερμοκρασία, υγρασία, LQI και RSSI
Η σελίδα συσκευής στο ZHA: θερμοκρασία, υγρασία, LQI και RSSI — εδώ στα όρια, γύρω στα 8 m.

Πραγματικές μετρήσεις εμβέλειας (Zigbee)

Όλες με τροφοδοτικό πάγκου, ίδιος χώρος, ίδιος coordinator (ZBDongle-E). Σημειώνουμε και τι υπάρχει ανάμεσα, γιατί ένας τοίχος μετράει.

ΑπόστασηΕμπόδιαLQIRSSIΚατάσταση
4 m255−35 dBmΤέλειο (εδώ έγινε pair)
6,5 mPair OK
7 m1 γυψοσανίδα160−60 dBmΆριστα
8 m1 γυψοσανίδα + τοίχος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

ΚριτήριοWiFiThreadZigbee
Ευκολία στησίματος★★★★★
Κατανάλωση (μπαταρία)★★★★★★
Σύνδεση στο HAΑπευθείαςΑπευθείαςZHA/Z2M
Ωριμότητα (ESPHome)★★★★★
Εμβέλεια (μετρημένη)40% @ 9 mcutoff ~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), SCL GPIO23 (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».
Ένας αισθητήρας στο Home Assistant — WiFi, Thread, Zigbee: ποιο κερδίζει; Το βίντεο του project

Όλο το project και σε βίντεο: δείτε το στο YouTube.

Πού θα το βρείτε

Χρήσιμα εργαλεία/αναφορές:

Η OpenELAB είναι online κατάστημα ηλεκτρονικών για makers (development boards, αισθητήρες, modules για smart home και IoT), με αποθήκη στο Μόναχο — στέλνουν και στην Ελλάδα. Το προϊόν παραχωρήθηκε από OpenELAB / Seeed Studio για ανεξάρτητο τεστ· οι απόψεις και τα συμπεράσματα είναι αποκλειστικά δικά μας.

Gateway Zigbee USB — SONOFF Zigbee 3.0 USB Dongle Plus
Το dongle του άρθρου
Gateway Zigbee USB — SONOFF Dongle Plus (ZBDongle-E)

Το ίδιο dongle που έπαιξε Thread Border Router και Zigbee coordinator σε αυτό το τεστ. Chip EFR32MG21, εξωτερική κεραία, έτοιμο για ZHA και Zigbee2MQTT.

Δείτε το προϊόν →

Έχετε δοκιμάσει το XIAO ESP32-C6 σε Home Assistant; Πείτε μας στα σχόλια του βίντεο — WiFi, Thread ή Zigbee;