# Komponent wM-Bus do ESPHome wersja 5.x - wątek ogólny

**URL:** <https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057>\
**Category:** ESPHome\
**Tags:** wmbus, wmbusmeters, esphome, sx1276\
**Created:** [23 Maj 2025 19:26 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057 "2025-05-23T19:26:27Z")\
**Posts on this page:** 20\
**Page:** 14

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 09:07 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/274 "2026-01-24T09:07:51Z")

</div>

Słuchajcie, po wielu testach i analizie tego co się dzieje pod maską ESP32 udało mi się przygotować finalną poprawkę.

Oryginalny kod przy ramkach Amiplus powodował tzw. **Stack Overflow** (przepełnienie stosu). Moja pierwsza próba z dynamicznym wektorem naprawiła dane, ale gryzła się z procesami WiFi w `esp-idf`, co kończyło się restartem przez Watchdoga (system nie wyrabiał z zarządzaniem pamięcią w locie).

Przerobiłem funkcje deszyfrujące tak, aby używały **statycznych wektorów z recyklingiem pamięci**.

- **Bezpieczeństwo:** Dane nie lądują na małym stosie (koniec z wywalaniem systemu przy dużych ramkach).
- **Wydajność:** Pamięć jest rezerwowana raz i używana ponownie. Procesor nie traci czasu na alokację przy każdym odczycie więc WiFi i reszta systemu powinny działać płynnie.

### Zapraszam do testów.

Wystarczy zmienić źródło komponentów w YAML na moje repo:

```yaml
external_components:
  - source:
      type: git
      url: https://github.com/AllonGit/esphome-components
      ref: main
    components: [wmbus_common, wmbus_radio, wmbus_meter]
    refresh: 0s`

```

Zalecam też dla pewności te wpisy w sekcji `esp32`:

```yaml
esp32:
  board: Twoja_plytka
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_ESP_MAIN_TASK_STACK_SIZE: "16384"
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "60"

```

### Zapraszam do testów dajcie znać, czy u Was też ta poprawka rozwiązały problem restartów. Jeśli u wszystkich będzie OK wyślę Pull Request do Szczepana.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 09:42 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/275 "2026-01-24T09:42:53Z")

</div>

Do pierwszego restartu wytrzymał 6 min 41 sek  
Zrobiony CleanBuild

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 09:45 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/276 "2026-01-24T09:45:28Z")

</div>

A czy masz jakieś logi?

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 09:46 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/277 "2026-01-24T09:46:30Z")

</div>

Nie mam bo mam ustawione:

```auto
esp32:
  board: heltec_wifi_lora_32_V2
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_ESP_MAIN_TASK_STACK_SIZE: "16384"
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "60"
      CONFIG_LOG_DEFAULT_LEVEL_NONE: "y"

```

Zakomentuje to i skompiluje jeszcze raz

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 09:51 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/278 "2026-01-24T09:51:11Z")

</div>

To jest cały kod? Musmy przywrócić logi  
**Przywrócenie możliwości logowania w `esp32`:**

```auto
esp32:
  board: heltec_wifi_lora_32_V2
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_ESP_MAIN_TASK_STACK_SIZE: "16384"
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "120"
      CONFIG_LOG_DEFAULT_LEVEL_INFO: "y"     

```

**Ustawienie selektywnego logowania w `logger`:**

```auto
logger:
  level: INFO
  baud_rate: 115200
  logs:
    esp-idf.wifi: NONE
    wmbus: DEBUG     

```

Proszę ustaw tak jak wysłałem i wtedy sprawdzimy logi i zobaczymy co jest dokładnie nie tak i od tej strony to podejdziemy.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 09:59 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/279 "2026-01-24T09:59:09Z")

</div>

logger powoduje bledy

```auto
Failed config

logger: [source /config/esphome/wmbus-lora.yaml:27]
  level: INFO
  baud_rate: 115200
  logs: 
    esp-idf.wifi: NONE
    
    The configured log level for wmbus (DEBUG) must not be less severe than the global log level (INFO).
    wmbus: DEBUG

