🇿 Zibi ZigBee T Sensor 🌡️

Moderator: vajera

User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

ZIBI ESP32C6_T_Sensor

Wielokanałowy czujnik temperatury Zigbee na ESP32 C6 + DS18B20 (do 20 czujników!)
Stabilny, szybki, z wygładzaniem pomiarów i sygnalizacją RGB

Chciałbym się pochwalić moim najnowszym urządzeniem Zigbee, które niedawno ukończyłem - i działa bardzo stabilnie (nawet na chińskich podróbkach DSów).

Oto moje własne multi sensorowe urządzenie Zigbee oparte o ESP32 C6 i DS18B20, pozwalające odczytywać do 20 czujników temperatury na jednej linii 1 Wire, z pełną integracją w Home Assistant, Zigbee2MQTT i ZHA, no i oczywiście Suplą (przez bramkę Z2S od @vajera).

Tym razem trochę inaczej, bez zbędnej teorii, informacji o bezpieczeństwie i marudzenia, ponieważ urządzenie (używane zgodnie z przeznaczeniem) powinno być w pełni bezpieczne.

Poniżej opisuję, jak to działa, jak to zbudowałem i co potrafi.

Co to jest?
Urządzenie to:
• Zigbee End Device
• działające na ESP32 C6 (Zigbee + WiFi)
• obsługujące do 20 czujników DS18B20 na jednej magistrali
• każdy czujnik => osobny endpoint Zigbee (0x0402 Temperature Measurement)
• rozpoznaje automatycznie wszystkie podłączone sondy (czujniki temperatury)
• dynamicznie nadaje nazwę modelu: ESP32C6_T_Sensor_<X>CH (np. dla 6 sond → ESP32C6_T_Sensor_6CH)
• retagowanie po zmianie liczby czujników (z pamięcią NVS)
• sygnalizacja RGB LED (wbudowana w ESP32 C6):
  • żółty – łączenie z siecią Zigbee
  • zielony – połączono
  • fioletowy – błąd odczytu
  • czerwone mrugnięcie – factory reset po przytrzymaniu przycisku
• filtrowanie pomiarów EMA, dzięki czemu wykresy są gładkie i bez „schodków”
• co 60 sekund sprawdza stan magistrali i ostrzega, gdy liczba DS18B20 się zmieni (np. wskutek awarii lub braku sygnału z czujnika) - komunikat na serialu i dioda zmieni kolor przez 5s na fioletowy (uwaga – stan musi się dwa razy, raz po razie, nie zgadzać, aby alarm zadziałał)
• pełne logi na Serial (surowe + filtrowane wartości)
Działa to jako stabilny, pełnoprawny czujnik Zigbee, który w HA/Z2M/Z2S wygląda jak gotowy produkt komercyjny.

Jak widzi to koordynator Zigbee (w tym bramka Z2S)?
Urządzenie zgłasza:
Jeden node Zigbee
• Manufacturer: ZIBI
• Model: ESP32C6_T_Sensor_XCH
• Profil: ZHA (0x0104)
Jeden, kilka lub kilkanaście (do 20) endpointów
Każdy endpoint to osobny czujnik temperatury, z klastrami:
Server Clusters per endpoint:
• 0x0000 Basic
• 0x0003 Identify
• 0x0402 Temperature Measurement
  • measuredValue (0,01 °C)
  • minMeasuredValue = -55°C
  • maxMeasuredValue = 125°C
  • tolerance = 1°C (zmniejszyłem w sofcie do 0,1°C)
  • raportowanie: delta 0,1°C
Jak to zbudowałem?

Hardware:
• ESP32 C6 (np. DevKit C6 lub moduł z wbudowaną RGB LED, na tych ze zwykłym LED np. Xiao dioda jest wyłączona)
• DS18B20 - w moim przypadku kilka sond zwykłych i kilka w osłonie stalowej (miałem łącznie 15 i dla tylu przetestowałem)
• linia DATA podłączona pod GPIO4 w C6
• rezystor 4.7k między DATA a VCC (wartość rezystora często trzeba dobrać indywidualnie – w zależności od liczby czujników i długości linii)
• przycisk na GPIO9 (domyślnie BOOT na C6)
• zasilanie 3.3V

