Verbesserte Speicherverwaltung
ESPHome optimiert den Umgang mit dem begrenzten Arbeitsspeicher auf Mikrocontrollern. Neue Hilfsfunktionen wie FixedVector::try_init und RAMAllocator::make_unique ermöglichen es, fehlgeschlagene Speicherallokationen sauber abzufangen, anstatt das System abstürzen zu lassen. Mehrere Komponenten – darunter die Nextion-Anzeige, OTA-Updates und die Ethernet-Schnittstelle W5500 – nutzen nun diese Mechanismen: Der SPI-Kontext wird statisch gehalten, Signaturblöcke und Authentifizierungspuffer werden über den RAMAllocator angefordert, und die API verwendet wiederverwendbaren Pufferspeicher für blockierte Schreibvorgänge. Zudem wird bei einem WLAN-Scan, dessen Ergebnisse nicht allokiert werden können, der Scan verworfen statt abgebrochen.
Konnektivität und Kommunikation
Die Netzwerk- und Bluetooth-Funktionen wurden stabilisiert. network::is_connected() berücksichtigt nun zuverlässig mehrere Interfaces. Bei ESP32-Geräten werden WLAN-Scans im Treiber nach SSID gefiltert und bei Speichermangel nicht mehr abgebrochen, sondern verworfen. Der Bluetooth-Tracker registriert GATT-Clients nach einem Deaktivieren und erneuten Aktivieren korrekt neu. Während eines OTA-Updates wird die Koexistenz-Einstellung auf „ausgewogen“ zurückgesetzt, um Störungen zu vermeiden. Außerdem wurde der Bluetooth-Proxy aus dem gemeinsam genutzten Host-Test-Binary herausgehalten.
Kern, Plattformen und Build-System
Im Kernbereich gibt es mehrere Korrekturen und ein neues Feature: set_internal() kann nun bereits während der Einrichtungsphase verwendet werden und meldet danach Fehler sauber. Dateipfade in YAML-Dateien werden jetzt relativ zur deklarierenden Datei aufgelöst. Der Absturz bei lvgl.list.add wurde behoben, und der I2S-Audio-Router steuert Zustandsänderungen kontrolliert über einen Loop-Thread. Der Codegenerator für Sendspin-Codecs wurde für den Fall korrigiert, dass keine Codecs gesetzt sind. Beim Zurücksetzen des Kerns werden geladene Plattformen nun geleert. Die eingebundene esphome-device-builder-Version wurde mehrfach aktualisiert (1.14.6, 1.14.7, 1.14.8, 1.14.9). Zudem wurden die Bibliotheken noise-c auf Version 0.1.30 und libsodium auf Version 1.10021.11 angehoben.



