
Dopo qualche mese di silenzio ESPHome, il sempre più apprezzato firmware per dispositivi basati su SOC ESP32/ESP8266 per l’uso in ambito di domotica personale si aggiorna con una nuova release. La nuova versione 2026.4.x, quella di aprile 2026, la quale porta con sé una serie di novità, correzione bug, nuove logiche e qualche nuovo componente e servizio supportato.
Alcuni nostri progetti basati su questo firmware:
- Realizzare, tramite ESPHome, un sensore di distanza a ultrasuoni integrabile a Home Assistant (o altro)
- Integrare e utilizzare Ulanzi Clock TC001 su Home Assistant via ESPHome
- Realizzare, tramite ESPHome, un sensore di presenza radar a microonde integrabile a Home Assistant (o altro)
- Contabilizzare i consumi d’acqua e rilevare perdite con la domotica Home Assistant, con ESPHome
- Configurare, compilare e installare il firmware ESPHome con Linux Debian e Docker (Mini PC/Intel NUC o altro)
- Come evitare sbalzi elettrici (e altro) all’accensione di un attuatore con firmware ESPHome
- Utilità: elementi accessori consigliati per il firmware ESPHome
- Realizzare una sonda di assorbimento elettrico domotica tramite PZEM, ESP8266 ed ESPHome
- Realizzare un sistema di notifiche visive LED (con NodeMCU, ESPHome e Home Assistant)
- Integrare un lettore di impronte digitali a Home Assistant (via ESP32 ed ESPHome)
- Domotizzare il riscaldamento autonomo tramite contatto pulito, ESPHome e Home Assistant
- Realizzare un BRIDGE/Gateway/Proxy Bluetooth↔︎Wi-Fi autonomo (con NodeMCU ESP32 ed ESPHome)
- Configurare, compilare e installare il firmware ESPHome con Raspberry Pi OS e Docker
- Integrare componenti ESPHome a Home Assistant (via API)
- Configurare, compilare e installare il firmware ESPHome tramite Raspberry Pi con Raspberry Pi OS
- Configurare, compilare e installare il firmware ESPHome tramite Home Assistant OS
- Riprogrammare un ITEAD Sonoff usando la modalità DIY via OTA
- Riprogrammare firmware su dispositivi ESP8266 (Sonoff, Shelly, ecc.) – MASTERGUIDE
- I vari modi di integrare ITEAD Sonoff a Home Assistant
Come è noto, il progetto ESPHome segue molto da vicino (com’è normale, dato che organizzativamente ne fa parte) lo sviluppo dell’HUB per domotica personale open source Home Assistant. In pratica, ESPHome è una delle sue “braccia armate hardware”, sebbene possa essere utilizzato, a prescindere, in altre decine di contesti diversi.
Overview
ESPHome 2026.4.0 introduce importanti miglioramenti di prestazioni e affidabilità su tutte le piattaforme. I dispositivi ESP32 utilizzano ora di default la frequenza CPU massima (operazioni API fino al 33% più veloci), sbloccano 40KB aggiuntivi di IRAM, supportano verifica OTA firmata e tabelle di partizione personalizzate.
ESP8266 riceve un crash handler allineato a ESP32 e RP2040, mentre una nuova architettura di logging lato client consente una pubblicazione dei sensori fino a 46 volte più veloce, spostando la formattazione dei log fuori dal dispositivo.
L’inoltro delle advertisement del Bluetooth Proxy (percorso critico) scende a circa l’1,8% del tempo del loop principale su ESP32-C3. Inoltre, 31 pull request preparano il codice per ESP-IDF 6.0 e l’infrastruttura di benchmarking CodSpeed intercetta regressioni di prestazioni prima del rilascio.
Il sistema di substitutions è stato riprogettato, consentendo un caricamento della configurazione fino a 18 volte più rapido con supporto a percorsi dinamici !include. Il supporto Ethernet si espande con 5 nuovi chip su ESP32 e RP2040, mentre gli espansori GPIO introducono gestione tramite interrupt, riducendo il traffico I2C in idle fino al 99,7%.
La release include inoltre LVGL v9.5.0, supporto nativo per il controllo clima Mitsubishi CN105, 4 nuovi componenti sensore e il nuovo comando CLI esphome bundle per facilitare la compilazione remota.
Checklist pre-aggiornamento
- Se si utilizza LVGL con rotazione configurata nel componente display, spostare l’impostazione
rotationnel bloccolvgl:e rimuoveretouchscreen transform:. - Se si utilizza il media player
i2s_audio, migrare al componentespeaker(il media player i2s_audio è stato rimosso). - Se è presente
use_legacynella configurazionei2s_audio, rimuoverlo (il driver I2S legacy è stato eliminato). - Se si utilizzano dispositivi ESP32/S2/S3/C5 alimentati a batteria, aggiungere
cpu_frequency: 160MHZnella configurazione (il valore predefinito è ora 240MHz). - Se due chiavi YAML risolvono allo stesso nome dopo le substitutions, considerare che ora prevale l’ultima definizione (“last writer wins”).
- Se si utilizza
sen5xconvoc_baseline, rimuoverlo (codice non funzionante); utilizzare invecestore_baseline: true. - Se si utilizza
rp2040_pio_led_stripconchipset: CUSTOM, specificare esplicitamente i parametribit0_high,bit0_low,bit1_high,bit1_low. - Se si utilizza
get_wave_chan_id()di Nextion nelle lambda, passare aget_wave_channel_id()(il metodo precedente è deprecato e sarà rimosso nella versione 2026.10.0). - Se si utilizza
sensor.raw_statenelle lambda, migrare all’uso dello stato filtrato o dei triggeron_raw_value(.raw_stateè deprecato). - Se si mantengono componenti esterni che utilizzano setter generati da macro
TEMPLATABLE_VALUEcon costanti C++ raw, instradare i valori tramitecg.templatable()nel codegen Python. - Se si mantengono componenti esterni che utilizzano
ButtonPressTrigger,SensorStateTriggero classi simili, migrare abuild_callback_automation(). - Se si mantengono componenti esterni che utilizzano
FlushResult, rinominare inUARTFlushResultcon prefissoUART_FLUSH_RESULT_.
Prestazioni e Sicurezza ESP32
Sono state introdotte diverse modifiche alla piattaforma ESP32 per migliorare prestazioni, sicurezza e flessibilità.
Frequenza CPU Predefinita Portata al Massimo
I dispositivi ESP32, ESP32-S2, ESP32-S3 ed ESP32-C5 utilizzano ora di default 240MHz invece di 160MHz. Viene ripristinato il livello di prestazioni precedente a maggio 2025 per gli utenti Arduino, con operazioni CPU-bound fino a circa il 34% più veloci:
- Handshake API cifrata: da 90ms a 64ms (29% più veloce)
- Encoding Protobuf (BLE proxy): 34% più veloce
- Cifratura Noise: 33-34% più veloce su tutte le dimensioni di payload
Su dispositivi alimentati a batteria o con vincoli termici è possibile impostare cpu_frequency: 160MHZ. Questa modifica aumenta il consumo energetico ed è quindi considerata una breaking change.
Miglioramenti Crash Handler
Il crash handler ora cattura i backtrace da entrambi i core sui dispositivi dual-core e preserva i dati di crash anche dopo riavvii dovuti a rollback OTA.
40KB IRAM Aggiuntivi su ESP32
Una nuova opzione consente di recuperare 40KB di SRAM1 precedentemente riservata, utilizzandola come IRAM. Questo amplia la finestra di cache flash e riduce i cache miss per Wi-Fi, BLE e API senza impattare l’heap.
L’abilitazione è suggerita automaticamente solo se sicura in base al bootloader. Non abilitare manualmente senza verifica: con bootloader precedenti alla versione 5.1 si rischia il blocco del dispositivo (richiede reflashing via USB).
Verifica OTA Firmata
È disponibile la nuova opzione signed_ota_verification per verificare la firma del firmware durante gli aggiornamenti OTA senza richiedere Secure Boot hardware. Sono supportate due modalità:
- Chiave privata (signing_key) – Il firmware viene firmato automaticamente in fase di build
- Chiave pubblica (verification_key) – Solo la chiave pubblica è inclusa; la firma avviene esternamente
esp32:
framework:
type: esp-idf
advanced:
signed_ota_verification:
signing_key: secure_boot_signing_key.pem
signing_scheme: rsa3072
Tabelle di Partizione Personalizzate
È ora possibile definire partizioni dati/app personalizzate tramite componenti o configurazione YAML. La generazione della tabella è stata unificata tra Arduino ed ESP-IDF. NVS è stato spostato alla fine della flash con dimensione aumentata (fino a 384KB su Arduino).
Aggiornamento Framework
La piattaforma è stata aggiornata a ESP-IDF 5.5.4 e Arduino 3.3.8. PlatformIO viene eseguito in un sottoprocesso per isolare il virtualenv ed evitare errori di import durante la build.
Fix Crash ADC
Le funzioni di controllo ADC sono ora posizionate in IRAM per garantire sicurezza della cache. In precedenza potevano verificarsi crash quando la cache flash veniva disabilitata durante scritture NVS in background.
Fix Brick OTA Web Server
È stato risolto un problema storico nel flusso OTA via captive portal e web server che poteva causare il brick del dispositivo in caso di upload interrotto e ripetuto. Il backend OTA ora si resetta a ogni nuovo caricamento.
Fix Crash mDNS
Aggiornata la libreria mDNS per correggere problemi di corruzione heap durante traffico sostenuto e un’eccezione da puntatore nullo durante il parsing dei pacchetti.
ESP8266 Crash Handler
Completando il supporto multi-piattaforma introdotto nella release 2026.3.0 (con crash handler per ESP32 e RP2040), anche i dispositivi ESP8266 dispongono ora di diagnostica post-mortem avanzata. In caso di crash, i dettagli dell’eccezione e fino a 16 indirizzi di backtrace ricavati dallo stack vengono salvati nella memoria RTC e riportati tramite API al successivo avvio.
Non è necessario alcun collegamento USB: i dati di crash sono disponibili tramite esphome logs (che decodifica automaticamente gli indirizzi in posizioni del codice sorgente tramite addr2line) e nel visualizzatore log di Home Assistant, interamente via Wi-Fi.
[E][esp8266]: *** CRASH DETECTED ON PREVIOUS BOOT ***
[E][esp8266]: Reason: Exception - StoreProhibit (exccause=29)
[E][esp8266]: PC: 0x40212EC5
[E][esp8266]: EXCVADDR: 0x00000000
[E][esp8266]: BT0: 0x40212F5A
[E][esp8266]: BT1: 0x40203B10
Il campo PC rappresenta il program counter nel punto in cui si è verificato il crash, EXCVADDR indica l’indirizzo di memoria che ha causato l’errore, mentre BT0/BT1 ecc. rappresentano il backtrace dello stack, ovvero la catena di chiamate che ha portato al crash.
Utilizzando esphome logs, questi indirizzi vengono automaticamente tradotti in file sorgente e numeri di riga tramite addr2line, consentendo di visualizzare direttamente i nomi delle funzioni invece dei valori esadecimali.
Non è richiesta alcuna configurazione: la funzionalità è abilitata automaticamente su tutti i dispositivi ESP8266. L’impatto sulle risorse è minimo: 0 byte di RAM, 119 byte di IRAM e circa 1KB di flash.
Logging Stato Lato Client
Il logging dei cambi di stato è stato completamente riprogettato per eliminare il principale collo di bottiglia CPU su ogni dispositivo ESPHome.
In precedenza, ogni variazione di stato (ad esempio 'CO2' >> 420 ppm, 'Light' - Setting ON) eseguiva vsnprintf sul dispositivo per formattare una stringa di log e la inviava via UART, anche quando nessuno stava osservando la console seriale (situazione che riguarda la quasi totalità dei dispositivi). I benchmark hanno evidenziato che questa operazione poteva consumare oltre il 95% del tempo di pubblicazione dei sensori.
Ora i log di stato vengono ricostruiti lato client invece che sul dispositivo. Quando esphome logs o la dashboard si collegano, viene effettuata una sottoscrizione a messaggi di stato protobuf compatti, che vengono formattati localmente. I messaggi protobuf occupano una frazione dello spazio rispetto alle stringhe formattate e l’elaborazione viene eseguita sul computer anziché sul microcontrollore.
Questo approccio consente un miglioramento fino a 46 volte nel percorso di pubblicazione, con un risparmio di flash compreso tra circa 1,4KB (ESP32-C3) e 2,2KB (ESP8266). I cambi di stato continuano a essere visibili nei log come righe [S] (in ciano):
[18:03:14.677][S][sensor]: 'CO2' >> 420 ppm
[18:03:14.677][S][sensor]: 'Temperature' >> 35.63 °C
[18:03:51.747][S][light]: 'Light' >> ON
È disponibile il nuovo flag --no-states, che consente di sopprimere completamente le righe di cambio stato, utile in fase di debug quando il log è saturo di aggiornamenti dei sensori.
Per ripristinare il comportamento precedente (logging lato dispositivo), è possibile impostare logger: level: VERBOSE.
ESP-IDF 6.0
Questa release include 31 pull request dedicate alla preparazione di ESPHome per ESP-IDF 6.0, che introduce GCC 15, picolibc e importanti modifiche alle API di Espressif. Le modifiche interessano crittografia, driver e compatibilità della toolchain su tutto il codice. Sebbene ESP-IDF 6.0 non sia ancora il framework predefinito, queste modifiche garantiscono la piena compatibilità futura. Tutte le pull request correlate sono contrassegnate con l’etichetta idf-6.
Migrazione API PSA Crypto
ESP-IDF 6.0 depreca le API crittografiche legacy di mbedTLS. Tutte le operazioni crittografiche sono state migrate alla nuova API PSA Crypto:
- Hashing SHA-256
- HMAC-SHA256
- BLE tracker con PSA Crypto
- Decrittazione CCM per BTHome/Xiaomi BLE
- Decrittazione GCM per contatori DLMS
Aggiornamenti Driver e API
Sono stati aggiornati oltre 20 componenti per adattarsi alle modifiche API di ESP-IDF 6.0, inclusi:
- Wi-Fi, ADC, LEDC, RMT (strisce LED e trasmettitori/ricevitori remoti)
- MIPI DSI, PSRAM, I2S audio, I2C, deep sleep
- MQTT, USB host, timer OpenTherm, Ethernet, debug e camera
Compatibilità Toolchain
- Risolto conflitto
std::isnancon PicoLibC - Corretto stub
vfprintfper printf con picolibc - Corrette conversioni implicite da
intagpio_num_tper GCC 15 - Rimosso il driver I2S legacy in preparazione a ESP-IDF 6.0
Substitutions
Il sistema di configurazione YAML introduce due miglioramenti rilevanti che rendono le configurazioni complesse e multi-file più potenti e rapide da caricare.
Substitutions nei percorsi !include
È ora possibile utilizzare variabili di substitution ed espressioni Jinja direttamente nei nomi dei file !include, consentendo la selezione dinamica dei file:
substitutions:
eth_model: LAN8720
packages:
- !include network/${eth_model}/config.yaml
La funzionalità è compatibile anche con substitution passate da riga di comando, permettendo di utilizzare lo stesso file YAML per configurazioni hardware differenti senza duplicare i file.
Il motore di substitutions è stato riprogettato per eseguire tutte le sostituzioni in un’unica passata lineare, invece del precedente approccio multi-pass. Questo consente tempi di caricamento fino a 18 volte più rapidi nei progetti di grandi dimensioni con numerosi package e include.
La riscrittura risolve inoltre diversi casi limite legati ai riferimenti tra file (ad esempio espressioni come ${A * B} che combinano variabili locali e globali).
Per le chiavi duplicate generate tramite substitution, l’ordine di merge_config segue ora la regola “last writer wins”.
Espansione Ethernet
Sulla base del supporto completo per RP2040/RP2350 introdotto nella versione 2026.3.0, questa release amplia significativamente il supporto Ethernet su più piattaforme, aggiungendo 5 nuovi tipi di chip e introducendo per la prima volta Ethernet SPI sulla piattaforma RP2040. Le schede RP2040, come la serie WIZnet EVB-Pico, possono ora essere utilizzate come controller IoT cablati senza Wi-Fi.
Nuovo supporto Ethernet su RP2040
- W5500: Ethernet SPI a 100Mbps, testato con 344 connessioni API riuscite su WIZnet W5500-EVB-Pico
- W5100/W5100S: Ethernet SPI 10/100Mbps per schede come W5100S-EVB-Pico
- W6100 e W6300: controller WIZnet di nuova generazione con supporto IPv6 per schede come W6300-EVB-Pico2
Aggiunte cross-platform
- ENC28J60: controller 10BASE-T di Microchip ora supportato sia su ESP32 (IDF) sia su RP2040
Miglioramenti ESP32
- Selezione interfaccia SPI: la nuova variabile di configurazione
interfaceconsente di selezionare spi2 o spi3, risolvendo conflitti con componenti display su schede come M5Stack CoreS3
GPIO Expander
I componenti GPIO expander PCF8574, PCA9554, MCP23008/MCP23017, MCP23S08/MCP23S17, PI4IOE5V6408, MCP23016, PCA6416A e TCA9555 supportano ora un pin opzionale interrupt_pin che elimina completamente il polling su bus I2C/SPI.
Expander supportati
- PCF8574, PCA9554, PCA6416A, TCA9555: GPIO expander I2C
- MCP23008, MCP23017, MCP23S08, MCP23S17, MCP23016: famiglia GPIO expander I2C e SPI
- PI4IOE5V6408: GPIO expander I2C
COMPARATIVE
| Metrica | Polling | Interrupt | Miglioramento |
|---|---|---|---|
| Letture I2C/min (idle) | 4100 ms | 12 ms | Riduzione del 99,7% |
| Iterazioni loop per ciclo | 7477 | 16 | 468 volte in meno |
| Tempo lettura sensore binario | ~0,6 ms (I2C) | ~0,002 ms (cache) | 300 volte più veloce |
Quando configurato, i sensori binari restituiscono i valori dalla cache (senza accessi al bus) tra un interrupt e l’altro, e il loop principale viene completamente sospeso fino a una variazione di stato dei pin. I dispositivi MCP23x17 attivano automaticamente il bit MIRROR, consentendo a un singolo filo di interrupt di rilevare modifiche su tutti i 16 pin.
pcf8574:
id: my_pcf8574
interrupt_pin: GPIO16
Benchmarking
Questa release introduce un’infrastruttura completa di benchmarking in C++ basata su CodSpeed, che consente il tracciamento continuo delle prestazioni e la prevenzione delle regressioni. Inizialmente integrato per preservare i miglioramenti introdotti nella versione 2026.3.0, il sistema di benchmark ha rapidamente evidenziato ulteriori colli di bottiglia, guidando una serie di ottimizzazioni mirate durante l’intero ciclo di sviluppo.
Benchmark introdotti
- Codifica e decodifica Protobuf (messaggi API, advertisement BLE, ListEntities)
- Handshake Noise e cifratura dei payload
- Pipeline di pubblicazione e chiamata per sensori, sensori binari, luci, coperture, climatizzazione, ventole, numeri, select, switch, text_sensor e button
- Operazioni di scheduler (intervalli e timeout)
- Scrittura frame API in modalità plaintext e cifrata
Le ottimizzazioni a livello API si concentrano sul fatto che l’API nativa rappresenta il principale canale di comunicazione tra ESPHome e Home Assistant. L’obiettivo è rendere il Bluetooth Proxy sufficientemente leggero da poter essere eseguito su qualsiasi ESP32-C3 senza impatto significativo sulle prestazioni.
Questo obiettivo è stato raggiunto: combinando i miglioramenti introdotti nella versione 2026.3.0, il forwarding degli advertisement del BLE Proxy (il percorso più critico e continuo del sistema) utilizza ora solo circa l’1,8% del runtime del main loop su ESP32-C3, rispetto al ~3,3% della versione 2026.3.0 e a una frazione molto ridotta rispetto a un anno fa.
Ottimizzazioni memoria
Guidata dalla maggiore visibilità ottenuta tramite strumenti di benchmarking e analisi della memoria, questa release introduce significativi risparmi di RAM e flash su tutto il framework.
Allocazioni dei componenti spostate da heap a BSS
È stata introdotta una modifica architetturale rilevante: tutte le istanze dei componenti (new_Pvariable) vengono ora allocate tramite placement new all’interno di un’area BSS statica a dimensione fissa, invece di essere allocate singolarmente sull’heap.
In precedenza, ogni componente, sensore, automazione e filtro generava una distinta allocazione heap, causando frammentazione progressiva della memoria. Con il nuovo approccio, le allocazioni vengono compattate in una regione BSS contigua, liberando l’heap per buffer di Wi-Fi, BLE e rete che richiedono realmente allocazione dinamica.
Questo elimina centinaia di piccole allocazioni per dispositivo e riduce in modo significativo la frammentazione dell’heap nei sistemi con lunga uptime.
Miglioramenti nell’analisi della memoria in CI
La pipeline CI di ESPHome esegue ora un’analisi automatica dell’impatto sulla memoria per ogni pull request, mostrando ai contributori l’impatto preciso su flash e RAM prima della fusione.
In precedenza, la memoria dei componenti era difficilmente tracciabile perché allocata interamente a runtime sull’heap. Con l’introduzione della modifica BSS, ogni componente diventa uno simbolo staticamente visibile, consentendo alla CI di misurarne e attribuirne il consumo.
Lo strumento analyze-memory è stato esteso per attribuire le allocazioni placement new ai rispettivi componenti, rendendo immediato individuare le aree ancora ottimizzabili. Questa maggiore visibilità ha guidato una serie di ottimizzazioni mirate nell’intero framework.
Aggiornamento LVGL v9
Il framework LVGL è stato aggiornato dalla versione v8 alla v9.5.0. La migrazione è stata guidata da 27 pull request e rappresenta un aggiornamento significativo della libreria, con una nuova pipeline di rendering, prestazioni migliorate e nuove funzionalità per i widget. Le configurazioni esistenti dovrebbero continuare a compilare ed eseguire correttamente, anche se alcune proprietà risultano deprecate.
Rotazione nativa con accelerazione hardware
La rotazione dello schermo viene ora gestita direttamente da LVGL invece che dal driver del display. Le modifiche di rotazione a runtime sono disponibili tramite lvgl.display.set_rotation e, dove supportato, viene utilizzata la rotazione hardware automatica.
Su ESP32-P4 la rotazione viene eseguita tramite PPA (Pixel Processing Accelerator), riducendo a zero il costo CPU per le trasformazioni dell’immagine.
Rotazione automatica del touchscreen
L’input touch viene ora ruotato automaticamente per allinearsi all’orientamento del display, eliminando nella maggior parte dei casi la necessità di trasformazioni manuali delle coordinate.
È necessario spostare la configurazione della rotazione dal componente display al blocco lvgl: e rimuovere o adattare il blocco transform: nel componente touchscreen.
Tema scuro integrato
L’attivazione del tema scuro è ora disponibile tramite una singola opzione dark_mode: true sotto theme:, che abilita il tema nativo scuro di LVGL, sostituendo la precedente necessità di replicare manualmente tutte le proprietà del tema.
Supporto completo agli eventi LVGL 9
È stata aggiunta la mappatura completa degli eventi LVGL 9 ai trigger di automazione di ESPHome, consentendo l’utilizzo diretto dei nuovi eventi all’interno delle automazioni.
Supporto per drop shadow
È stato introdotto il supporto agli effetti di ombra tramite la nuova proprietà di stile bitmap_mask_src e il formato immagine A8, abilitando effetti di drop shadow per elementi grafici.
Nuovi sensori e supporto hardware
Questa release introduce il supporto a nuovi sensori e piattaforme hardware, ampliando ulteriormente l’ecosistema ESPHome su diverse famiglie di dispositivi e interfacce.
Sensori e moduli aggiunti
- SPA06-003: sensore digitale di pressione e temperatura Goermicro con interfacce I2C e SPI, disponibile tramite Adafruit e Seeed Grove
- HDC2080: sensore di temperatura e umidità Texas Instruments
- emonTx: supporto per emonTx/emonPi di OpenEnergyMonitor tramite bridge seriale UART, con trigger JSON e azioni a comando
Aggiornamenti sensori esistenti
- BMP581: aggiunto supporto SPI oltre a I2C
- BMP585: aggiunto supporto per il nuovo ASIC ID BMP585 all’interno del componente BMP581
Supporto piattaforme hardware
- ESP32-C61 PSRAM: supporto PSRAM in modalità quad a 40MHz e 80MHz
- nRF52 Zephyr: supporto alla temperatura interna del chip
- LN882H: supporto alla temperatura interna del chip
Breaking Changes
Frequenza CPU ESP32: la frequenza CPU predefinita è stata modificata al massimo supportato per ciascuna variante (ESP32/S2/S3/C5: da 160MHz a 240MHz). Questa modifica migliora le prestazioni di circa il 33%, ma aumenta il consumo energetico. I dispositivi alimentati a batteria devono impostare esplicitamente cpu_frequency: 160MHZ nella configurazione.
Tabella partizioni ESP32: il layout delle partizioni è stato modificato sia per il framework Arduino che IDF. NVS è stata spostata alla fine della flash con dimensione aumentata (da 20KB a 384KB su Arduino). I dispositivi esistenti riceveranno la nuova tabella partizioni al prossimo aggiornamento OTA. I dati NVS vengono preservati poiché la libreria li individua per nome e non per posizione.
RTC preferences ESP8266: la capacità delle RTC preferences è stata ridotta da 96 a 78 parole per fare spazio al nuovo crash handler. Gli overflow vengono ora gestiti su flash. L’impatto sulle configurazioni reali è considerato molto improbabile.
Modifiche ai componenti
LVGL rotation: l’opzione di rotazione deve essere ora configurata sotto lvgl: invece che nel componente display. LVGL gestisce direttamente la rotazione del display e del touchscreen, con supporto alla modifica runtime tramite lvgl.display.set_rotation. È necessario spostare la configurazione di rotazione dal display al blocco LVGL e rimuovere o adattare il blocco transform: nel touchscreen, se presente.
I2S Audio: il driver I2S legacy (opzione use_legacy) è stato rimosso. Il nuovo driver I2S è sempre utilizzato. Il componente media player i2s_audio è stato completamente rimosso; è necessario migrare al componente speaker media player.
Binary Sensor multi_click: le sequenze temporali di on_multi_click sono ora limitate a 255 elementi (in precedenza illimitate). Nessuna configurazione reale dovrebbe raggiungere questo limite.
Binary Sensor autorepeat: le liste temporali di autorepeat sono ora limitate a 254 elementi (in precedenza illimitate). Nessuna configurazione reale dovrebbe raggiungere questo limite.
L’elenco completo delle breaking change è disponibile qui.
AGGIORNAMENTO
Per aggiornare l’ambiente operativo:
- su Raspberry Pi OS (o genericamente su Linux): come per l’installazione è sufficiente eseguire:
pip3 install esphome --upgrade
- su Docker su Raspberry Pi OS (o genericamente su Linux), come per l’installazione è sufficiente eseguire:
docker pull esphome/esphome
- su Home Assistant OS è sufficiente recarsi presso “Supervisor” > “ESPHome” e cliccare su “UPDATE“:

Per aggiornare, invece, i componenti dotati in precedenza di firmware ESPHome, dopo aver provveduto all’aggiornamento dell’ambiente operativo è sufficiente recarsi presso la lista dei propri componenti (già accesi e presenti in rete) e cliccare su “UPLOAD“, aggiornamento che avverrà come d’abitudine via OTA (over-the-air), previa una ricompilazione del firmware (automatica).
| Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |

