Właśnie skończyłem aktualizować ESPHome do najnowszej wersji (2024.6.2), by następnie przystąpić do aktualizacji kolejnych urządzeń. Jednak w przypadku aktualizacji 2024.6.0 (lub nowszej) sprawa się odrobinę komplikuje, bo przy każdym urządzeniu muszę lekko przerobić kod. I to niezależnie od tego, z jakiego zestawu czujników w przypadku danego urządzenia korzystam. Bo zmiany dotycząc m.in. mechanizmu OTA, z którego korzystam właściwie na każdym urządzeniu działającym na ESPHome.

Istotne (dla mnie) zmiany w ESPHome 2024.6.0

Co nie znaczy, że zmian nie ma również w kontekście czujników, z których korzystam, ale do tego dojdziemy za chwilę. W każdym razie nowe ESPHome już wprost nawiązuje do Home Assistant, więc od razu wiadomo, że to „jedna rodzina”. Przynajmniej na stornie projektu, bo reszta właściwie bez zmian.  Ale zmiany w „brandingu” to nie jedyne zmiany. Dla mnie istotne są dwie…

Over-The-Air (OTA) w ESPHome

Pierwsza dotyczy mechanizmu OTA, a więc możliwości zdalnego wgrywania nowej wersji oprogramowania za pomocą odpowiedniego interfejsu generowanego przez urządzenie. Korzystam z tego rzadko, ale się zdarza, zwłaszcza tam, gdzie urządzenia pracują z dala od serwera z ESPHome.

Dotychczasowy kod YAML, z którego korzystałem, wyglądał tak:

ota:
  password: !secret ota_password

Od wersji 2024.6.0 należy dodać jeszcze jedną linijkę:

ota:
  platform: esphome
  password: !secret ota_password

Więcej o tej zmianie na stronie projektu…

Dallas jako jeden z elementów 1-Wire

Kolejna zmiana dotyczy popularnych czujników temperatury Dallas DS18B20, które od teraz nie są już „klasą samą dla siebie”, ale są elementem większej rodziny czujników typu 1-Wire.

Dotychczasowy kod YAML, z którego korzystałem, wyglądał tak:

dallas:
  - pin: ${dallas_pin}
    update_interval: 60s

sensor:
  - platform: dallas
    address: ${dallas01_address}
    [...]

Od wersji 2024.6.0 zamiast „dallas” mamy globalnie „one_wire”, a typ definiujemy bezpośrednio w sensorze:

one_wire:
  - platform: gpio
    pin: ${dallas_pin} # GPIO2

sensor:
  - platform: dallas_temp
    address: ${dallas01_address}
    update_interval: 60s
    [...]

I jest to zmiana zdecydowanie poważniejsza, niż w przypadku OTA, ale powody, jakie za nią stoją, są dość logiczne (wsparcie dla różnych czujników 1-Wire w ramach jednego komponentu). Więcej o tej zmianie na stronie projektu…

HTTP Request i weryfikacja certyfikatu SSL

Na koniec jeszcze jedna zmiana, czyli przeniesienie konfiguracji dotyczącej weryfikacji poprawności certyfikatu SSL w konfiguracji HTTP Request. Dotychczas odbywało się to na etapie konkretnego „zapytania”:

http_request:
  useragent: esphome/device
  timeout: 30s
.
button:
  - platform: template
    name: "${friendly_name} Brewfather AKT"
    id: ${device_id}_brewfather_akt
    on_press:
      - http_request.post:
          headers:
            Content-Type: application/json
          url: !secret brewfather_stream_url
          verify_ssl: false

Od wersji 2024.6.0 definiujemy to globalnie, dla całej usługi (komponentu):

http_request:
  useragent: esphome/device
  timeout: 30s
  verify_ssl: false

I to zmiana mocno specyficzna, ale akurat dla mnie ważna, bo z tego mechanizmu korzystam m.in. przy sterownikach do fermentacji, czy też „piwnej lodówki”.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk