Kategoria: Automatyzacja i autonomia
„Dwa gigabajty wystarczą”. Tak brzmi forumowa odpowiedź na to, ile ramu potrzebuje Home Assistant, i jest prawdziwa dokładnie przez jeden dzień: do momentu, w którym dołożysz do tej maszyny drugą rzecz. Po siedmiu latach jednej instalacji mogę powiedzieć, co naprawdę ustawia tę liczbę, i nie jest to Home Assistant.
Automatykę domową prowadzę w tym budynku od 2019 roku. Dziś to około 400 encji, z czego 40-50 to oświetlenie, sześć płytek Arduino Mega na jednym hubie USB, bez warstwy radiowej i bez pośredniczącej bramki, oraz część czujników dochodzących przez RFID i Zigbee, z MQTT do wymiany komunikatów. Wszystkie liczby policzone w tym tekście pochodzą z października 2026 i z tej jednej maszyny, czyli tej, która prowadzi mój dom.
Dlaczego sam Home Assistant nie jest odpowiedzią
Pytanie o pamięć dla Home Assistanta jest postawione o jedną warstwę za nisko. Na maszynie, która prowadzi dom, Home Assistant prawie nigdy nie jest sam.
Liczy się to, co stoi obok
U mnie jest jednym z trzydziestu dwóch kontenerów, rozłożonych na dziewięć projektów docker compose (policzone, październik 2026). Obok niego stoi broker MQTT, integracja ciągła na własnym runnerze, bo moje dane nie wychodzą z domu, i warstwa danych, którą zebrałem za jedną drogą dostępu; opisałem ją w tekście o tym, dlaczego trzymam osiem baz danych za jedną drogą dostępu. Pytanie „ile ramu potrzebuje Home Assistant” zamienia się więc w pytanie „ile pamięci potrzebuje ten konkretny zestaw”, a na to nie odpowiada żadna dokumentacja, tylko spis własnych kontenerów.
Co składa się na moją instalację
Zanim policzysz pamięć, warto mieć policzone to, co ma w niej leżeć. U mnie ten spis wygląda tak.
Trzydzieści dwa kontenery, dziewięć projektów, zero niezdrowych
| Pozycja (policzone, październik 2026) | Stan |
|---|---|
| Kontenery / projekty compose / niezdrowe | 32 / 9 / 0 |
| Encje w Home Assistant | około 400 |
| Punkty świetlne na systemie | 40-50 |
| Płytki Arduino Mega na jednym hubie USB | 6 |
| Paczki zablokowane w jednym pliku instalacyjnym | 112 |
| Testy w zestawie | 75 |
| System bazowy w spoczynku | około 400 MB (Ubuntu Server, pomiar opublikowany) |
Ostatni wiersz jest tu najważniejszy, bo wyznacza podłogę. System bez środowiska graficznego zajmuje około 400 MB, a Windows startuje od 4-6 GB, zanim otworzysz przeglądarkę. Na maszynie, na której każdy gigabajt jest komuś potrzebny, to nie jest kwestia preferencji; rozpisałem to przy okazji tekstu o tym, jak uruchomić lokalny model AI na Ubuntu Server.
Jedna decyzja, która zdjęła z tej maszyny najwięcej
Gdybym miał wskazać jeden ruch, który najbardziej wpłynął na zapotrzebowanie na pamięć, nie byłaby to żadna optymalizacja Home Assistanta.
Kamery poszły na drugą maszynę
Systemy wizyjne świadomie odseparowałem od głównego hosta. Frigate działa na drugim mini PC w środowisku Proxmox, więc analiza wideo i sterowanie oświetleniem nie współdzielą zasobów jednej maszyny. To jedna z nielicznych decyzji architektonicznych, do których nie musiałem wracać. Jeżeli ktoś pyta, ile pamięci potrzebuje Home Assistant, a w tle planuje cztery kamery z detekcją obiektów, to właśnie te kamery są całą odpowiedzią, a nie Home Assistant.
Czego liczba encji nie zmienia
Tu jest miejsce na najczęstszą pomyłkę, bo liczba encji jest widoczna od razu i wygląda jak miara obciążenia.
Czterysta encji to nie jest główny koszt pamięci
Przez siedem lat system urósł z kilku sterowników do około 400 encji i nie to było momentem, w którym zacząłem patrzeć na pamięć. Encja to w praktyce stan i kilka atrybutów. Rośnie natomiast to, co ten stan zapisuje: historia i baza danych, która ją trzyma. Trzy awarie, jakie w tym czasie odnotowałem, też nie miały z pamięcią nic wspólnego, bo wszystkie były fizyczne, czyli interfejs sieciowy, połączenie lutowane i przekaźnik; opisałem je w tekście o tym, co zepsuło się przez siedem lat z Home Assistant. Migracja z Raspberry Pi na mini PC, którą wtedy przeprowadziłem, wynikała z niestabilnego interfejsu sieciowego, a nie z braku pamięci, i warto to rozdzielić, bo te dwie przyczyny prowadzą do dwóch różnych zakupów.
Co zrobić, zanim dołożysz pamięci
Dokładanie pamięci jest najszybszym ruchem i dlatego bywa pierwszym. U mnie zdarzyło się raz, że nie był właściwy.
Presja na pamięć to nie to samo co wyciek
Na tej maszynie pracuje strażnik zasobów, który restartuje kontenery przy wysokiej presji na pamięć. Przez kilka dni restartował co godzinę jedną usługę Javy, bo ta jest tam zawsze największym konsumentem pamięci. Żaden restart niczego nie zwalniał, a usługa była wyłączana na minutę. Heurystyka była poprawna, działanie bezużyteczne. Zanim dołożysz kość, warto więc ustalić, czy maszyna faktycznie potrzebuje więcej pamięci, czy jeden proces jej nie oddaje. Pomaga w tym ta sama dyscyplina, którą stosuję przy każdej zmianie w instalacji i opisałem przy okazji pytania o to, czy to awaria, czy zmiana.
Jedna instalacja, jedna maszyna, bez porównań
To jedna instalacja i jeden zestaw kontenerów. Na maszynie z samym Home Assistantem i trzema integracjami ten rachunek wygląda zupełnie inaczej, a mój spis jest przykładem metody, nie wartością do przepisania.
Nie mierzyłem zajętości pamięci w rozbiciu na poszczególne kontenery i nie podam, ile zajmuje sam proces Home Assistanta w oderwaniu od reszty. Liczba, którą podaję, to liczba kontenerów i projektów, a nie profil pamięci każdego z nich.
Nie porównałem też swojej konfiguracji z instalacją pod Proxmoksem ani z obrazem systemowym Home Assistanta. Mam jeden host i jeden sposób uruchomienia, więc każde „kontra” byłoby tu przepisaniem cudzej konfiguracji.
Nie mam wreszcie liczby oszczędzonego czasu dla tej instalacji i nie wstawię w jej miejsce szacunku. To, co da się uczciwie powiedzieć, jest jakościowe: odkąd każda zmiana przechodzi przez wersjonowanie i bramki, które opisałem osobno, diagnostyka kończy się w wieczór, w którym się zaczęła, częściej niż wcześniej.