MarkLabs / Home Assistant / DIY / test praktyczny
Amazon Echo Dot 2 jako asystent Home Assistant. Pełna przeróbka na Windows 11 i test polskiego głosu
Miałem Echo Dot 2, który nadal był sprawnym głośnikiem, ale jego możliwości kończyły się tam, gdzie zaczynał się ekosystem Amazon. Sprawdziłem, czy da się wykorzystać go jako mikrofon i głośnik dla Home Assistant bez klasycznej Alexy. Udało się, a całą przeróbkę przeprowadziłem na Windows 11, bez rozbierania urządzenia. Najbardziej zaskoczyło mnie jednak to, jak duży wpływ na końcowy efekt ma model rozpoznawania mowy. Poniżej opisuję dokładnie to, co zrobiłem, z prawdziwymi komunikatami terminala i testami na Intel N100 z 8 GB RAM.
Echo Dot 2: RS03QR · Windows 11 · Home Assistant · Wersja testowa: 30.10.2026
Praktyczna relacja, nie uniwersalna gwarancja
To opis instalacji wykonanej 1 listopada 2026 r. na konkretnym urządzeniu, z wykorzystaniem wersji v2026.10.30.190755-beta. Projekt zmienia się szybko. Polecenia do przygotowania Windows są nadal przydatne, ale przy innym wydaniu trzeba sprawdzić jego instrukcję i komunikaty instalatora. Odblokowywanie oraz zapis pamięci mogą trwale uszkodzić Echo.
W artykule
- Co daje przeróbka
- Obsługiwane modele i ryzyko
- Przygotowanie Windows
- Sterowniki USB i nasze błędy
- GitHub i test instalatora
- Prawdziwe odblokowanie
- Wi-Fi i 4WAY_HANDSHAKE
- Dodanie do Home Assistant
- Polski Assist z Whisper i Piper
- Test N100: auto, small, medium i Cloud
- Diagnostyka rozpoznawania
- Bezpieczeństwo i aktualizacje
- Moje wnioski
Dlaczego zainteresował mnie ten projekt
W Home Assistant mam już własne automatyzacje i urządzenia, ale do sterowania głosowego potrzebny jest wygodny interfejs. Telefon działa, panel ścienny też, jednak możliwość powiedzenia czegoś z drugiego końca pomieszczenia ma zupełnie inny charakter. Stary Echo Dot nadawał się do eksperymentu, bo miał gotowy zestaw mikrofonów, głośnik, przyciski i pierścień LED.
Projekt echo-dot-assist nie jest zwykłą integracją Alexy. Instaluje na zgodnym Echo oprogramowanie hassmic, które współpracuje bezpośrednio z Home Assistant i udostępnia urządzenie przez interfejs ESPHome. Zachowuje wybrane elementy oryginalnego toru audio Amazon, w tym lokalne wykrywanie słowa „Alexa”. Samo rozpoznawanie poleceń i przygotowanie odpowiedzi odbywa się już w wybranym potoku Assist.
Co zostaje z Echo
Mikrofony, głośnik, przyciski, pierścień LED oraz lokalne wybudzanie słowem „Alexa”.
Co przejmuje Home Assistant
Rozpoznanie wypowiedzi, powiązanie jej z encją, wykonanie działania i wygenerowanie odpowiedzi.
Możemy więc zbudować asystenta całkowicie lokalnego z Whisper i Piper albo wybrać Home Assistant Cloud do rozpoznawania oraz syntezy mowy. W obu wariantach sam zmodyfikowany głośnik nie wymaga korzystania z aplikacji Alexa.
Które modele Amazon Echo można przerobić?
Zacząłem od sprawdzenia oznaczenia na spodzie obudowy. Mój egzemplarz to RS03QR, Echo Dot 2. generacji z 2016 roku, występujący w projekcie pod nazwą kodową biscuit. Ta wersja ma złącze micro-USB obsługujące transmisję danych. Nie wymaga otwierania obudowy ani lutowania. Inne modele mogą mieć inną procedurę, a część nie jest obsługiwana.
Inne modele Amazon Echo obsługiwane przez projekt
Sprawdziłem także tabelę zgodności projektu dla wydania v2026.10.30.190755-beta. Lista jest szersza niż same Echo Dot 2 i 3. Są na niej również wybrane Echo Show oraz Echo Input. Sam jednak przeprowadziłem instalację tylko na RS03QR. Obecność modelu na liście oznacza, że autor raportuje działający port na pojedynczym egzemplarzu, a nie gwarancję bezproblemowego odblokowania dowolnej sztuki.
| Urządzenie | Model i nazwa kodowa | Status w projekcie | Jak dostać się do systemu |
|---|---|---|---|
| Echo Dot 2 (2016) | RS03QR, biscuit | Obsługiwany, mój test | Micro-USB, bez lutowania |
| Echo Dot 3 (2018) | D9N29T, donut | Obsługiwany | Otwarcie obudowy i przewody do punktów testowych |
| Echo 2 (2017) | XC56PY, radar | Obsługiwany | Otwarcie obudowy i lutowanie przewodu USB do płytki wzmacniacza |
| Echo Show 5, generacja 1 (2019) | H23K37, checkers | Obsługiwany | Micro-USB, bez lutowania; LED zastępuje pasek na ekranie |
| Echo Show 8, generacja 1 (2019) | C7H6N3, crown | Obsługiwany | Micro-USB, bez lutowania |
| Echo Show 5, generacja 2 (2021) | C76N8S, cronos | Obsługiwany | Micro-USB, bez lutowania |
| Echo Show 8, generacja 2 (2021) | A8H3N2, athena | Obsługiwany | Micro-USB, bez lutowania; inny mechanizm odblokowania przez port szeregowy |
| Echo Input (2018) | C1125P, cupcake | Obsługiwany | Micro-USB, bez lutowania; nie ma własnego głośnika |
| Echo Dot 3, wariant 2019-2020 | C78MP8, crumpet | Nieobsługiwany | Metoda z D9N29T nie działa |
| Echo Dot 3 z zegarem | 36EBT3, doebrite | Nieobsługiwany | Prawdopodobnie sprzętowo bliski crumpet |
To nie jest jedna instrukcja dla wszystkich modeli
Niżej opisuję wyłącznie procedurę dla Echo Dot 2 RS03QR na Windows 11. Nie podłączaj innych urządzeń do tego samego skryptu z parametrem biscuit. Dla Echo Dot 3, Echo Show i Echo Input trzeba kierować się osobną instrukcją ich nazwy kodowej. W szczególności numer D9N29T i C78MP8 oznaczają dwie różne odmiany Echo Dot 3, z różnym statusem wsparcia.