Software:
• Arduino Core for ESP32 C6
• OneWireNg (zamiast starego OneWire - działa stabilnie na C6, dzięki @Piotr Stolarz)
• DallasTemperature (działa dzięki warstwie zgodności)
• Zigbee library od Espressifa
• FreeRTOS task na pomiary
• automatyczne skanowanie 1 Wire przy starcie
• własna obsługa LED RGB (natywne rgbLedWrite())

Logika przycisku:
• 3 sekundy => LED OFF
• 5 sekund => dwa szybkie czerwone błyski => factory reset Zigbee (urządzenie potem samo się ponownie paruje)

Wygładzanie pomiarów – EMA
Zastanawiałem się, czy nie zostawić „surowych” danych, w końcu zdecydowałem się na prosty filtr. Wbudowałem filtr EMA (Exponential Moving Average), dzięki czemu:
• temperatury są stabilne,
• wykresy są „gładkie”,
• nie ma „szumów” ani sztucznych skoków,
• raporty Zigbee wysyłane są dopiero przy zmianie >=0,1°C (oszczędność baterii w innych projektach, mniejszy ruch w sieci).

Health Check co 60 sekund
Co minutę urządzenie:
• ponownie skanuje magistralę 1 Wire,
• jeśli wykryje zmianę liczby czujników => wpisuje ostrzeżenie do logu (bez resetu).
To przydaje się przy luźnych połączeniach, uszkodzonych sondach lub przy bardzo długich przewodach.
Początkowo chciałem wykorzystać wbudowaną funkcje w Dallas Temperature, ale alarm się nie odpalał, bo DallasTemperature.getDeviceCount() nie zawsze odświeża liczbę urządzeń po starcie (bazuje na wewnętrznej liście stworzonej przy begin()), więc po odłączeniu sondy licznik się nie zmieniał i warunek nie był spełniony.
Wprowadziłem własne, bezpośrednie skanowanie magistrali 1 Wire przez OneWire::search(), z filtrowaniem tylko rodziny DS18B20 (0x28) i weryfikacją CRC. Dzięki temu HealthCheck co skan sprawdza realny stan linii 1 Wire. Dodałem też prostą histerezę (potwierdzenie zmiany w 2 kolejnych skanach), żeby nie reagować na jednorazowy błąd.

LED RGB daje pełną sygnalizację
Wbudowana dioda ESP32 C6 działa z natywną funkcją:
rgbLedWrite(RGB_BUILTIN, R, G, B);
U mnie działa to tak:
  • Start & łączenie 🟡 żółty urządzenie łączy się z Zigbee
  • Połączono 🟢 zielony urządzenie w sieci
  • Factory reset 🔴 2 błyski czerwone przytrzymanie przycisku 5 s
  • Błąd odczytu 🟣 fioletowy urządzenie w ciągu 2 kolejnych minut, dwa razy wykryło błąd odczytu temperatury
  • Po 3 sekundach trzymania przycisku ⚫ LED OFF
Proste, czytelne, wygodne w praktyce, no i zgodne z tym co robiłem do tej pory.

Po co to zrobiłem?
Chciałem mieć:
• precyzyjny monitoring temperatury w kilku miejscach instalacji CO/CWU/bufor/piec,
• bez plątaniny kabli (tylko te do sond)
• bez Wi Fi (Zigbee ma /zazwyczaj/ mniejsze opóźnienia i mniejsze zużycie energii),
• możliwość dodania nawet 20 czujników bez komplikowania okablowania,
• w pełni stabilne urządzenie na długi czas,
• no i najważniejsze: działające akcje lokalne - nawet bez neta, wszystko dzięki @vajera
I to dokładnie dostałem.
Na dziś - działa wzorowo.

Plany, rozbudowa?
Jeśli macie jakiś pomysł - piszcie śmiało.
Jak będzie zapotrzebowanie, to mogę też przygotować:
• wersję z ekranem OLED,
• wersję z obsługą zwykłej diody LED (np. w Xiao),
• wersję z obsługą anteny zewnętrznej w Xiao,
• port na ESP32 H2.
Chętnie pomogę (w miarę dostępnego czasu i możliwości) każdemu, kto chce zrobić taki sprzęt u siebie.

