ESPHome Problem po aktualizacji 2024.6.0

Mam jedno urządzenie w ESPHome i nie mogę sobie poradzić z nowościami.
Czy mogę prosić o pomoc co mam zmienić. Dodam czytałem drugi post i kombinowałem bez skutecznie.

substitutions:
  name: esp32-bluetooth-proxy-106fd8
packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: False

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

i2c:
  sda: 21
  scl: 22
  scan: true
  id: bus_a

binary_sensor:
  - platform: status
    name: "ESP czujnik status"
    id: esp_status

sensor:
  - platform: sht3xd
    temperature:
      name: "Temperatura Maciej"
    humidity:
      name: "Wilgotność Maciej"
    address: 0x44
    update_interval: 30s

Z góry bardzo dziękuję.

w tym kawałku co podałeś to moim zdaniem nic nie wymaga zmiany. Zmiany dotyczyły głównie ota i magistrali wire.

To jest cały kod. I nie mogę zrobić aktualizacji, pojawia mi się:
image

EDIT:
Temat nie aktualny - ogarnąłem. Wystarczyło dopisać 3 linijki z OTA - tak dla potomnych, może komuś się przyda.

Jakim cudem w oryginalnym YAMLu nie miałeś linijki z ota: skoro jak rozumiem właśnie jej dotyczył problem.

Jeśli nie było tej linijki, to w ogóle OTA nie jest możliwa i to nie ma nic wspólnego z aktualizacją IDE.

Kod który jest powyżej działał przez około 2 lata. Jak to się stało, że nie było OTA, nie wiem. Gdy pojawił się problem z aktualizacją, znalazłem ten temat. Jak @MariuszAK, wskazał, że tak naprawdę zmiana dotyczyła głównie OTA i 1-wire, a ja mam tylko i2c to skapnąłem się że u mnie brak OTA.

Inne pytania zadam - czy przez te 2 lata kiedykolwiek próbowałeś aktualizować firmware przez OTA czy zawsze robiłeś to po kabelku USB?
A może po prostu nigdy nie robiłeś aktualizacji firmware w tym urządzeniu?

OTA nigdy (tak zakładam, bo przecież tego nie sprawdzałem u siebie co wersję) nie działała bez odpowiedniej deklaracji w YAMLu - minimalnie prostszej przed 2024.6.0, więc być może wykryłeś jakiś nowy problem, i należy zgłosić issue (gdy np. nie korzystasz z OTA, a mimo to musisz zmienić konfigurację by je włączyć bez potrzeby; mógł to być też inny problem pochodzący z jakiejś dawnej zmiany, że OTA działała choć nie powinna, mimo braku deklaracji, w sumie niemal nie wyobrażam sobie sytuacji, gdy ktoś celowo pomija OTA, no ale mogą być takie sytuacje gdy projektuje urządzenie działające autonomicznie i bez sieci), no ale jeśli w pełni nie opiszesz sytuacji jak było to nie sposób nawet sztucznie wywołać problemu = zreplikować go.

W sumie jeśli to ten drugi przypadek to issue nie ma sensu, bo nikt nie będzie poprawiał wersji starszych od aktualnej, bo ten projekt nie zakłada istnienia sytuacji używania nieaktualnej wersji… (nie stoi za nim wielkie korpo by wprowadzać poprawki w starych wersjach)

Czy może w panice, gdy powstał problem z OTA usunąłeś tą deklarację z YAML?

Nic nie usuwałem wcześniej pliku YAML, a moduł dotychczas aktualizowałem bez problemu. Gdy pojawiła się nowa wersja (monit w HA) odczekałem kilka dni i aktualizowałem. Dziwne, ale tak to funkcjonowało.

I wciąż nie ma odpowiedzi czy aktualizowałeś przez serial, czy przez OTA…
a od tego zależy czy należy utworzyć issue, czy można je olać…

