Panel Home Assistanta na ekranie z e-papieru zwykle oznacza odtwarzanie go od zera w lambdach wyświetlacza ESPHome albo generowanie zrzutów ekranu na serwerze. Teraz jest trzecia droga. Nowy komponent vnc, napisany przez Petara Petrova i scalony z gałęzią rozwojową 22 października 2026, łączy się z serwerem VNC i rysuje jego obraz na wyświetlaczu urządzenia. Przeglądarka działa na innym komputerze, w rozdzielczości ekranu, a ESP32 tylko odbiera obraz. Komponent i jego dokumentacja są w gałęziach dev i next, więc powinny trafić do ESPHome 2026.11.
Podstawowa konfiguracja
Wystarczy podać adres serwera:
vnc:
host: 192.168.1.20
Domyślny port to 5900. Klient łączy się przy starcie i sam wznawia połączenie: po błędzie czeka 5 sekund, a przy kolejnych podwaja ten czas, maksymalnie do 60 sekund. Obraz nie jest skalowany, więc rozdzielczość serwera musi odpowiadać rozmiarowi wyświetlacza po obróceniu. Przy większym ekranie serwera widać tylko jego lewy górny fragment. Komponent rysuje każdy piksel, dlatego wyświetlacz nie może mieć własnej lambda ani pages i nie da się go współdzielić z LVGL.
Autor testował rozwiązanie na M5Paper (kontroler IT8951, 540x960 w pionie) z dodatkiem VNC Web Browser do Home Assistanta, w którym działa TightVNC. Dokumentacja wymienia też sterownik E-Paper SPI i sterowniki ekranów LCD, takie jak ILI9xxx. Sterowniki mipi_spi, mipi_rgb i mipi_dsi nie są jeszcze obsługiwane, a starszy sterownik Waveshare E-Paper warto zastąpić sterownikiem E-Paper SPI.
Rzadsze odświeżanie e-papieru
Ekran odświeża się dopiero wtedy, gdy obraz przez update_delay się nie zmienia (domyślnie 200 ms), a najpóźniej po max_update_delay (1 s). Animacja kończy się więc jednym odświeżeniem, które pokazuje jej ostatnią klatkę.
Druga zmiana, scalona tego samego dnia, dodaje kodowanie Hextile. W kodowaniu Raw pełny ekran to około 1 MB, przez co pierwsza klatka wczytuje się długo. Hextile zmniejsza panel do kilkudziesięciu kilobajtów. Klient zapamiętuje też odcisk każdego kafelka 16x16 i pomija kafelki, które serwer przysyła ponownie bez zmian. TightVNC wysyła całe okno od nowa przy każdym przerysowaniu w Chromium, więc bez tego e-papier odświeżałby się niepotrzebnie. Na ekranie 960x540 tablica odcisków zajmuje około 8 KB. Ta sama zmiana dodaje akcję vnc.refresh i opcję pixel_format: rgb565 pokazuje wszystkie 16 odcieni szarości ekranu z e-papieru, a rgb332 przesyła o połowę mniej danych, ale pokazuje około 8 odcieni.
Dokumentacja odradza treści, które ciągle się zmieniają, na przykład zegary z sekundami, animowane wskaźniki ładowania i ruchome tła. Takie tło ma strona logowania Home Assistanta, więc urządzenie powinno pokazywać panel po zalogowaniu.
Ograniczenia pierwszej wersji
Ta wersja tylko wyświetla obraz i działa wyłącznie z serwerami bez hasła. Logowanie hasłem i obsługa ekranu dotykowego czekają w osobnych propozycjach zmian. Dokumentacja ostrzega też, że VNC przesyła obraz bez szyfrowania, więc należy go używać tylko w zaufanej sieci.