🤖 ESP32 STEP 4. Aplikacja AIS-ADAPTER-1

W tym wpisie skompilujemy kod istniejącej aplikacji, na przykładzie oprogramowania AIS-ADAPTER-1.

AIS-ADAPTER-1 to adapter Ethernet Zigbee oparty na układzie ESP32 oraz układzie zigbee 3.0 EFR32MG21.

To jest kontynuacja wprowadzenia do programowania układu ESP32 opisanego w tych 3 krokach:

Źródła oprogramowania dla ESP32

Oprogramowanie adaptera AIS-ADAPTER-1 jest dostępne w naszym repozytorium:

Oprogramowanie jest oprogramowaniem typu Open Source, więc możesz je pobrać i zmienić/ulepszyć - w tym wpisie pokaże jak to zrobić.

Kompilowanie źródeł

Do ESP32 wgrywamy oprogramowanie w postaci skompilowanej, tzw. binarkę, żeby wykonać binarkę wystarczy zrobić następujące kroki:

  1. Pobrać repozytorium;
  2. Zainstalować Visual Studio Code (VSC);
  3. W VSC zainstalować rozszerzenie PlatformIO;
  4. Nacisnąć „PlatformIO: Build” i poczekaj, aż zostanie wygenerowany plik firmware.bin;

Powyższe kroki należy wykonać na swoim komputerze, zaczynamy:

1. Pobranie kodów z repozytorium

W naszym ulubionym terminalu tworzymy folder Programowanie i do niego przechodzimy

mkdir Programowanie
cd Programowanie

Klonujemy repozytorium z kodami:

git clone https://github.com/sviete/AIS-ADAPTER-1.git

2. Instalujemy VSC

i otwieramy nasze pobrane kody z punku 1.

3. W VSC zainstalować rozszerzenie PlatformIO IDE

4.1. Kompilowanie aplikacji webowej

Uruchamiamy nowy terminal w VSC:

przechodzimy do folderu tools/webfilesbuilder i uruchamiamy:

npm install

następnie uruchamiamy:

npx gulp

4.2. Kompilowanie binarki

Otwieramy panel „PlatformIO”, wybieramy zadanie “Prod” i naciskamy przycisk “Build” - zostanie wygenerowany plik firmware.bin:

5. Wgranie binarki do urządzenia

Urządzenie AIS-ADAPTER-1 umożliwia aktualizacje oprogramowania z poziomu aplikacji webowej.

W tym celu w przeglądarce wchodzimy na adres http://ais-adapter-1.local następnie w aplikacji nawigujemy do zakładki “System and Tools” gdzie mamy funkcjonalność “ESP32 OTA Update”:

w tym miejscu możemy wybrać nasz skompilowany plik binarny “firmware.bin” i wykonać aktualizację oprogramowania w urządzeniu.

6. Rozwijanie oprogramowania

Po wgraniu oprogramowania do urządzenia, testujemy aplikacje, następnie w VSC poprawiamy kod/dodajemy nowe funkcjonalności, kompilujemy kod do postaci binarnej, skompilowaną binarkę wgrywamy do urządzenia itd…

3 polubienia

Do pełni szczęścia brakuje zasilania przez PoE i ewentualnie anteny, czy to jest w planach?

nie planujemy dodawać zewnętrzną antenę ani PoE.
Korzystamy z gotowego modułu radiowego i antena jest na płytce PCB.
“SM-011 V1.0” / ZYZBP008 - moduł radiowy Zigbee EFR32 MG21 (czyli Silicon Labs EFR32 Series 2) z GPIO do samodzielnego montażu

PoE to fajna sprawa, ale nie każdy to ma, a koszt bramki byłby większy o kilka dolarów, dla każdego (nieważne czy ma PoE czy nie).
Zasilanie mamy na USB-C i zawsze można zastosować PoE Splitter, wiadomo nie jest to do końca eleganckie rozwiązanie, ale to taki kompromis pomiędzy ceną a funkcjonalnością

