AIS Tasmota - własna kopilacja

Wprowadzenie

Ten opis ma na celu wyjaśnienie/pokazanie jak skonfigurować edytor Visual Studio Code z dodatkiem PlatformIO i w łatwy sposób kompilować i wgrywać oprogramowanie AIS-Tasmota do urządzeń działających na układzie ESP8266.

:warning: Ten opis jest dla osób, które budują własne urządzenie oparte na ESP8266 i chcą dodać obsługę czujników czy sterowników, których nie ma w naszych domyślnych kompilacjach.

W pozostałych przypadkach nie ma potrzeby wykonywać własnej kompilacji. Ponieważ na naszej stronie udostępniamy już gotowe zbudowane i przetestowane wersje oprogramowania. Wystarczy:

Instalacja edytora i kodu

Pobierz i zainstaluj Visual Studio Code

Pobierz i zainstaluj zgodnie z opisem dla twojego systemu operacyjnego:
https://code.visualstudio.com/

Zainstaluj dodatek PlatformIO

W Visual Studio Code wybierz View -> Extensions

i wpisz PlatformIO w polu wyszukiwania.

Wybierz oficjalne rozszerzenie PlatformIO.org PlatformIO IDE i wybierz opcję Instaluj.
Zaakceptuj, aby zainstalować zależności.

Pobierz AIS-Tasmota

Pobierz najnowszą wersję kodów AIS-Tasmota ze strony: https://github.com/sviete/AIS-Tasmota i rozpakuj do wybranego folderu.

Otwórz folder ze źródłami AIS-Tasmota

W Visual Studio Code wybierz File -> Open Folder i podaj lokalizację do folderu, do którego rozpakowałeś źródła:

image

Kompilowanie

Naciśnij ikonkę PlatformIO po lewej stronie na pasku, by zobaczyć wszystkie dostępne zadania w projekcie:

Kompilację można wykonać wybierając zadanie Build

Zmiana ustawień kompilacji

Najważniejsze ustawienia są w dwóch plikach

  • platformio.ini
  • my_user_config.h

W pliku platformio.ini możesz wybrać rodzaje kompilacji do wykonania, odkomentowując(usuwając znak ; na początku linijki) stosowne linijki (domyślnie kompilujemy tasmota-PL)

Dodatkowo w pliku tym możesz ustawić wersję Core/SDK, która ma być użyta w oprogramowaniu wynikowym. Domyślnie stosujemy najnowszy Arduino Core (Open Source) dla układów ESP8266 / ESP8285 w wersji 2.6.x. Dzięki temu mamy pewność, że bazujemy na najlepszej dostępnej obecnie wersji bibliotek. Jeśli chcesz/potrzebujesz, to możesz zastosować inną (starszą) wersję Arduino Core, ale może spowodować to wystąpienie problemów ze stabilnością i bezpieczeństwem urządzenia.

