ESPHome Cloud Builder - Kompiluj w chmurze dla dowolnej wersji wydania

Jak już wielokrotnie wspominałem nie jestem programistą, ale marzenie posiadania własnego repozytorium z projektem na Github dziś stało się możliwe do spełnienia.
Przedstawiam swój pomysł na kompilowanie firmware pod ESPHome z wykorzystaniem chmurowej platformy cloud development.

  • Dla wszystkich, którzy mają słabszy sprzęt i kompilacja ciągnie się długo
  • Dla wszystkich, którzy chcą na szybko sprawdzić swój kod na innej wersji wydania ESPHome
  • Dla każdego kto chce się czegoś nauczyć (wbudowany Agent AI w narzędzia deweloperskie platformy)

Nie musisz:

  • :cross_mark: Instalować ESPHome na swoim komputerze
  • :cross_mark: Posiadać instancji Home Assistant
  • :cross_mark: Instalować Pythona, Docker, czy innych narzędzi
  • :cross_mark: Martwić się o system operacyjny (działa na Windows, Mac, Linux, ChromeOS)
  • :cross_mark: Mieć mocnego komputera (kompilacja odbywa się w chmurze)

Wystarczy:

  • :white_check_mark: Przeglądarka internetowa
  • :white_check_mark: Darmowe konto na GitHub lub ONA
  • :white_check_mark: Połączenie z Internetem

To jak mieć tymczasowy komputer do wynajęcia za darmo, który znika po zakończeniu pracy.


:rocket: Jak to działa

  • ESPHome uruchamiany jest wewnątrz oficjalnego kontenera Docker
  • Obraz kontenera jest przypięty do konkretnej wersji ESPHome
  • W Codespaces/ONA automatycznie uruchamia się kontener z przypisanym portem 6052
  • ESPHome Dashboard jest dostępny w przeglądarce internetowej
  • Firmware kompilowany jest w całości w chmurze

Nie jest wymagana żadna lokalna instalacja ESPHome, wystarczy dostęp do Internetu.

Zapraszam do testów:

3 polubienia

Dla zainteresowanych używaniem platformy ONA.

:money_bag: Koszty i limity platformy ONA

:free_button: Plan Darmowy (Free)

Parametr Wartość
Jednorazowy bonus po rejestracji $10 kredytów OCU
Dodatkowa jednorazowa pula 40 OCU
Równoległe środowiska Do 3
Auto‑usuwanie środowisk Po 4 dniach nieaktywności
Parametry maszyny 4 vCPU, 16 GB RAM, 80 GB dysku

:1234: Zużycie OCU (orientacyjne)

Operacja Koszt
Uruchomienie VM przez 1 godzinę ~1 OCU
Kompilacja firmware ESPHome (2–5 min) ~0.1 OCU
Praca z AI zależy od użycia

:tada: Co to oznacza w praktyce?

Z darmowych kredytów możesz wykonać około 50–100 kompilacji firmware, w zależności od czasu działania środowiska.

:high_voltage: Plan Core (od $20/miesiąc)

Parametr Wartość
Miesięczna pula OCU 80–2200 OCU (zależnie od planu)
Równoległe środowiska Bez limitu
Auto‑usuwanie środowisk Po 7 dniach
Parametry maszyn Do 32 vCPU, 128 GB RAM, 200 GB dysku
GPU Dostępne

:link: Więcej informacji

Pełny cennik: Pricing | Ona - AI software engineers

Ciekawa usługa, i w sumie można by jej użyć do wielu innych rzeczy, natomiast co ja skreśla to brak planu Pay as you go.
Do sporadycznego wykorzystania się nadaję dopóki są te darmowe kredyty a potem co? 20$ miesięcznie ? No raczej nie :slightly_smiling_face:‍↔

Masz 100% racji i nie pomyślałem o tym ograniczeniu ONA.
Ale jest alternatywa, której do dziś nie byłem świadomy.
Porównywalne rozwiązanie nazywa się GitHub Codespaces

Może jeszcze nawet prostszy w użyciu, również z Agentem AI.


Poprawiłem już dokumentację w repozytorium, bo wyszło jak bym reklamował ONA.

Porównajmy zatem darmową ofertę Codespaces:
GitHub Free (darmowe konto osobiste):

  • 15 GB miejsca na dysku miesięcznie
  • 120 godzin czasu obliczeniowego miesięcznie