```

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 10:01 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/280 "2026-01-24T10:01:34Z")

</div>

Sorki, mój błąd w logice ESPHome. Musimy ustawić globalny poziom na `DEBUG`, żeby system w ogóle pozwolił na wyświetlanie szczegółów z wM-Bus, a resztę komponentów wyciszyć ręcznie do `INFO` lub `NONE`.

```auto
logger:
  level: DEBUG 
  baud_rate: 115200
  logs:
    esp32: INFO
    esp-idf.wifi: NONE
    component: INFO
    api: INFO
    sensor: INFO
    wmbus: DEBUG

```

Wrzuć ten poprawiony blok `logger`. Dzięki temu zobaczymy dokładnie moment deszyfrowania ramki tuż przed restartem, ale WiFi nie będzie śmiecić w logach. Te 6 minut i 41 sekund to bardzo powtarzalny wynik – to sugeruje, że system ‘puchnie’ do pewnego momentu i musimy zobaczyć co to za moment.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 10:06 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/281 "2026-01-24T10:06:22Z")

</div>

Tylko ze jak tylko uruchomimy jakiekolwiek logi to nie czyta licznika energii

 ![obraz](https://forum.arturhome.pl/uploads/default/original/3X/2/b/2b5914f96dbc00cb2f21a1ea9da380b60acc11f9.png)  
I restarty sa co kilkadziescia sekund

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 10:21 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/282 "2026-01-24T10:21:36Z")

</div>

Biorąc pod uwagę logi przygotowałem konkretną listę zmian które powinieneś wprowadzić w pliku konfiguracyjnym, aby ustabilizować urządzenie.

Głównym problemem jest to, że **ESP32 “dusi się”** bardzo słabe WiFi (-85 dBm) dodatkow ciężkąa obróbka ramek radiowych i odświeżaniem wyświetlacza powoduje restarty połączenia API.

Optymalizacja Loggera

Obecnie masz poziom `DEBUG`, który zalewa procesor tekstem. Zmień go na `INFO`, ale zostaw tryb debugowania tylko dla samego komponentu wmbus, jeśli nadal chcesz widzieć odczyty:

```auto
logger:
  level: INFO
  logs:
    wmbus: DEBUG

```

Ratowanie WiFi

Sygnał **-85 dBm** to strefa śmierci. Jeśli nie możesz przenieść urządzenia spróbuj dodać te parametry, aby połączenie było mniej agresywnie zrywane:

```auto
wifi:
  # Twoje SSID i Password 
  output_power: 20dBm
  fast_connect: true
  reboot_timeout: 15min

```

Odciążenie procesora (Wyświetlacz)

Wyświetlacz zajmuje procesorowi aż 252 ms. Zwiększ interwał aktualizacji, aby dać czas radiu i WiFi:

```auto
display:
  - platform: ssd1306_i2c
    id: my_display
    update_interval: 5s # Zmień z 1s na 5s lub więcej
    # reszta konfiguracji 

```

Sprawdzenie Drivera

W logach pojawia się komunikat `(driver unknown!)` dla licznika energii, mimo że ramka jest deszyfrowana. Może to oznaczać, że musisz doprecyzować konfigurację sensora, aby dane “wskoczyły” na swoje miejsce. Sprawdź, czy Twoja sekcja `wmbus` wygląda podobnie do tej:

```auto
sensor:
  - platform: wmbus
    meter_id: 0x31584572
    type: amiplus
    key: "59054358010009128400000000000000"
    total_energy_consumption_kwh:
      name: "Suma konsumpcji"

```

### Co się dzieje w logach:

Twoje urządzenie odbiera dane poprawnie (widzę `decrypted "2F2F066D..."`), co oznacza, że **klucz AES i ID licznika są poprawne**. Jednak zaraz po udanym odkodowaniu następuje: `INFO Processing unexpected disconnect from ESPHome API` Dzieje się tak, bo procesor był tak zajęty mieleniem ramki i rysowaniem po ekranie, że “zapomniał” odpowiedzieć do Home Assistanta, a ten uznał go za martwego.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 10:29 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/283 "2026-01-24T10:29:49Z")

</div>

loger znowu daje blad

```auto
Failed config

logger: [source /config/esphome/wmbus-lora.yaml:27]
  level: INFO
  logs: 
    
    The configured log level for wmbus (DEBUG) must not be less severe than the global log level (INFO).
    wmbus: DEBUG

```

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 10:33 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/284 "2026-01-24T10:33:31Z")

</div>

wyłączymy całkowicie loger bo więcej z nim problemów:

```auto
logger:
  level: NONE
  baud_rate: 0

