ESPHome uczy się prosić ładowarkę USB-C o więcej niż 5 V. Nowy komponent fusb302b autorstwa Remco van Essena obsługuje kontroler USB-C FUSB302B firmy onsemi, podłączony do ESP32 przez I2C. ESP32 z tym układem występuje jako odbiornik zasilania i uzgadnia z ładowarką napięcie w standardzie USB Power Delivery. Kod trafił do gałęzi rozwojowej w trzech częściach 14 i 15 października 2026, a dokumentacja 15 października. Jeśli obciążenie w projekcie potrzebuje 9, 12, 15 albo 20 V, jedna ładowarka USB-C zasili i je, i ESP32.

Jakie napięcie dostaniesz

W konfiguracji ustawiasz request_voltage w zakresie 5-20 V. Ładowarka PD podaje listę stałych napięć spośród 5, 9, 12, 15 i 20 V, a komponent prosi o najwyższe, które nie przekracza ustawionej wartości. Dokumentacja podaje przykład: jeśli poprosisz o 12 V ładowarkę, która oferuje 5, 9, 15 i 20 V, dostaniesz 9 V.

Płytka zostaje przy domyślnych dla USB-C 5 V, jeśli ładowarka nie obsługuje Power Delivery, nie przyśle listy napięć nawet po ponownej prośbie i resecie programowym, odrzuci żądanie albo nie zgłosi na czas, że nowe napięcie jest gotowe.

Negocjacje prowadzi osobne zadanie FreeRTOS, które budzi wyprowadzenie przerwania układu. Dzięki temu odpowiedzi dla ładowarki mieszczą się w limitach czasowych PD nawet wtedy, gdy główna pętla ESPHome jest zajęta. Z tego samego powodu komponent działa tylko na ESP32. FUSB302B może dzielić magistralę I2C z innymi urządzeniami, ale długa transmisja do innego układu opóźnia zadanie PD, dlatego autor zaleca osobną magistralę albo częstotliwość 400 kHz. Linie CC komponent mierzy pierwszy raz 2 sekundy po uruchomieniu, żeby ładowarka zdążyła się ustabilizować.

Czujniki i automatyzacje

Dopiero ostatnia część (#20796) sprawia, że komponent przydaje się w automatyzacjach. Dodaje opcjonalne czujniki diagnostyczne voltage i current z wartościami bieżącego uzgodnienia oraz czujnik tekstowy contract, który pokazuje na przykład 3.00A @ 20V albo Detached. To wartości wynegocjowane z ładowarką, a nie faktyczny pobór prądu przez układ.

Wyzwalacze są cztery: on_connect, on_disconnect, on_power_ready (negocjacje zakończone, z nowym uzgodnieniem albo dlatego, że ładowarka nie obsługuje PD) i on_error (błąd komunikacji z układem). Akcja fusb302b.request_voltage przy podłączonej ładowarce od razu negocjuje nowe napięcie, a bez ładowarki zapamiętuje je na następne podłączenie. Warunek fusb302b.is_connected sprawdza, czy źródło zasilania jest podłączone.

Sprawdź wszystko, co jest podłączone do VBUS

Dokumentacja ostrzega wprost: żądane napięcie pojawia się na linii VBUS. Wszystko, co jest do niej podłączone, łącznie ze stabilizatorem zasilającym ESP32, musi wytrzymać najwyższe napięcie, jakie da się ustawić w request_voltage.

Gałąź rozwojowa ESPHome ma numer 2026.11.0-dev, więc komponent powinien trafić do ESPHome 2026.11.