Sytuacja jest taka - na dwoje babka wróżyła

  • albo problem istniał przynajmniej 2 lata (nielegalnie działające OTA mimo braku deklaracji) i 2024.6.0 go właśnie naprawiło (i mamy wylane na to, że 2 lata miałeś nieprawidłowego YAMLa, który działał niezgodnie z założeniami)
  • albo problem jest nowy i uniemożliwia aktualizację serial bez deklaracji ota: co samo w sobie jest absurdalne, bo przez serial można wgrać nawet śmieci zamiast firmware, czyli może to być błąd lintera (uniemożliwienie utworzenia konfiguracji nie korzystającej z OTA, a konkretniej jej skompilowania, bo YAMLu to można nawypisywać totalne bzdury i one z założenia nie mają się kompilować…)

A w ogóle tracę czas po to by uświadomić jak ważne jest zgłaszanie właściwie opisanych problemów, bo z tego, że “coś dzwoni, ale nie wiadomo w którym kościele”, wynikła (prawdopodobnie totalnie fałszywa) teza, że 2024.6.0 zepsuło możliwość aktualizacji (przy wadliwym YAMLu??!).

PS linter w najbardziej podstawowej konfiguracji sprawdziłem (na 2024.6.4) i działa OK, ale ostatnie przełomowe zmiany (może jaśniej - breaking changes) dotyczą też safe mode (ten tryb został oddzielony od OTA) i nie chce mi się z tym walczyć, bo to za dużo czasu wymaga…

Należałoby przetestować kilka różnych platform i różne frameworki), a że akurat u siebie używam kilka różnych platform sprzętowych i różne frameworki dla ESP32 i nie ma w żadnym z nich problemu (oczywiście po uzupełnieniu konfiguracji o wymaganą zmianę platform: esphome) to zakładam, że problem nie istnieje… (tylko szkoda mi czasu na testowe usuwanie OTA skoro z niego korzystam, więc testowałem linter tylko na tych konfiguracjach, gdzie nie używam safe mode, bo wtedy usunięcie OTA wymaga większych zmian konfiguracji…)

Zakładam więc, że od zawsze miałeś zwalonego YAMLa i dowiedziałeś się o tym przypadkiem, co ciekawsze nikt nie zauważył tego błędu w ESPHome przez 2 lata (skoro twierdzisz, że w tym okresie nie dotykałeś konfiguracji).

Rozumiem że zgłaszanie takich sytuacji jest ważne. Jestem amatorem, nawet nie pamiętam skąd brałem kod, wszystko działało więc nawet nic kombinowałem. Dopiero teraz jak coś się wysypało zacząłem szukać.

Nadal nie odpowiadasz na najprostsze pytanie.

Innymi słowy, czy aktualizację wcześniej (na przełomie długiego czasu) robiłeś po kabelku?

No cóż - ja też jestem amatorem, jak i pewnie większość użytkowników ESPHome, bo to jest projekt adresowany właśnie do amatorów - te kilka linijek YAMLa jest przetwarzane przez interpreter do postaci prawdziwego kodu źródłowego c++ i ten kod jest naprawdę “wielokilometrowy” i nikt nam amatorom nie każe w nim grzebać…

Natomiast bardzo jest wskazane zastanowienie się nad zupełnymi podstawami tego jak cokolwiek działa.

Pisałem wcześnie, w HA pojawiała się monit o aktualizacji, klikałem i się aktualizowało. Nie używałem żadnych przewodów, wszystko robiło się po Wi-fi.

Czyli to były aktualizacje OTA.
I na tę informację czekałem od połowy wątku, więc jest to teraz bez znaczenia, bo najnowsze wersje usuwają problem tego, że to Ci działało, choć nie powinno(!) przez wiele miesięcy wcześniej.

W zasadzie wszystko jest do przetestowania - mógłbym zrobić sobie downgrade i sprawdzić, ale stare wersje odchodzą w niebyt, więc nawet nie ma sensu zawracać gitary deweloperom w nieaktualnej kwestii.