Bramkę niedługo wprowadzimy do sprzedaży i będziemy ją kierowali do 3 typów odbiorców:

  1. Programiści ESP32
    bramka będzie działała na oprogramowaniu AIS-ADAPTER-1
    będę pisał o tym jak działa (i jak można rozwijać) AIS-ADAPTER-1
    GitHub - sviete/AIS-ADAPTER-1: Firmware for the ESP32 Zigbee Adapter
    tę aplikację można użyć też do innych projektów z ESP32

  2. Miłośnicy ESPHome
    w tym wydaniu będziemy dostarczać bramkę z systemem ESPHome i konfiguracje w YAML

  3. Użytkownicy HA. Domoticz, Openhab…, którzy chcą mieć Ethernetową bramkę Zigbee 3.0, która ma po prostu działać i obsługiwać ponad setkę urządzeń Zigbee, podłączonych bezpośrednio do kontrolera
    w tym wydaniu będziemy dostarczać bramkę z systemem AIS-ADAPTER-1, bo jest super stabilny i ma fajną aplikację webową do zarządzania ustawieniami urządzenia i aktualizacjami.

3 polubienia

Tak sobie to analizuję i zakładam, że bez problemu user koncowy bedzie mogł sobie “zamieniac” firmware z ESPHome na Wasze i odwrotnie? Mając ESPHome może przez GUI ESPHome wgrać plik z AIS firmware i bedzie miał “Ethernetową bramkę Zigbee 3.0, która ma po prostu działać i obsługiwać ponad setkę urządzeń Zigbee”? I odwrotnie, jeżeli w tym miejscu:

wgra skompilowany plik binarny z ESPHome to otrzyma “bramkę z systemem ESPHome i konfiguracją w YAML”.

Do rozwiązania w ten sposób z wykorzystaniem OTA, konieczne jest spełnienie jednego istotnego warunku - układ partycji w obu tych różnych firmware musi być identyczny - tu potrzeba jasnej i wyraźnej deklaracji autora oraz referencyjnego projektu ESPHome, bo rozkład partycji jest inny w zależności od użytego frameworka w ESPHome!
Więc cross-flash OTA może nie być możliwy w specyficznych warunkach lub wcale.

Jak rozumiem AIS-ADAPTER-1 ma na USB wyprowadzony mostek łączący z UART0 ESP32, więc flashowanie ESP32 jest możliwe po kabelku USB (to by załatwiało kwestię cross-flasha po kabelku, choć kilka słów w dokumentacji by się przydało), natomiast MCU Zigbee wykorzystuje UART1 w ESP32

Potencjalnych pytań się ciśnie na usta więcej np. czy jest/będzie możliwa łatwa aktualizacja firmware EFR32MG21 zarówno z poziomu softu “by sviete” AIS-ADAPTER-1 firmware jak i tego na bazie ESPHome?
Poniżej cytat z dokumentacji - czyli póki co aktualizacji MCU Zigbee brak…

ESP32 (peripheral) OTA update, ESP32 and EFR32MG21 restart;


edit
Aha pytam o to nie bez powodu - przykładowo firmy iTead/Sonoff oraz ostatnio SMLight, nie wspierają rozwoju firmware Zigbee do swoich wypustów na bazie EFR32MG21

Więc jakaś informacja z czym jest kompatybilna konstrukcja AIS-ADAPTER-1, by można było stosować firmware Zigbee z “trzeciej ręki”, bo o ile Nabu Casa buduje jedynie firmware dla 2 swoich wypustów SkyConnect oraz HA Yellow, to jednak na bazie ich repozytorium pojawił się słabo udokumentowany fork z firmware dla MCU Silicon Labs w tym dla ZBDongle-E oraz SMLIGHT SLZB-06M i SLZB-07

To tak swoją drogą jest też powiązane z moimi wcześniejszymi pytaniami o potencjalne wycofanie bramek SMLight z oferty sklepu, skoro źródło aktualizowanego firmware w końcu istnieje.

2 polubienia

