ESPHome problem z OTA

Panowie napiszcie co może być przyczyną takiego błędu ?


Moduł został ręcznie zaprogramowany i jest połączony z siecią WIFI , plik yaml jest na 100% ok , bo inny moduł z identyczną konfiguracją pozwala się kompilować przez WIFI.
Różnica jest tylko taka, że ten co działa to ESP8266, a ten to ESP8285. Oczywiście jak podłączę moduł przez UART, to bez problemu mogę wgrać pobrany plik bin. Nie chce tylko gadać po WIFI , czyli jak chcę zmodyfikować yaml i wysłać po WIFI, to dostaję taki ekran jak na foto

Nie kompilujesz przez Wi-Fi, kompilujesz jak zawsze, tylko flashowanie jest wykonywane “przez powietrze”.

Po pierwsze zrób retry 9 razy. (skąd ta liczba? - po 8 wywrotkach pod rząd firmware powinno przejść w tryb safe mode, a wtedy flashowanie się uda, jeśli przyczyną jest brak zasobów w ESP przy dość rozbudowanych funkcjach użytych w firmware).

Po drugie ustal czy ESP nie ma problemów z zasięgiem Wi-Fi. Jeśli to problem z WiFi, to flashowanie może zrywać w losowych momentach (sugeruję restart AP lub routera WiFi przed kolejnymi próbami powyżej dziesiątej “w jednym ciągu”).

Po trzecie (jeśli nie ma) dołóż do YAMLa przełącznik/przycisk safe_mode on umożliwia restart w specjalnym trybie umożliwiającym OTA nawet jeśli podczas normalnej pracy brakowałoby RAMu na prawidłowe wykonanie OTA. Sugeruję dokompilować taki przełącznik przed dalszymi próbami (wtedy nie będzie problemów z kolejną aktualizacją).

Ewentualnie sprawdź czy nie zmieniałeś frameworka albo innych kluczowych ustawień.

Wrzuć do posta oryginalny YAML i ten z którego próbujesz wrzucić OTA. (edit: teraz już możesz nie wrzucać, ale umówmy się na przyszłość, że prawidłowo zadane pytanie powinno go zawierać, powinno też zawierać logi w postaci tekstu, grafika taka jak wrzuciłeś jest świetna jako pomocnicza - tu psim swędem wystarczyła, bo wszystkie istotne informacje się na niej przypadkowo załapały, ale mogłaby nie wystarczyć, zresztą z telefonu nie byłem w stanie jej na spokojnie przeanalizować, więc szukałem dziury w całym… Wątek już otagowałem do FAQ, więc potwierdź czy rozwiązanie pomogło)

PS Doczytałem, że chodzi o ESP8285 więc frameworka z pewnością nie zmieniasz (pisanie z telefonu to nie robota…).

PPS Jest jeszcze potencjalnie możliwa inna przyczyna - uszkodzony flash w obszarze nie wykorzystywanym do normalnej pracy a jedynie w trakcie OTA (ale wtedy przy każdej kolejnej próbie OTA tego samego, w sensie identycznego firmware = (bez modyfikacji YAML, ani wersji ESPHome) wyłoży się dokładnie w tym samym miejscu)

last edit: UWAGA - na obrazku dopatrzyłem się przyczyny - zdefiniowałeś moduł jako esp12e, a on ma 4MB flasha.
Wszystko powyżej przyda się na inne okazje.

Masz nieprawidłowo zdefiniowaną płytkę - zdefiniowałeś ESP8266 z 4MB flasha, a tymczasem masz ESP8285, który ma 1MB.
Przy wgrywaniu po kabelku masz uszkodzoną partycję (podział flasha na partycje jest dokonywany na podstawie definicji płytki przy kompilacji) jakkolwiek to nie rzutuje podczas normalnej pracy o ile nie używasz flasha powyżej 1MB, ale OTA nie ma prawa się udać, bo odwołuje się do nieistniejącego obszaru “na dysku”.
Zmień definicję płytki na prawidłową, wgraj po kablu, a potem OTA już będzie działać.

zmień definicję na

esp8266:
  board: esp8285
1 polubienie

Przeczytałem Twój wpis, jeszcze przed ostateczną edycją i poszedłem przeszukiwać dokumentację


Już miałem napisać, że nie takich odpowiedzi oczekiwałem od doswiadczonego użytkownika ESPHome, ale uratowałeś się sam :slight_smile:
Wpis po edycji jest wyczerpujący i wyjaśnia możliwe przyczyny, a przede wszystkim pokazuje powód błędu.
Dziękuję Bardzo
Dwa słowa co do kompilacji i flashowania - wgrywania po WIFI , nie możesz twierdzić, że kompialcja to jedno, a wgranie- flash, to drugie, bo klikając INSTALL i dalej wybierając WIFI, nie możesz wykonać tylko jednej z tych dwóch czynności, czyli tak naprawdę pisząc kompilacja przez WIFI, wiadomo co miałem na myśli.
Reszta pełen profesjonalizm, jeszcze raz Dzięki :slight_smile:

Podtrzymam to co napisałem, nie kompilujesz przez WiFi, kompilacja odbywa się stacjonarnie - procesor i pliki źródłowe są używane w tej samej maszynie, na której powstaje też binarny plik wynikowy stanowiący firmware dla ESP (czy RP2040), nie będę dyskutował o nazwach czynności w menu, bo tam nawet nie ma słowa o kompilacji… (a to menu zmieniało się już wielokrotnie przez te parę lat).

Natomiast podczas “instalacji OTA” nawet nie zawsze jest wykonywana kompilacja - jeśli robiłeś to wielokrotnie pod rząd, to pewnie zauważyłeś, że jeśli nie ma zmian w YAMLu (czy komponentach online), to kompilacja jest w ogóle pomijana - wcześniej skompilowane elementy (obiekty) są tylko linkowane ponownie w firmware (prawda jest taka, że i ten krok mógłby być pominięty, gdyby firmware było przechowywane w cache, tak jak było kiedyś).

PS Przed edycją użyłem sformułowania safe boot, jest ono prawidłowe, w odniesieniu do safe mode choć nie występuje może w dokumentacji.

Informacyjnie, dla tych co zaczynają przygodę z ESPHome, zła definicja płytki z ESP może przyspożyć sporo problemów. Mój opisany wcześniej niech będzie przykładem. Po zmianie definicji na poprawną, wszystko stało się proste. Over The Air śmiga aż miło.