```

I zobaczymy co będzie dalej.  
Jak narazie nie mam więcej pomysłów.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 10:37 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/285 "2026-01-24T10:37:58Z")

</div>

To jest jakas wariacja. Wszystko dzialalo do momentu aktualizacji Esphome. To zamiast udoskonalac to psuja?

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 10:42 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/286 "2026-01-24T10:42:02Z")

</div>

To co kiedyś “jakoś działało” na granicy wydajności po aktualizacji może zacząć przekraczać krytyczne 30 ms (tzw. _task watchdog_). Nie tyle “psują”, co sprawiaj, że system staje się mniej tolerancyjny dla konfiguracji które mocno obciazają sprzęt .

Z każdą aktualizacją ESPHome dochodzą nowe funkcje lepsza obsługa standardów i bardziej rozbudowane biblioteki (np. nowsze wersje frameworka Arduino lub ESP-IDF) co stawia **wyższe wymagania procesorowi**.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 10:49 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/287 "2026-01-24T10:49:39Z")

</div>

A ja mam wrażenie że to tylko u mnie są problemy. Nikt nie odzywa się w temacie więc domniemam że u innych wszystko działa jak należy.

---

<div class="post-metadata">

**Autor:** ![angler](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/angler/32/31484_2.png) [@angler](https://forum.arturhome.pl/u/angler)\
**Data wpisu:** [24 Styczeń 2026 10:53 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/288 "2026-01-24T10:53:20Z")

</div>

Ja bym zaczął od wywalenia zasobożernego `web serwer`.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 10:54 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/289 "2026-01-24T10:54:17Z")

</div>

Ależ właśnie mi najbardziej na nim zależy 🙂

---

<div class="post-metadata">

**Autor:** ![angler](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/angler/32/31484_2.png) [@angler](https://forum.arturhome.pl/u/angler)\
**Data wpisu:** [24 Styczeń 2026 10:56 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/290 "2026-01-24T10:56:18Z")

</div>

Ale przynajmniej maiłabyś pewność, że chodzi o zasoby.

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 11:00 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/291 "2026-01-24T11:00:24Z")

</div>

Tu właśnie tylko i wyłącznie o zasoby chodzi. To jest najgorsza konfiguracja jaką kiedykolwiek robiłem🙈

---

<div class="post-metadata">

**Autor:** ![Allon](https://forum.arturhome.pl/letter_avatar_proxy/v4/letter/a/7993a0/32.png) [@Allon](https://forum.arturhome.pl/u/Allon)\
**Data wpisu:** [24 Styczeń 2026 11:07 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/292 "2026-01-24T11:07:22Z")

</div>

Ja bym odchudził YAML do minimum ale jak zależy ci na Web Server to trzeba ograniczać wszystko po kolei z moją poprawką do kodu:

```yaml
#Logger na absolutne zero 
logger:
  level: NONE
  baud_rate: 0

#Optymalizacja Web Serwera
web_server:
  port: 80
  local: true # Pobiera zasoby z pamięci urządzenia, nie z internetu

#odciążenie wyświetlacza
display:
  - platform: ssd1306_i2c
    id: my_display
    update_interval: 20s # Zamiast co 1s odświeża co 20s.

# Stabilizacja przy słabym sygnal
wifi:
  # Twoje SSID i Password 
  power_save_mode: NONE
  output_power: 20dBm
  fast_connect: true
  reboot_timeout: 0s # Zakaz restartu, gdy WiFi chwilowo zniknie

api:
  reboot_timeout: 0s # Zakaz restartu przy rozłączeniu z HA

```

To powinno odciążyć ESP.

---

<div class="post-metadata">

**Autor:** ![kniazio](https://forum.arturhome.pl/user_avatar/forum.arturhome.pl/kniazio/32/20557_2.png) [@kniazio](https://forum.arturhome.pl/u/kniazio)\
**Data wpisu:** [24 Styczeń 2026 11:16 UTC](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057/293 "2026-01-24T11:16:10Z")

</div>

Jak narazie to juz po wylaczeniu logera obydwa moduly dzialaja ok pol godziny

Panowie. Minęła godzina i moduły działają bez restartu.  
Testujemy dalej

[Poprzednia strona](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057.md?page=13)

[Następna strona](https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-wersja-5-x-watek-ogolny/15057.md?page=15)