Chyba da się z naszego softu przejść na ESPHome za pomocą naszego ESP32 OTA Update, trzeba tylko:

  1. Skompilować binarke w ESPHome i pobrać w trybie legacy

  2. Wgrać pobraną binarkę do AIS-ADAPTER-1 za pomocą ESP32 OTA

  3. Odświeżyć stronę aplikacji

Właśnie to sprawdziłem - zadziałało :slight_smile:
Ale żeby z ESPHome wrócić do AIS, to chyba trzeba już ttl to usb użyć.

Nie, USB jest tylko do zasilania urządzenia. Ale na płycie są piny RX,TX,3.3V i GND do nich można się podpiąć ttl to usb i programować ESP32. Obudowa nie jest zaplombowana.

mamy aktualizację Zigbee w aplikacji webowej

Można też aktualizować zigbee na sofcie ESPHome, ale to trochę bardziej skomplikowane:

  1. instalacja potrzebnych narzędzi
sudo apt-get install telnet lrzsz
  1. uruchomienie sesji telnet z adapterem:
telnet ais-adapter-1 6638

  1. uruchamiamy zigbee download mode

  1. w sesji telnet wybieramy opcje 1

  1. w nowym rerminalu
sx -vv -X -b --tcp-client ais-adapter-1.local:6638 ncp-uart-sw_6.7.10_115200.ota

i już mamy nowy soft zigbee - proste :wink:

Jesteśmy kompatybilni z EWeLink Zigbee Bridge Pro (coś jak Sonoff Zigbee Bridge Pro, tylko że z ESP32, Ethernet i USB-C).

Trochę odnośników w temacie tej konstrukcji:

https://thehelpfulidiot.com/a-wired-sonoff-zigbee-alternative
https://thehelpfulidiot.com/update-a-wired-sonoff-zigbee-alternative
https://thehelpfulidiot.com/update-2-a-wired-sonoff-zigbee-alternative

4 polubienia

Dzięki za szybką i rozbudowaną odpowiedź.

No OK, ale na obrazku widzę wersję 6.7.10 czyli taką nie za świeżą wersję (właściwie to jedyna wydana przez Sonoff i dostarczana fabrycznie i ma teraz już ze 3 lata), czy ten firmware jest zgodny z jakąś inną konstrukcją np. SMLight lub Sonoff?
Źle zadane pytanie oczywiście chodzi mi o możliwość wykorzystania firmware dedykowanego dla jakiejś innej/innych konstrukcji i że tak to ujmę “z niezależnych źródeł”, bo o tym, że Sonoff/iTead ma wylane na aktualizacje to już wiemy od lat…

To jakby jedna kwestia


A druga jest taka - czy jest potencjalna możliwość użycia z tym sprzętem firmware “dual-stack” = modem Zigbee+Thread, czyli rcp - one wymagają mniej więcej 10x szybszego portu serial niż soft ncp (koordynator Zigbee)?
Ktoś w ogóle przygotowuje takie firmware dla EFR32MG21 skonfigurowanego tak jak w Waszym wypuście?

I trzecia: lub choćby tylko Thread? Reszta zagadnień jak w pytaniu drugim.

ten człowiek

myślimy o tym, myślimy też o BT LE na ESP32 :slight_smile: ale na tą chwilę sprzedajemy ethernetową bramkę do Zigbee 3.0

3 polubienia

Moje testy z ZB-GW03 V1.4 właśnie się rozpoczęły. Pierwsze wrażenia całkiem pozytywne.
Dolutowałem gniazdo dla anteny zewnętrznej. Oprogramowanie wgrane przez konwerter USB/TTL.

Szkoda, że zabrakło ekranowania elektroniki.

Taka uroda - tak je Chińczyk robi - wlutowanie tego kawałka blaszki jest znaczącym kosztem.

https://www.aliexpress.com/item/1005003595793997.html
Jak widać dało się zaoszczędzić na 2 kondensatorach (przy kwarcu), to też ich nie lutują…

1 polubienie