Warto wiedzieć, że:

  • Czas obliczeniowy zależy od typu maszyny (2, 4, 8, 16 lub 32 rdzenie) - na przykład użycie maszyny 2-rdzeniowej przez godzinę to 1 godzina z limitu, ale maszyna 4-rdzeniowa zużyje 2 godziny z limitu
  • Po przekroczeniu darmowego limitu, jeśli nie masz ustawionej metody płatności, dostęp zostanie zablokowany
  • Organizacje i konta Enterprise nie mają darmowego limitu

Limit resetuje się na początku każdego miesięcznego cyklu rozliczeniowego.

Jeszcze jedno o czym warto wiedzieć:

Projekty w GitHub Codespaces są automatycznie usuwane po określonym czasie nieaktywności:

Domyślny okres przechowywania

  • 30 dni - domyślnie codespace jest usuwany po 30 dniach nieaktywności (od momentu zatrzymania)
  • Możesz ustawić własny okres przechowywania od 0 do 30 dni

Jak działa licznik:

  • Licznik resetuje się za każdym razem, gdy otworzysz i połączysz się z codespace
  • Licznik zaczyna się od nowa po zatrzymaniu codespace
  • Jeśli ustawisz okres dłuższy niż 1 dzień, dostaniesz powiadomienie e-mail na 24 godziny przed usunięciem

Jak zapobiec usunięciu:

  1. Otwórz codespace - każde otwarcie resetuje licznik
  2. Przypnij codespace - użyj opcji “Keep codespace” (zakładka z ikoną), aby zachować go na zawsze (dopóki nie usuniesz ręcznie)
  • Uwaga: ta opcja nie jest dostępna dla codespaces należących do organizacji z własną polityką

Ważne:

  • Codespace jest usuwany nawet jeśli zawiera niezapisane zmiany
  • Organizacje mogą ustawić własne, krótsze limity dla swoich repozytoriów
  • Zachowane codespace’y nadal zajmują miejsce i liczą się do Twojego limitu pamięci

Jak już mamy w miesiącu darmowe 60 godzin dla maszyny z 4 rdzeniami, 16GB RAM i 32GB przestrzeni dyskowej to porównajmy czasy kompilacji na obu platformach, czyli ten darmowy komputer.

Ten sam projekt, na tej samej wersji ESPHome, z wyczyszczonymi bibliotekami. Czas start…


  • ONA z wynikiem 352,93 sekund.


Dostępne rdzenie CPU:

Parametr Wartość
vCPU 4
Procesor Intel Xeon Platinum 8375C @ 2.90GHz
Fizyczne rdzenie 2
Wątki na rdzeń 2
Sockety 1

  • GiHub z wynikiem 459,79 sekund.

Dostępne rdzenie CPU:*

Parametr Wartość
vCPU 4
Procesor AMD EPYC 7763 64-Core Processor (2.45 GHz)
Fizyczne rdzenie 2
Wątki na rdzeń 2
Sockety 1

Jak mam być szczery, to dziwnie długi czas tych kompilacji.

Fajnie jakby było prównanie jeszcze np dla jakiegoś RaspberryPI (4/5) lub na jakimś PC rzędu i5/i7

Nie wydaje mi się, aby był istotnie długi, ale by można było cokolwiek porównać to trzeba mieć źródłowego YAMLa.

On nie jest dziwnie długi, to surowa instalacja z czystego Build Files, celowo startuję z tego samego poziomu aby te porównanie miało sens. I w tym momencie ma znaczenie połączenie z Internetem. Potem już biblioteki są cache’owane i kolejna kompilacja, względem zmian w YAML czyli zależności, ma różne czasy wykonania.

To mam kolejne wyniki, 492 sekundy dla i5-8250U:

Dostępne rdzenie CPU:

Parametr Wartość
vCPU 8
Procesor Intel i5-8250U
Fizyczne rdzenie 4
Wątki na rdzeń 2
Sockety 1

RAM 16GB DDR4 Speed: 2400 MT/s

Jednak w tej chmurze wcale nie jest tak wolno :wink:

Poniżej kod YAML dla tych trzech testów, wszystkie na ESPHome w wersji 2026.1.1
multical21.yaml (1,5 KB)

To może warto zrobić porównanie już z cache ? Bo czas pobierania może być tu totalnie nie deterministyczny.

Nie czuję dalszej potrzeby testowania tego, nie ma żadnego problemu z kompilacją w chmurze w porównaniu ze średniej klasy sprzętem PC. Maliny nie mam, a tak naprawdę chodziło głównie o użytkowników RPi z małą ilością RAM, bo to jest główna przyczyna bardzo długiej czy nawet nieudanej kompilacji. Jak potrzebujesz więcej porównać, to zrobienie tego jest bardzo proste.

1 polubienie