W pliku my_user_config.h możesz wybrać dodatkowe funkcjonalności, które mają być dostępne, odkomentowując (usuwając znaki // na początku linijki) stosowne linijki. Dodanie dodatkowych funkcjonalności (sterowników i kodu) ma wpływ na wielkość wynikowego oprogramowania.

Wgrywanie do urządzenia

W pliku platformio.ini ustaw opcje dla komunikacji po porcie szeregowym:
image

Podłącz urządzenie do wybranego portu, w trybie programowania - zwierając GPIO 0 z masą.
Wybierz zadanie Upload:

Monitorowanie pracy urządzenia

Po zaprogramowaniu możesz łatwo sprawdzić działanie urządzenia, obserwując jego logi, w tym celu podłącz ponownie urządzenie do wybranego portu w trybie pracy (bez zwierania GPIO 0 do masy).
Następnie wybierz z zadań opcję Monitor:

PS
Opis powstał podczas kompilowania wersji 8.1.0
Testujemy tę kompilację teraz na urządzeniach i jak wszystko będzie OK to w ciągu kilku dni udostępnimy na OTA.

4 polubienia

Czy pojawiła się już w tasmota opcja obsługi ethernet shield - ENC28J60 np. do WEMOSa na ESP8266? Coś już na GitHubie widziałem. Sterowanie kluczowymi elementami jak np. ogrzewanie i czujniki wolał bym jednak mieć po kablu :slight_smile: Tak kabel zasilający musi być do esp więc zasilanie po kablu ethernetowym można by ogarnąć. Wolał bym wersję przewodową chociażby dlatego że na noc automatycznie wyłączam WiFi w routerze żeby nie siało…

Jeżeli nie chcemy się bawić w instalki, lub nie możemy (konto bez admina) to warto zainteresować się GITPODem https://www.gitpod.io
Zakładamy sobie konto na Gitpodzie (najlepiej przez GitHuba)


następnie w chromie instalujemy rozszerzanie image
i teraz jak wejdziemy na projekt AIS-Tasmota https://github.com/sviete/AIS-Tasmota
mamy dodatkowy przycisk Gitpod
image
klikamy i cała zawartość zostaje przeniesiona do Gitpoda.
Chwilę to potrwa, ale w końcu mamy ekran jak poniżej.

Modyfikujemy odpowiednie pliki i w lini poleceń na dole ekranu wpisujemy polecenie do skompilowania pliku tasmota.bin
Polecenie to “platformio run -e tasmota”

Wciskamy enter i czekamy. jak skończy się kompilacja, nasz plik mamy w lewej części ekranu w katalogu .pioenvs/tasmota/firmware.bin
image
klikamy na nim prawym przyciskiem myszy i pobieramy. Teraz plik możemy wgrywać do modułu np. przez OTA.

1 polubienie

Chciałem wykonać własną kompilację dla modułu ESP32 przy wykorzystaniu Gitpod i repozytorium
AIS-Tasmota. Proszę o pomoc w prawidłowej konfiguracji platformio.ini pod budowanie binarki tasmota32.bin
Interesujące mnie wiersze w pliku my_user_config.h, odpowiedzialne za Conditional Rules odznaczone do kompilowania.

Nie wiem jednak, w którym pliki 'ini wskazać wersję do kompilacji.

Proszę o wskazówki, ponieważ opis @admin.ai-speaker trochę się zdeaktualizował. Może @Cino111 coś już kompilowałeś pod ESP32?
@Iron - są ciekawe moduły ESP32 z Ethernet możliwe do wykorzystania w Twoich projektach.

1 polubienie

Cześć,

wystarczy odkomentować to co chcesz skompilować i zakomentować to co nie chcesz
w tym pliku ini komentarz to średnik

PS
Chyba, bo my kompilujemy to troszeczkę inaczej - dokładnie tak jak Tasmota.
W sumie to się samo automatycznie kompiluje w wszystkich wariantach, za pomocą workflow w Github zdefiniowanego przez Tasmota.

@Iron to jest dobre i tanie:

Kiedyś było po 6$ teraz jest z 30% drożej.
Ale nie jest to POE i wszystko ma tylko na gpio (łączie z zasilaniem)

Tasmota działa na tym rewelacyjnie, do BLE i do innych zastosowań się nadaje.

araczkowski zrobił fajny projekt na tym + na urządzeniu które dostał z eByte:

Obiecał, że dokończy i opisze :slight_smile: ale teraz zarobiony jest, bo ma jakieś terminy…

1 polubienie

Dzięki @admin.ai-speaker - mechanizm odkomentowania wiersza jest zrozumiały. Jednak nie bardzo nadal wiem, w którym dokładnie pliku mam to zrobić? Czy tylko w jednym miejscu?
Ponieważ w pliku platformio.ini nie ma wierszy wyboru wersji.

Czy dobrze rozumiem, że wyboru dokonuję w pliku platformio_override.ini ?
Chodzi mi wskazówki dotyczące konkretnych ustawień dla ESP32.
Moje obecne próby są nieskuteczne, ponieważ po od-komentowaniu samego wiersza tasmota32 w pliku platformio_override.ini powstaje plik bin (niespełna 600kB), który z pewnością nie jest właściwy. Nadal nie wiem co robię źle?


Obawiam się, że nikt z nas nie wie jak to jest w GitLens, być może to działa i jest OK ale nie wiemy jak to działa i jak tam kompilować.

Ja bym robił kompilację w PlatformIO tak jak to robi Theo Arends auror Tasmota. Narzędzie może być istotne, bo kompilacja to nie tylko kod Tasmota ale też biblioteki Espressif, Arduino SDK itd… PlatformIO samo dociągnie Ci aktualne biblioteki i będziesz miał pewność, że wynikowy kod to jest to co chciałeś.

Kilka lat temu Theo pisał Tasmote w Arduino IDE, później odkrył VS Code i PlatformIO i napisał, że dzięki temu zredukował ilość błędów o połowę i rozmiar kodu o 30% :wink: (o ile dobrze pamiętam)

Zobacz tu:

https://tasmota.github.io/docs/Compile-your-build/

Ale ja właśnie kompiluje w PlatformioIO…


Wydaje mi się, że różnica polega tylko na tym. że PlatfomIO jest nie stacjonarnie w VS Code ale w kontenerze GitPod.
Jeśli się mylę to proszę o poprawienie.
Czy przebieg samego kompilowania zmienił się od czasu publikowania opisu z pierwszego postu tego tematu?
https://tasmota.github.io/docs/Gitpod/

EDIT:

Skutecznie skompilowałem plik tasmota32.bin z włączonymi regułami warunkowymi.
Popełniałem błahy błąd wpisując niewłaściwą komendę platformio run -e tasmota
Właściwa komanda to platformio run -e tasmota32 - czyli wskazująca na budowaną wersję.
Po raz kolejny okazuje się, że nie wystarczy czytać dokumentację ale należy to robić ze zrozumieniem.

Gorąco polecam narzędzie w postaci GitPod - jest sprawne, przejrzyste i zawsze aktualne. Do tego dochodzi atut pracy w dowolnym środowisku z dowolnego miejsca z dostępem do internetu.
Co ważne pozwala kompilować pliki z AIS-Tasmota, na czym tak bardzo mi zależało.

1 polubienie