Ustawienia Zigbee
  • Po wgraniu softu (i ewentualnym resecie, jeśli nie wykonał się samoczynnie) urządzenie jest w trybie parowania i czeka na połączenie z bramką.
  • Jeśli w bramce włączymy parowanie, to po chwili w cloud i w aplikacji powinniśmy zobaczyć od 1 do 20 termometrów.
  • Domyślna nazwa urządzenia w bramce to: ZIBI::ESP32C6_T_Sensor_3CH, gdzie X to liczba kanałów zgodna z liczbą sond (termometrów), które podłączyliśmy.
  • Ważne! Reset Zigbee (>5s boot) oraz wyłączenie diody RGB (3s boot) możliwe jest dopiero po sparowaniu urządzenia.
Inne:
  • Do testowania załączam binarkę (plik „merged”). Soft wgrywamy standardowo czymkolwiek, co potrafi wgrać do ESP32-C6. Jeśli jest konieczność podania adresu, to wgrywamy od adresu 0x0.
  • Uwaga! Przywrócenie ustawień fabrycznych wykonujemy trzymając dłużej (>5s) przycisk BOOT. Jeśli zmieniliśmy liczbę sond (termometrów) to urządzenie będzie się chciało sparować pod nową nazwą z nową (aktualną liczbą) podłączonych termometrów. Aby to było możliwe należy usunąć poprzednie urządzenie z cloud.
  • Czy można podłączyć urządzenie z innymi bramkami? Tak, ale nie z komercyjnymi (Tuya, eWelink). Pod ZHA i Z2M będzie działać. Wystarczy przypisać, bo wykorzystuje standardowe klastry.
  • Czy można zrobić podobne urządzenie na WiFi bezpośrednio pod Suplę? Oczywiście! W ramach testów sam nawet takie zrobiłem (z wykorzystaniem dokładnie tych samych elementów) i osuplowałem. Działa. Soft można wygenerować bez problemów w nowym GG (link w moim podpisie). Nie trzeba posiadać umiejętności programowania. Co tracimy? Możliwość pracy w Zigbee, automatyczne skanowanie 1-wire z dodawaniem endpointów i sygnalizację diodą RGB (np. błędów odczytu termometrów). Reszta będzie działać bardzo podobnie. Załączam też tutaj taką wersję (z dopiskiem Supla). Po wgraniu wystarczy wejść na stronę konfiguracji (192.168.4.1) i sobie wszystko poustawiać (przypisać GPIO do 1-wire, przeskanować i sobie poopisywać).
  • Czy nie lepiej kupić gotowe urządzenie Zigbee? Pewnie, że tak! Jeśli tylko takie na Zigbee znajdziecie. Nie piszę tutaj o przerabianych Sonoffach, bo po pierwsze one są na WiFi, a po drugie mogą być bardzo niebezpieczne. To projekt dla pasjonatów, którzy chcą zrobić coś samemu.
No i na koniec tradycyjne już podziękowania dla @vajera :) Łukasz - bez Ciebie by tego nie było. Dziękuję Ci bardzo!

W załączniku wersja 0.7h z 22.02.2026
Pełna obsługa od wersji bramki Z2S - 1.4.41 (2026-02-22) (obecnie do 10 DSów).
You do not have the required permissions to view the files attached to this post.
Last edited by Zibi_007 on Mon Feb 23, 2026 1:20 am, edited 3 times in total.
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

Rezerwacja
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
User avatar
vajera
Posts: 7293
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 291 times
Been thanked: 161 times

Post

Potrójne gratulacje - za pomysł, wykonanie i precyzyjną dokumentację projektu :ugeek:
Tak sobie myślę, że mając tyle doświadczenia w budowaniu urządzeń Zigbee, mógłbyś się pokusić o realizację tego idealnego czujnika T/H gleby? 😉
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
zjacek
Posts: 55
Joined: Tue May 11, 2021 5:29 pm

Post

Gratuluję wspaniałego Rojektu.

Właśnie oczekuje na dostawę DS jak tylko się pojawią zmontuję układ.
Czy robiąc wersję na WiFi generując program w nowym GG też będzie zaimplementowany filtr EMA?
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

To jest to co kiedyś mówiłem... DIY... pasja i determinacja to filar. Czasami straty, czasami sukcesy a czasami porażki, ale najważniejsze... nigdy to nie jest czas zmarnowany. Bo co się człowiek przy tym nauczy to jego. Jest satysfakcja i czasami radość innych. Super. Również gratulacje.👍
User avatar
george1255
Posts: 426
Joined: Fri Sep 02, 2022 8:48 pm
Location: Włodawa
Has thanked: 12 times
Been thanked: 7 times

