Komponent pylontech w ESPHome odczytuje domowe magazyny energii Pylontech przez port konsoli. Do tej pory podawał dane o każdym akumulatorze jako całości: napięcie, prąd, stan naładowania, temperatury oraz najniższe i najwyższe napięcie spośród jego ogniw. Od ESPHome 2026.11 pokaże też napięcie i temperaturę każdego ogniwa z osobna. Zmiany od użytkownika functionpointer, zgłoszone 6 czerwca 2026, bdraco scalił do gałęzi rozwojowej 17 października o 21:28 czasu polskiego, a o 21:35 dołączyła do nich dokumentacja (esphome.io #6746). Nowa wersja zastępuje dwie wcześniejsze próby, #14576 i #14259. Autor dziękuje użytkownikowi MichaelEFlip za większość pierwotnego kodu, a użytkownikowi ritschys za pomysł.

Jak to działa

Podłączenie się nie zmienia. ESP łączy się z portem konsoli RS232 akumulatora przez konwerter poziomów, na przykład z układem MAX3232, a przy kilku akumulatorach podłącza się do konsoli akumulatora głównego. Połączenia CAN i RS485 z falownikiem zostają nietknięte.

Przy każdej aktualizacji komponent wysyła polecenie pwr i odczytuje z odpowiedzi podsumowanie wszystkich akumulatorów. Jeśli w konfiguracji są ogniwa, po każdej odpowiedzi na pwr wyśle jeszcze po jednym poleceniu bat N dla każdego akumulatora z listą ogniw. Dzięki temu czujniki ogniw odświeżają się tak samo często jak czujniki akumulatorów. Akumulator ignoruje polecenie wysłane tuż po jego własnej odpowiedzi, więc każde bat N wychodzi z opóźnieniem 20 ms. Jeśli odpowiedź na bat nie dojdzie do końca, komponent porzuci ją przy następnej aktualizacji, a spóźnionej odpowiedzi nie pomyli z odpowiedzią na pwr.

Ogniwa mają numery od 0 do 14, a każde potrzebuje co najmniej jednego z czujników: voltage (napięcie) albo temperature (temperatura):

sensor:
  - platform: pylontech
    battery: 1
    cells:
      - cell: 0
        voltage:
          name: "Battery 1 Cell 0 Voltage"
        temperature:
          name: "Battery 1 Cell 0 Temperature"

ESPHome odrzuci konfigurację, w której to samo ogniwo pojawia się dwa razy przy jednym akumulatorze, albo pustą listę cells.

Wyłączanie w trakcie pracy

Każdy akumulator z ustawionymi ogniwami dokłada jedno polecenie do każdej aktualizacji. Nowa akcja pylontech.set_cell_polling wstrzymuje albo wznawia te polecenia bez ponownego wgrywania oprogramowania, na przykład z przełącznika szablonowego w Home Assistancie. Po starcie odczyt ogniw jest włączony, a jeśli nie ustawiono żadnych ogniw, akcja nic nie robi.

Koszt jest niewielki i ponoszą go tylko ci, którzy z tego korzystają. Kod obsługi ogniw trafia do oprogramowania tylko wtedy, gdy w konfiguracji są cells. Każdy taki akumulator zajmuje 60 bajtów na zapis 15 ogniw, a każdy czujnik ogniwa dokłada 12 bajtów. Autor uruchomił testy na komputerze i oznaczył jako sprawdzone ESP32 z ESP-IDF, ESP8266 i RP2040.

Najniższe i najwyższe napięcie ogniwa już wcześniej mogło zdradzić, że ogniwa w akumulatorze są nierówno naładowane. Czujniki poszczególnych ogniw pokażą dodatkowo, które ogniwo odbiega od reszty i jak zmienia się w czasie, na wykresie w Home Assistancie albo w automatyzacji.