Tabelę i odnośniki do instrukcji każdego urządzenia można znaleźć w liście Supported Echos dla testowanego wydania. Przed zakupem używanego głośnika do przeróbki sprawdź konkretny kod modelu, nie tylko nazwę handlową i wygląd.
- Komputer z Windows 10 lub 11, procesor Intel albo AMD. Sterowniki opisane w tej instrukcji nie są przeznaczone dla Windows ARM.
- Echo Dot 2 RS03QR oraz przewód micro-USB, który na pewno przenosi dane.
- Działająca instalacja Home Assistant i sieć Wi-Fi z WPA2, do której Echo będzie mogło się połączyć.
- Dostęp do konta użytkownika Windows z możliwością uruchomienia PowerShell jako administrator.
- Czas na przygotowanie narzędzi, pobranie plików i spokojne dokończenie instalacji.
Zanim rozpoczniesz zapis pamięci
Wyłącz usypianie komputera, podłącz laptop do zasilacza i nie dotykaj kabla USB podczas działania Firebreak. Procedura odblokowania usuwa dotychczasowe dane i może uszkodzić urządzenie. Nie konfiguruj Echo przez aplikację Alexa ani nie pozwalaj mu pobierać aktualizacji Amazon przed odblokowaniem. Nie zakładaj także, że nowa wersja projektu zawsze korzysta z tego samego obrazu Fire OS.
Autorzy echo-dot-assist otwarcie zaznaczają, że projekt nie przeszedł niezależnego audytu. W moim przypadku przeróbka się udała, ale nie jest to operacja, którą można obiecać bez ryzyka.
Komputer z Windows 11: komplet przygotowanych narzędzi
Instalowałem wszystko po kolei, sprawdzając wyniki. To istotne, bo większość niepowodzeń na początku dotyczyła środowiska Windows, a nie samego Echo. Na tym etapie urządzenie nie musi być jeszcze podłączone.
Git for Windows
Uruchomiłem Windows PowerShell i wykonałem:
PowerShell, instalacja Git
winget install Git.Git
Git był już na komputerze, więc Winget zaproponował aktualizację. Po instalacji otrzymałem:
Wybrane komunikaty z mojego terminala
Found an existing package already installed. Trying to upgrade the installed package...
Found Git [Git.Git] Version 2.56.0.4
Downloading https://github.com/git-for-windows/git/releases/download/v2.56.0.windows.4/Git-2.56.0.4-64-bit.exe
Successfully verified installer hash
Starting package install...
Successfully installed
Sprawdzenie wersji
git --version
# git version 2.56.0.windows.4
Razem z Git zainstalował się Git Bash. W nim uruchomimy później instalator. W PowerShell nie wszystkie polecenia powłoki Bash działają tak samo.
Python
Na początku system nie miał działającego Pythona. Polecenie python --version sugerowało Microsoft Store, a py --version zwracało błąd braku polecenia. Zainstalowałem Python 3.13 przez Winget:
PowerShell, instalacja Pythona
winget install --id Python.Python.3.13 -e
Wynik po otwarciu nowego terminala
python --version
# Python 3.13.16
py --version
# Python 3.13.16
Po instalacji trzeba zamknąć terminal i otworzyć go ponownie. Jeśli system nadal wyświetla skrót do Microsoft Store, należy sprawdzić aliasy wykonywania aplikacji, a nie w ciemno doinstalowywać kilka kolejnych wersji.
ADB i Fastboot
Kolejne narzędzia to Android Platform Tools. ADB służy do komunikacji z uruchomionym systemem Android, a Fastboot między innymi do pracy z bootloaderem.
PowerShell, instalacja Android Platform Tools
winget install Google.PlatformTools
Odpowiedzi z mojego komputera
adb version
# Android Debug Bridge version 1.0.41
# Version 37.0.1-15733141
fastboot --version
# fastboot version 37.0.1-15733141
uv
Ostatnim narzędziem instalowanym przez Winget było uv. Program uruchamia Firebreak i dba o jego środowisko Pythona.
PowerShell, instalacja uv
winget install astral-sh.uv
Mój wynik
uv --version
# uv 0.13.6 (329bf9448 2026-10-26 x86_64-pc-windows-msvc)
Na tym etapie wszystkie programy były dostępne. Nie musiałem osobno pobierać ADB, Fastboot ani ręcznie przygotowywać wirtualnego środowiska Pythona.
Sterowniki USB MediaTek i Fastboot
To część, na której łatwo się potknąć. Sterowniki pobieramy ze wskazanych w dokumentacji plików katalogu Microsoft Update. Użyłem PowerShell uruchomionego jako administrator. Pierwsza próba bez odpowiednich uprawnień skończyła się błędem, więc od razu pokażę również, jak wyglądała poprawka.
Ważna drobnostka z naszej instalacji
Po uruchomieniu konsoli jako administrator katalog roboczy często jest ustawiony na C:\Windows\System32. Najpierw wpisz cd $env:TEMP. Dzięki temu pobrane i rozpakowane pliki nie trafią do katalogu systemowego.
PowerShell jako administrator, pełny zestaw poleceń
cd $env:TEMP
curl.exe -fo fastboot.cab https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2016/10/20940218_0ae8695c01fb84d1fdea5c9a04baf336ec5b1ba7.cab
curl.exe -fo mtk.cab https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2016/07/20896845_fdc6bb5aa9a9bac99adf85d931d6c21d1130a96e.cab
mkdir -Force fastboot, mtk
expand -F:* fastboot.cab fastboot
expand -F:* mtk.cab mtk
pnputil /add-driver fastboot\tplink_winusb.inf /install
pnputil /add-driver mtk\cdc-acm.inf /install
W moim przypadku archiwum sterownika Fastboot miało około 8,18 MB, natomiast MediaTek około 126 KB. Rozpakowanie zakończyło się komunikatami 12 files total i 4 files total. Przy pierwszej próbie uruchomiłem instalację z niewystarczającymi uprawnieniami:
Pierwsza próba, rzeczywisty błąd
Adding driver package: tplink_winusb.inf
Failed to add driver package: Odmowa dostępu.
Total driver packages: 1
Added driver packages: 0
Adding driver package: cdc-acm.inf
Failed to add driver package: Odmowa dostępu.
Total driver packages: 1
Added driver packages: 0
Nie trzeba wtedy pobierać wszystkiego jeszcze raz. Wystarczy otworzyć PowerShell jako administrator i wskazać już rozpakowane pliki, w moim przypadku leżące w katalogu tymczasowym:
Poprawka, gdy pliki już znajdują się w TEMP
pnputil /add-driver "$env:TEMP\fastboot\tplink_winusb.inf" /install
pnputil /add-driver "$env:TEMP\mtk\cdc-acm.inf" /install
Po poprawnym uruchomieniu instalacji obie paczki zostały dodane:
Moje potwierdzenie instalacji sterowników
Adding driver package: tplink_winusb.inf
Driver package added successfully.
Published Name: oem34.inf
Total driver packages: 1
Added driver packages: 1
Adding driver package: cdc-acm.inf
Driver package added successfully.
Published Name: oem84.inf
Driver package installed on device: USB\VID_0E8D&PID_2000\[identyfikator usunięty]
Total driver packages: 1
Added driver packages: 1
Nazwy oem34.inf i oem84.inf były właściwe dla mojego systemu. Na innym komputerze numery mogą być inne. Istotny jest komunikat pomyślnego dodania pakietu. Po zakończeniu i upewnieniu się, że pliki nie będą już potrzebne, archiwa i rozpakowane katalogi tymczasowe można usunąć.
Pobranie repozytorium i wybranie wersji
Pozostałą część instalacji wykonywałem w Git Bash. Nie uruchamiamy samego skryptu z PowerShell. Kiedy przez pomyłkę spróbowałem użyć tam potoku z poleceniem head, Windows zwrócił informację, że nie zna takiej komendy. Repozytorium pobrało się poprawnie, ale wybór wersji się nie udał.
Git Bash, pełny zestaw komend
git clone https://github.com/Gamer92000/echo-dot-assist.git
cd ~/echo-dot-assist
git checkout "$(git tag -l 'v*' --sort=-creatordate | head -1)"
git describe --tags --exact-match
Repozytorium jest duże, między innymi z powodu plików historii i dodatkowych danych. U mnie pobranie zakończyło się komunikatem Resolving deltas: 100% (2752/2752) oraz pobraniem zasobów LFS. Wybrana wersja to:
Rzeczywisty wynik Git Bash, skrócono pojedynczy opis commita
Note: switching to 'v2026.10.30.190755-beta'.
You are in 'detached HEAD' state.
HEAD is now at 01c199a Issues #79, #82: no pause guessed without the aligner's answer
git describe --tags --exact-match
v2026.10.30.190755-beta
Komunikat detached HEAD jest tutaj oczekiwany. Pracujemy na opublikowanym tagu, zamiast na zmieniającej się gałęzi main. Instrukcja autora wybiera najnowsze dostępne wydanie, które ma gotowy build. Nie ma sensu na sztywno wymuszać mojej wersji, jeżeli obecna dokumentacja projektu wskazuje nowszy, sprawdzony wariant.
Dlaczego nie kopiować ślepo najnowszego Firebreak
Mój instalator uruchomił [email protected] i przygotował Fire OS 6574.1 (NS65741/8146). W trakcie instalacji pojawiła się informacja, że dostępny jest nowszy Firebreak 0.10.0. Nie podmieniałem go ręcznie. Wersję narzędzia oraz obrazu systemu należy pozostawić zgodną z używanym wydaniem echo-dot-assist. Nowsza dokumentacja Firebreak może opisywać inne kompilacje Fire OS, co nie oznacza, że należy je wgrywać zamiast tych wskazanych przez skrypt.
Sprawdzamy plan przed odblokowaniem
Git Bash, bezpieczna symulacja
scripts/setup.sh biscuit --dry-run
Instalator pokazał etapy przygotowania, pobierania, USB, odblokowania, instalacji w obu slotach, roota, buildu, Wi-Fi oraz uruchomienia. Poniżej wybrane fragmenty z mojego przebiegu:
Skrót planu z –dry-run, bez symulowanych operacji wykonanych
Echo -> Home Assistant Echo Dot 2nd gen (2016) / biscuit
0/10 Tools on this PC
1/10 Downloads
3/10 Micro-USB cable
4/10 Unlock, boot TWRP
5/10 Stock firmware into both slots
6/10 Root
7/10 Build
8/10 Lock down, join Wi-Fi
9/10 Install
10/10 "Echo Dot 2nd gen (2016)" is running
dry run: nothing is run
Ważne: 10/10 podczas takiego testu nie oznacza jeszcze przerobionego Echo. Sam program informuje dry run: nothing is run. Dopiero kolejna komenda rozpocznie rzeczywiste działania.
Właściwa instalacja i odblokowanie Echo Dot
Git Bash, rzeczywisty instalator
scripts/setup.sh biscuit
Po starcie pojawił się komunikat ostrzegawczy. Za pierwszym razem wpisałem tylko literę y i otrzymałem:
Moja pierwsza próba potwierdzenia
! This unlocks and wipes the Echo and can brick it.
! Nothing here was reviewed by anyone but its author.
? Type yes to start: y
Nothing done.
Trzeba wpisać dokładnie yes. Po ponownym uruchomieniu instalator rozpoczął sprawdzanie narzędzi i pobieranie plików. Dla jasności: akceptacja tego ostrzeżenia jest decyzją użytkownika, bo odblokowanie rzeczywiście wiąże się z zapisem pamięci urządzenia.
Ręczny plik boot-root.zip
Skrypt zatrzymał się na prośbie o ręczne pobranie archiwum z wątku XDA. Nie trzeba go rozpakowywać ani przerabiać. Trzeba pobrać dokładnie plik wskazany przez autora i zapisać go w katalogu Downloads. Forum może wymagać bezpłatnego logowania.
Komunikat instalatora, uporządkowany dla czytelności
Download these 1 file(s) yourself, in your browser
Save each into ~/Downloads (or this folder)
boot-root.zip
attachment in:
https://xdaforums.com/t/unlock-root-twrp-unbrick-amazon-echo-dot-2nd-gen-2016-biscuit.4761416/
Waiting for you to save 1 file(s) into ~/Downloads
W moim przypadku po zapisaniu archiwum program potwierdził ✓ boot-root.zip i przeszedł dalej automatycznie. Jeżeli plik nie jest wykrywany, trzeba sprawdzić nazwę, w tym to, czy przeglądarka nie dopisała (1).
Podłączenie przez USB i gest wejścia w Fastboot
Następny komunikat wyraźnie wskazywał moment podłączenia urządzenia. Zasilałem Echo przewodem micro-USB z komputera, a zwykły zasilacz Echo pozostał odłączony. Kiedy Firebreak poprosił o wejście w Fastboot, wykonałem gest opisany przez autora:
- Odłączyłem przewód USB od Echo.
- Nacisnąłem i przytrzymałem przycisk akcji z kropką.
- Trzymając przycisk, ponownie podłączyłem micro-USB.
- Zwolniłem przycisk, kiedy pierścień LED zaświecił na zielono.
Fragment komunikatu Firebreak z mojej instalacji
Waiting for a Dot on USB. Connect it with a USB cable.
A Dot that runs Amazon's own software needs fastboot mode.
Unplug the USB cable, press and hold the action button,
plug the cable back in, and let go when the light ring turns green.
Keep the Dot plugged in until firebreak finishes.
Jeżeli pierścień stale świeci na niebiesko, należy sprawdzić transmisję USB, sterowniki lub port komputera. Biały pierścień oznacza, że urządzenie pracuje w środowisku odzyskiwania. W trakcie zapisu pamięci nie należy niczego odłączać.
Rzeczywiste wyniki Firebreak
W moim przebiegu instalator użył Firebreak 0.8.0. Pobrał potrzebne pakiety, zweryfikował obraz OTA 8146, a następnie wykonał siedem operacji. Zachowałem fragment logu, bo to najlepszy dowód, co rzeczywiście wydarzyło się na urządzeniu.
Prawdziwe czasy i etapy z naszej konsoli, skrócone nazwy pobieranych plików
Version 0.8.0 of firebreak is outdated.
Version 0.10.0 was released 1 day ago.
downloading amonet-biscuit-v2.0.1.zip 73.6 MB (100%)
downloading boot-root.zip 473.6 KB (100%)
downloading update-kindle...8146...bin 108.9 MB (100%)
OK OTA 8146 verified
[1/7] unlocking with amonet v2.0.1 8s (1m 26s total)
[2/7] waiting for v2 recovery to start 39s (2m 06s total)
[3/7] wiping cache and data 3s (2m 09s total)
[4/7] installing Fire OS 6 8146, first slot 69s (3m 19s total)
[5/7] installing Fire OS 6 8146, second slot 94s (4m 53s total)
[6/7] installing boot-root 8s (5m 01s total)
[7/7] waiting for rooted Fire OS 6 to boot 28s (5m 30s total)
The Dot is rooted: Fire OS 6574.1 (NS65741/8146), with root adb.
Ten etap trwał w logu około 5 minut i 30 sekund, licząc od początku operacji Firebreak. Nie obejmuje to instalowania narzędzi, pobierania repozytorium, ręcznego załącznika ani późniejszej konfiguracji. Co ważne, oba sloty systemowe zostały zapisane, a urządzenie uruchomiło się już z dostępem root przez ADB.
Potwierdzenie z głównego instalatora
✓ firebreak unlock fireos6
✓ Echo is up
✓ rooted, on NS65741
✓ Fire OS NS65741 in both slots (firebreak)
✓ root adb already
Następnie skrypt rozpakował wymagany pakiet, pobrał build dokładnie dla wybranego commita i sprawdził wersję firmware na urządzeniu. Nie wpisywałem ręcznie komend fastboot flash ani nie dobierałem obrazów partycji.
Kolejny etap w moim logu
✓ Unpacking boot-root
✓ Downloading the release build of this commit
✓ Echo is up
✓ Checking the Echo's firmware
Wi-Fi, które kilka razy odmawiało współpracy
Odblokowanie przebiegło bez problemów, za to konfiguracja sieci trochę mnie zatrzymała. Instalator wykrył pobliskie SSID, ale kolejne próby połączenia kończyły się błędem podczas uzgadniania kluczy WPA2. Nie publikuję nazw swoich sieci ani hasła. W samym dzienniku hasła zresztą nie były wyświetlane.
Rzeczywisty komunikat błędu, zanonimizowane dane sieci
✓ Copying hassmic to the Echo
✓ Locking down the Echo's internet access
Networks the Echo hears:
[lista wykrytych SSID usunięta]
? Wi-Fi name (WPA2, same network as Home Assistant): [SSID]
? Wi-Fi password:
✗ Joining Wi-Fi
ssid=[SSID]
wpa_state=4WAY_HANDSHAKE
not connected (4WAY_HANDSHAKE): the password is probably wrong
full log: build/biscuit/setup.log
Enter try again s skip this step q quit
Próbowałem ponownie, również z innym SSID. W logu kilka razy pojawiał się ten sam stan 4WAY_HANDSHAKE. To etap negocjacji zabezpieczeń Wi-Fi, więc przyczyną może być hasło, ale również konfiguracja WPA2/WPA3, punktu dostępowego albo jakość połączenia. Nie miałem podstaw, aby uznać jedną z tych przyczyn za pewną.
W końcu kolejne podejście do wybranej sieci zakończyło się komunikatem:
Moje pierwsze udane połączenie
? Wi-Fi name (WPA2, same network as Home Assistant): [SSID]
? Wi-Fi password:
✓ Joining Wi-Fi
! Do not restart the Echo until it is installed.
Tip: give it a fixed address in your router (DHCP reservation).
Jeżeli trafisz na podobny problem, zacznij od sprawdzenia hasła i rodzaju szyfrowania, a potem zasięgu, filtracji MAC i izolacji klientów na access poincie. Nie odblokowuj od nowa głośnika tylko dlatego, że Wi-Fi nie chce się połączyć. Dopóki instalator jest uruchomiony i urządzenie nie jest poprawnie zainstalowane, nie restartuj Echo wbrew jego instrukcji.
Końcowe 10/10
Po połączeniu z Wi-Fi program zapytał o plik ustawień z innego Echo. Ponieważ instalowałem pierwszą sztukę, zostawiłem to pole puste i nacisnąłem Enter. Następnie satelita został zainstalowany, Echo uruchomiło się ponownie i przeszło kontrolę działania.
Końcowy wynik mojej instalacji
? Settings to start with: a file exported on another Echo's settings page (Enter for none):
✓ Echo is up
✓ Installing (the Echo reboots)
✓ Echo is up
✓ Satellite started
✓ Checking it stays up
10/10
✓ Tools on this PC
✓ Downloads
✓ USB access for the unlock
✓ Micro-USB cable
✓ Unlock, boot TWRP
✓ Stock firmware into both slots
✓ Root
✓ Build
✓ Lock down, join Wi-Fi
✓ Install
✓ "Echo Dot 2 943ee2" is running
To już nie była symulacja. Echo Dot 2 naprawdę działał z nowym oprogramowaniem, a instalator potwierdził uruchomienie procesu hassmic. Dopiero po takim komunikacie odłączyłem głośnik od komputera i wróciłem do normalnego zasilania.
Dodawanie Echo Dot do Home Assistant
Po instalacji otworzyłem w Home Assistant Ustawienia → Urządzenia i usługi. System wykrył nowe urządzenie ESPHome o nazwie Echo Dot 2 943ee2. Wybrałem dodawanie integracji i przeszedłem do konfiguracji asystenta. To bardzo wygodne, bo nie trzeba tworzyć własnych automatyzacji MQTT ani wpisywać YAML, aby zacząć rozmawiać z domem.
Jeżeli urządzenie nie pojawi się automatycznie, można dodać integrację ESPHome ręcznie. Potrzebny jest adres IP Echo oraz port 26053. Przy pierwszym parowaniu pole klucza szyfrowania pozostawiamy puste, zgodnie z instrukcją projektu. Jeżeli korzystasz z VLAN-ów, sprawdź routing oraz zasady firewalla pomiędzy satelitą i Home Assistant.
| Parametr | Co ustawiłem |
|---|---|
| Nazwa urządzenia | Echo Dot 2 943ee2, identyfikator zależy od egzemplarza |
| Integracja | ESPHome |
| Ręczne dodawanie | Adres IP urządzenia, port 26053 |
| Wybrany asystent | Potok Assist w języku polskim |
| Słowo wybudzające | Alexa |
Na stronie urządzenia można wybrać potok Assist i słowo wybudzające. W dodatkowej konfiguracji ESPHome jest też opcja pozwalająca urządzeniu wykonywać działania w Home Assistant. Dokumentacja projektu zaleca włączenie jej dla pewnych funkcji, np. komunikatów połączeń Bluetooth i mechanizmu współpracy wielu Echo.
Panel WWW samego głośnika
Projekt udostępnia panel administracyjny w sieci lokalnej. Otwiera się go w przeglądarce pod adresem:
Adres panelu, wpisz rzeczywisty adres IP
http://ADRES_IP_ECHO:28931/
Dostęp potwierdzamy naciśnięciem przycisku akcji na obudowie. W panelu sprawdzałem później ustawienia dźwięku i mikrofonu. Na ekranie pojawił się status Home Assistant connected. Nie należy wystawiać tego panelu do internetu.
Polski Assist: konfiguracja lokalna
Do samej instalacji echo-dot-assist nie jest potrzebny abonament Nabu Casa. Żeby jednak Echo rozumiało polski, trzeba mieć działający potok głosowy. W moim Home Assistant istniał już asystent „W pełni asystent lokalny”, oparty na faster-whisper i Piper. Wystarczyło przypisać go do Echo.
Jeżeli nie masz jeszcze tych usług, w instalacji Home Assistant OS przejdź do Ustawienia → Aplikacje, zainstaluj Whisper oraz Piper i je uruchom. Powinny zostać wykryte przez integrację Wyoming w Ustawienia → Urządzenia i usługi. Dodaj obie usługi, następnie przejdź do Ustawienia → Asystenci głosowi i utwórz nowy potok.
| Etap | Ustawienie w mojej instalacji |
|---|---|
| Język asystenta | Polski |
| Rozpoznawanie (STT) | faster-whisper, język polski |
| Agent konwersacyjny | Home Assistant |
| Synteza (TTS) | Piper, język pl_PL |
| Głos | bass (high) |
| Wybudzanie | Alexa, lokalnie na Echo |
To rozwiązanie rozdziela odpowiedzialność. Echo zbiera dźwięk i wykrywa wybudzenie. Whisper rozpoznaje wypowiedź, Home Assistant interpretuje ją i wykonuje polecenie, a Piper przygotowuje odpowiedź. Samo naciśnięcie przycisku akcji na Echo uruchamia nasłuchiwanie bez wypowiedzenia słowa „Alexa”.
Uwaga na nazwy urządzeń
Żeby Assist sterował konkretnymi encjami, trzeba je odpowiednio udostępnić asystentowi. Jeśli rozpoznany tekst jest poprawny, ale Home Assistant zgłasza brak encji, sprawdź nazwę i aliasy urządzenia. Jeśli Whisper zapisuje „brawa” zamiast „brama”, to najpierw popraw rozpoznawanie mowy, bo same aliasy nie rozwiążą źródła problemu.
Pierwsze rozmowy i zaskakująco słaby model auto
Na początek powiedziałem „Alexa, która jest godzina?”. Po nieudanych próbach zajrzałem do debugowania asystenta. W jednym z poprawnych przebiegów faster-whisper rozpoznał słowa Która jest godzina, a Home Assistant wykonał funkcję HassGetCurrentTime i odpowiedział „Jest godzina piętnasta dziesięć”. Sam etap STT trwał wtedy 1,48 sekundy.
To pokazywało, że tor głosowy działa. Przy bardziej naturalnych, dłuższych poleceniach zaczęły się jednak schody. Gdy próbowałem sterować bramą garażową Pileckiego, ten sam fragment mowy był za każdym razem rozpoznawany inaczej. W debugowaniu pojawiały się między innymi:
Przykładowe rozpoznane teksty z naszej diagnostyki
Wąt, brama garażowa pidesy kegnu
Włącz brawa garażowa pileckiego
Home Assistant odpowiadał wtedy, że nie znajduje odpowiedniej encji, co było zrozumiałe, bo otrzymywał zniekształcony tekst. Testy wykonałem zarówno po słowie „Alexa”, jak i po naciśnięciu przycisku na urządzeniu. W obu przypadkach pojawiały się problemy. Nie było więc podstaw, żeby wszystko zrzucać na wybudzanie.
Co zmieniłem w Whisper
Dopiero wtedy zauważyłem, że w ustawieniach Whisper miałem model: auto. W oficjalnej aplikacji Whisper Home Assistant ustawienie to zwykle wybiera na procesorach x86 model base-int8, a na ARM tiny-int8. „Auto” nie oznacza zatem wyboru najdokładniejszego modelu do polszczyzny.
Przetestowałem kolejno small-int8 i medium-int8. Oba rozpoznawały polskie zdania zdecydowanie lepiej, ale na mojej maszynie pojawiła się wyraźna zwłoka. To najważniejszy fragment całego eksperymentu, bo zmiana modelu wystarczyła, aby zmienić ocenę działania tego samego głośnika.
Przykładowa konfiguracja lepszego lokalnego modelu
# W aplikacji Whisper, Konfiguracja:
model: small-int8
language: pl
Po zakończeniu testu można analogicznie wybrać medium-int8. Model pobierze potrzebne pliki przy pierwszym uruchomieniu. Należy pamiętać, że większy model zwiększa obciążenie CPU i pamięci. Nie trzeba przy tym ponownie instalować ani odblokowywać Echo Dot.
Moje porównanie na Intel N100 i 8 GB RAM
Poniższe liczby pochodzą z moich prób na środowisku z procesorem Intel N100 i 8 GB RAM. Nie są wynikiem profesjonalnego benchmarku, a czasy są przybliżone. Podaję je, ponieważ dobrze pokazują różnicę odczuwaną podczas rozmowy. Nie należy przenosić ich bezpośrednio na każdy serwer Home Assistant.
| Wariant | Czas z mojego testu | Rozumienie poleceń | Wrażenia |
|---|---|---|---|
Whisper auto | Szybko, bez stałego pomiaru | Często błędnie | Urządzenie reagowało, ale rzadko trafiało w sens polecenia. |
Whisper small-int8 | Około 7-8 s | Znacznie lepiej | Dało się rozmawiać, jednak opóźnienie było męczące. |
Whisper medium-int8 | Około 15 s | Znacznie lepiej | Za wolno jak na prostą obsługę domu. |
| Home Assistant Cloud, Nabu Casa | Około 1–2 s | Bardzo dobrze | Odpowiedź sprawiała wrażenie niemal natychmiastowej. |
W przypadku lokalnego Whisper warto jeszcze sprawdzić wydajność konkretnej maszyny, liczbę przydzielonych vCPU, obciążenie innych usług i ustawienie beam_size. Na przykład wartość 2 zamiast domyślnie stosowanej często 5 może skrócić czas przetwarzania kosztem części dokładności. Nie traktuję tego jako przetestowanej poprawki, ponieważ nie porównałem jeszcze tak ustawionych modeli w wystarczająco wielu próbach.
Możliwy następny test, nie wynik naszego eksperymentu
# Opcjonalny eksperyment w aplikacji Whisper,
# jeszcze niezweryfikowany na moim zestawie:
model: small-int8
language: pl
beam_size: 2
Nabu Casa zaskoczyła mnie najbardziej
Na koniec uruchomiłem okres próbny Home Assistant Cloud i przełączyłem Echo na przygotowany przez tę usługę potok. Różnica była bardzo wyraźna. Po polsku zaczął rozumieć polecenia dużo pewniej, a odpowiedzi pojawiały się praktycznie od razu, mniej więcej po jednej lub dwóch sekundach. Nie zmieniałem przy tym mikrofonów, kabla sieciowego ani firmware Echo.
To świetnie pokazało, że samo Echo Dot 2 może być dobrym satelitą. Ograniczenie w mojej lokalnej konfiguracji leżało przede wszystkim po stronie użytego modelu STT i wydajności serwera. Chmurowy wariant nie jest jednak całkowicie lokalny. Nagranie do rozpoznania mowy oraz synteza odpowiedzi są przetwarzane przez usługę Nabu Casa. Działania na urządzeniach domowych nadal wykonuje Home Assistant.
Nie mam obecnie aktywnego płatnego abonamentu. Przetestowałem tę usługę w okresie próbnym i jeszcze nie zdecydowałem, czy zostanę z nią na dłużej. Dla osób oczekujących możliwie prostego rozwiązania taka różnica w komforcie korzystania jest jednak ważna.
Co sprawdziłem w ustawieniach Voice
Zanim ustaliłem, że większy Whisper poprawia sytuację, sprawdziłem także panel WWW Echo Dot. Urządzenie było połączone z Home Assistant, a ustawienia mikrofonu nie wyglądały na nietypowe.
| Parametr | Ustawienie z mojego testu | Komentarz |
|---|---|---|
| Mic level | -25 dBFS | Blisko domyślnego -26 dBFS. |
| Noise reduction | Off | Redukcja szumów nie była włączona. |
| Wake sound | Off | Wyłączony dźwięk po wybudzeniu. |
| Wake sound removal | Off | Funkcja eksperymentalna nieużywana. |
| Wake word in the request | Off | Słowo „Alexa” nie było dodawane do polecenia. |
| End of request heard on the Echo | Off | Urządzenie nie kończyło lokalnie całego żądania. |
Istnieje zgłoszenie #82 dotyczące ucinania krótkich wypowiedzi i wpływu dźwięku wybudzającego. Warto je znać, ale nie utożsamiam tego problemu automatycznie z moim przypadkiem. U mnie Wake sound był wyłączony, a błędy występowały również po przycisku.
Do diagnostyki najlepiej wykorzystać debugowanie potoku Assist. Widać tam, jaki tekst powstał w STT, czy Home Assistant znalazł zamiar, jaką encję próbował obsłużyć i jaką odpowiedź przekazał do TTS. Jeśli rozpoznany tekst jest zły, nie ma sensu zmieniać nazw urządzeń na chybił trafił.
Jak odróżnić dwa typowe błędy
Źle rozpoznany tekst: to problem na etapie nagrania lub STT. Poprawny tekst, ale brak encji: sprawdź udostępnienie urządzenia do Assist, aliasy i obsługiwany typ działania. Szczególnie ostrożnie testuj bramy i zamki. Na początek użyj pytań o godzinę, odczyt temperatury lub włączania zwykłego światła.
Jeśli Whisper nadal rozpoznaje losowe słowa, można na czas diagnozy zapisywać nagrania WAV przez opcje debugowania Home Assistant i odsłuchać, czy głos jest czysty. Takiego testu nie zdążyłem wykonać, ponieważ sama zmiana modelu wyraźnie poprawiła rozpoznawanie. Nie będę więc twierdził, że pomierzyłem parametry mikrofonu.
Bezpieczeństwo, sieć i aktualizacje
Po udanej instalacji warto wykonać kilka porządkowych działań. To szczególnie ważne, bo nie pracujemy z typowym urządzeniem ESPHome, tylko ze zmodyfikowanym głośnikiem, którego system i mechanizm aktualizacji powstały na bazie innego produktu.
- W routerze przygotuj rezerwację DHCP. Stały adres ułatwi ponowne wejście na panel urządzenia.
- Panel konfiguracyjny na porcie
28931udostępniaj tylko w zaufanej sieci, bez przekierowania portów z internetu. - Zachowaj kopię pliku
secrets/update.key. Jest używany do podpisywania aktualizacji wykonywanych przez użytkownika. - Nie publikuj tokenu Music Assistant z końcowego logu ani plików
secrets/. W moim poradniku usunąłem identyfikatory sieci i token parowania. - Zanim wgrasz nową wersję, sprawdź historię zmian oraz zgodność konkretnego wydania z modelem
biscuit. - Jeżeli potrzebujesz innych funkcji, np. Music Assistant czy Bluetooth, najpierw przeczytaj instrukcję modelu. Nie włączałem ich jeszcze w swoich testach.
Instalator podaje również metodę tymczasowego uruchomienia ADB po Wi-Fi oraz aktualizacji OTA. Nie będę przepisywał ich jako uniwersalnych recept, bo składnia i warunki mogą się zmieniać między wydaniami. Aktualne informacje są w instrukcji GUIDE.md.
Co robić, gdy instalacja się przerwie?
Instalator potrafi wznawiać większość czynności. Jeśli został zatrzymany poza krytycznym zapisem pamięci, zwykle wystarczy ponownie uruchomić Git Bash i wykonać:
Git Bash, wznowienie instalacji
cd ~/echo-dot-assist
scripts/setup.sh biscuit
W moim dzienniku pojawiały się także komunikaty rm: cannot remove ... Device or resource busy z katalogu /tmp. Wystąpiły po przerwaniu jednej z prób i nie oznaczały uszkodzenia Echo. Późniejszy instalator mimo tego przeszedł do końca. Nie polecam na ślepo usuwać losowych plików z katalogów systemowych. Najpierw trzeba ocenić, na którym etapie program został zatrzymany.
Dodatkowy dziennik instalacji znajduje się w repozytorium w ścieżce build/biscuit/setup.log. W razie problemów to lepszy punkt wyjścia niż powtarzanie całego odblokowania. Przed wysyłką takiego logu do innych osób trzeba usunąć dane sieciowe, tokeny i inne informacje poufne.
Czy przerobiłbym Echo Dot 2 ponownie?
Tak, choć pod jednym warunkiem: traktowałbym to nadal jako eksperyment dla osoby, która potrafi poradzić sobie z terminalem i akceptuje ryzyko. Najbardziej niepokoiła mnie operacja odblokowania i zapisu firmware, a paradoksalnie właśnie ona przebiegła u mnie bez kłopotów. Więcej czasu straciłem na sterownikach Windows, Wi-Fi oraz szukaniu przyczyny błędów rozpoznawania polszczyzny.
Wynik jest naprawdę użyteczny. Echo Dot 2 reaguje na „Alexa”, potrafi przekazać wypowiedź do Home Assistant i odtworzyć odpowiedź po polsku. Nie muszę korzystać z klasycznej aplikacji Alexa ani konta Amazon do obsługi swojego domu. Mogę też sam zdecydować, czy rozpoznawanie głosu ma odbywać się na moim serwerze, czy w Home Assistant Cloud.
Test na Intel N100 z 8 GB RAM pokazał jednak wyraźnie, że „działa lokalnie” to jeszcze nie to samo co „działa wygodnie”. Model auto był szybki, ale regularnie mylił polskie zdania. small-int8 i medium-int8 rozumiały znacznie lepiej, lecz około 7-8 lub 15 sekund oczekiwania to za długo na proste komendy. Dopiero wariant Nabu Casa zapewnił mi komfort, którego oczekiwałem od domowego asystenta.
Na razie pozostaję przy testach. Chcę jeszcze sprawdzić dłuższe użytkowanie, większą liczbę naturalnych poleceń i możliwości przyspieszenia lokalnego STT. Kiedy pojawią się nowe wyniki, wrócę do tematu. Sam fakt, że urządzenie z 2016 roku dostało drugie życie w Home Assistant, uważam za dobry punkt wyjścia.
Jeżeli korzystasz z Home Assistant i masz stare Echo Dot 2, daj znać, jakiego modelu STT używasz i na jakim sprzęcie. Najciekawsze będą porównania rzeczywistych opóźnień oraz poprawności rozpoznawania polskich nazw urządzeń.
Dalsza nauka Home Assistant
Jeżeli dopiero budujesz własny system, zajrzyj także do mojego kursu Home Assistant na MarkLabs. Opisuję tam krok po kroku podstawy instalacji, integracje, automatyzacje i wiele praktycznych projektów.
Dokumentacja i źródła
Podstawą poradnika jest dziennik rzeczywistej instalacji z 1 listopada 2026 r. oraz oficjalna dokumentacja oprogramowania. Tam, gdzie opisałem możliwości projektu, których sam jeszcze nie sprawdziłem, wyraźnie to zaznaczyłem. Cytowane komunikaty konsoli pochodzą z mojego przebiegu, a zrzuty zawierające informacje poufne nie zostały opublikowane.
- echo-dot-assist: główne repozytorium
- Windows: instrukcja instalacji Echo Dot 2
- Echo Dot 2 biscuit: opis sprzętu i firmware
- GUIDE.md: ustawienia Voice, wake word i funkcje
- Firebreak: odblokowanie i sterowniki Windows
- XDA: załącznik boot-root.zip i informacje o odblokowaniu
- Home Assistant: dokumentacja Whisper i wyboru modelu
- Home Assistant: całkowicie lokalny asystent
- Home Assistant: rozpoznawanie i synteza w chmurze
- Zgłoszenie echo-dot-assist #82: wake sound
Stan artykułu: 1 listopada 2026 r. Testowane: Echo Dot 2 RS03QR, echo-dot-assist v2026.10.30.190755-beta, Windows 11 oraz lokalny Assist na Intel N100 / 8 GB RAM. Czasy rozpoznawania pochodzą z praktycznych prób i są przybliżone. Wszystkie polecenia modyfikujące urządzenie wykonujesz na własną odpowiedzialność.
Marek | MarkLabs