Post

wersja WIFI. Jak odbywa sie dodawanie kilku czujnikow? jak definiujesz ilość? W webinterface? Jak odbywa sie potem dodanie/odjecie czujnikow? Co ile jest odświeżanie?

Ubiegłeś mnie bo tez buduje termometr z uzyciem DS18b20, DISPLAY na zigbee do sauny dla kolegi (skupilem sie na projektowaniu obudowy) który chciałem opublikować, ale Ty zrobiłeś porzadki i POZAMIATAŁEŚ :)
User avatar
RomanG
Posts: 1060
Joined: Tue Jul 21, 2020 7:35 am
Has thanked: 26 times
Been thanked: 7 times

Post

👍Gratulacje, gratulacje, gratulacje! 👌
Dzięki za kolejny projekt! Nie zdążyłem jeszcze (też z braku czasu) "przegryźć" "Zibi Zigbee Switch", bo zamierzam go sprawdzić i wdrożyć, a tu kolejny projekt. "Offtop-owo" - cieszą mnie też ostatnie "skrzynki pocztowe" kolegów!
Dlaczego?
.. bo jedna bramka Z2S może uwolnić kilka (nawet - ...naście) adresów IP. Być może to jest remedium na moje problemy z siecią.
Jeszcze raz dziękuję! :D
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

zzrr wrote: Mon Feb 23, 2026 9:08 am To jest to co kiedyś mówiłem... DIY... pasja i determinacja to filar. Czasami straty, czasami sukcesy a czasami porażki, ale najważniejsze... nigdy to nie jest czas zmarnowany. Bo co się człowiek przy tym nauczy to jego. Jest satysfakcja i czasami radość innych. Super. Również gratulacje.👍
Ja dodam jeszcze, że np. moja żona jest dumna ze mnie, że potrafię sobie znaleźć zajęcie (hobby), a nie siedzieć cały dzień przed telewizorem z najtańszym piwem w ręku. Myślę, że podobnie jest u Was.
RomanG wrote: Mon Feb 23, 2026 9:38 am 👍Gratulacje, gratulacje, gratulacje! 👌
Dzięki za kolejny projekt! Nie zdążyłem jeszcze (też z braku czasu) "przegryźć" "Zibi Zigbee Switch", bo zamierzam go sprawdzić i wdrożyć, a tu kolejny projekt. "Offtop-owo" - cieszą mnie też ostatnie "skrzynki pocztowe" kolegów!
Dlaczego?
.. bo jedna bramka Z2S może uwolnić kilka (nawet - ...naście) adresów IP. Być może to jest remedium na moje problemy z siecią.
Jeszcze raz dziękuję! :D
Faktycznie Romek, słusznie podniosłeś kwestię problemów z siecią Wi-Fi i przydziałem adresów IP. Jest to na pewno całkiem dobry sposób na urządzenia sieciowe, które mają swoje ograniczenia. Jedna bramka Z2S to jeden adres IP, a urządzeń może być kilkanaście.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

zjacek wrote: Mon Feb 23, 2026 7:59 am Gratuluję wspaniałego Rojektu.

Właśnie oczekuje na dostawę DS jak tylko się pojawią zmontuję układ.
Czy robiąc wersję na WiFi generując program w nowym GG też będzie zaimplementowany filtr EMA?
Nie, w GG idą "surowe" dane. Są natomiast różne zabezpieczenia aby np. nie pojawiały się wartości z błędami (np. -255 czy 257). Różnie to działa, ale generalnie jest OK. W końcu tyle lat na tym działamy ;)
Tutaj mam pełną kontrolę nad kodem i mogę zrobić co chcę. Oczywiście w SD też to jest możliwe, ale nie przez GG, tylko samemu trzeba napisać.
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Robert Błaszczak wrote: Mon Feb 23, 2026 10:17 am ....

Ja dodam jeszcze, że np. moja żona jest dumna ze mnie, że potrafię sobie znaleźć zajęcie (hobby), a nie siedzieć cały dzień przed telewizorem z najtańszym piwem w ręku. Myślę, że podobnie jest u Was.
....
U mnie jest podobnie. 👍👍👍
Aczkolwiek zdarzył się ostatnio przewrót bo moja małżonka narzekała że naprawiłem a ona miała nadzieję że się nie da i będzie nowe :lol:

Return to “Bramka ZigBee”