Komponent MQTT w ESPHome dostaje opcję transport, dzięki której ESP32 połączy się z brokerem przez WebSocket, zwykły albo szyfrowany TLS. Zmianę przygotował Ankur Kumar Pandey jeszcze w kwietniu, a do gałęzi dev trafiła w nocy z 20 na 21 października 2026, w dniu wydania ESPHome 2026.10.0. Nie weszła do tej wersji, więc powinna pojawić się w ESPHome 2026.11.
Komu się przyda
Zwykle ESPHome łączy się z brokerem MQTT bezpośrednio przez TCP, na port 1883 albo 8883 z TLS. To nie zadziała, jeśli broker stoi za odwrotnym serwerem pośredniczącym albo tunelem, który przepuszcza tylko HTTP i HTTPS. Tak bywa, gdy ktoś wystawia usługi na zewnątrz przez jeden adres WWW. Wiele brokerów, w tym Mosquitto, przyjmuje też MQTT przez WebSocket, a taki ruch przechodzi przez serwer pośredniczący jak każde inne połączenie WWW.
Konfiguracja
Nowe opcje to transport i ws_path:
mqtt:
broker: mqtt.example.com
port: 443
transport: wss
ws_path: /mqtt
Opcja transport przyjmuje tcp, ws albo wss. Domyślnie zostaje tcp, który działa tak jak wcześniej, łącznie z przejściem na TLS po podaniu urzędu certyfikacji. ws to nieszyfrowany WebSocket, a wss to WebSocket przez TLS. Opcja ws_path ustawia ścieżkę, pod którą broker przyjmuje połączenia WebSocket, domyślnie /mqtt. Port musi wskazywać na nasłuch WebSocket brokera, a nie na zwykły port MQTT.
Przy wss obowiązują dotychczasowe opcje certificate_authority, client_certificate, client_certificate_key i skip_cert_cn_check. Bez certificate_authority urządzenie sprawdza certyfikat brokera w zestawie certyfikatów wbudowanym w oprogramowanie, tak samo jak komponent HTTP Request. Przy zwykłym ws ESPHome odrzuca opcje certyfikatów, bo nic nie jest szyfrowane.
Ograniczenia
Opcja działa tylko na ESP32 z ESP-IDF. Na ESP8266, RP2040, układach obsługiwanych przez LibreTiny i na ESP32 z Arduino ESPHome odrzuci ws i wss już przy walidacji konfiguracji. Narzędzie wiersza poleceń ESPHome ma własnego klienta MQTT do odczytu dziennika, wykrywania urządzeń i czyszczenia tematów. On też korzysta z ustawionego transportu, więc esphome logs przez MQTT działa również z brokerem dostępnym przez WebSocket.
Urządzenia w tej samej sieci lokalnej co broker nic na tym nie zyskują, a zwykłe TCP jest dla nich prostsze. Nowa opcja przyda się głównie płytkom ESP32 poza domem, na przykład czujnikowi na działce, który wysyła dane do brokera wystawionego przez istniejący serwer pośredniczący HTTPS.