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

Ale można ustalić że:

  • W kodzie używałeś GPIO18 jako clk_pin. W dokumentacji (dla esp-idf) pin GPIO18 jest przypisany do cs_pin radia.

  • musisz podać irq_pin (który fizycznie odpowiada za DIO0 lub DIO1 na module).

  • Przydało by się dodać tryb. Izar zazwyczaj nadają w T1.

Chyba żeby coś źle wnioskuje.


Ostatnia wersja ale nie pytaj mnie czy Ci zadziała :slight_smile:

w dokumentacji od plytki pin 18 jest wlasnie sck, irq tez jest przypisany, kod działa na wersji 5.0.4 i 5.0.5 nastepna to 5.1.6 czyli main i tu już ten kod nie działa, próbuje wykminić co sie zmieniło :smiley:

Wniosek dla Ciebie nasuwa się sam : zostań przy wersji która działa u Ciebie

jest jeden mankament, po ok 10 minutach sie wykrzacza, tj przestaje czytać, pomaga restart ems32

Może jakieś logi? Widzę że masz na Verbose to je prześlij

Zajmiemy sie wróżeniem teraz.
Wklej do swojego kodu poniższy fragment :

debug:
  update_interval: 30s

sensor:
  # Uptime w sekundach - łatwo zobaczyć, czy node faktycznie działa długo bez resetu
  - platform: uptime
    name: "ESP Uptime Seconds"
    type: seconds
    entity_category: diagnostic

  # Debug systemowy - heap, blok pamięci, minima, pętla główna, PSRAM, CPU
  - platform: debug
    free:
      name: "ESP Heap Free"
      entity_category: diagnostic
    block:
      name: "ESP Heap Max Block"
      entity_category: diagnostic
    min_free:
      name: "ESP Heap Min Free"
      entity_category: diagnostic
    fragmentation:
      name: "ESP Heap Fragmentation"
      entity_category: diagnostic
    loop_time:
      name: "ESP Loop Time"
      entity_category: diagnostic
    psram:
      name: "ESP Free PSRAM"
      entity_category: diagnostic
    cpu_frequency:
      name: "ESP CPU Frequency"
      entity_category: diagnostic

  # Temperatura MCU - nie wskaże wszystkiego, ale może pokazać przegrzewanie
  - platform: internal_temperature
    name: "ESP MCU Temperature"
    update_interval: 60s
    entity_category: diagnostic

  # Siła sygnału Wi-Fi
  - platform: wifi_signal
    name: "ESP WiFi RSSI"
    update_interval: 60s
    entity_category: diagnostic

text_sensor:
  # Uptime czytelny dla człowieka
  - platform: uptime
    name: "ESP Uptime Text"
    entity_category: diagnostic

  # Informacje debug
  - platform: debug
    device:
      name: "ESP Device Info"
      entity_category: diagnostic
    reset_reason:
      name: "ESP Reset Reason"
      entity_category: diagnostic

  # Informacje o Wi-Fi
  - platform: wifi_info
    ip_address:
      name: "ESP IP Address"
      entity_category: diagnostic
    ssid:
      name: "ESP WiFi SSID"
      entity_category: diagnostic
    bssid:
      name: "ESP WiFi BSSID"
      entity_category: diagnostic

  # Dobrze mieć też wersję ESPHome
  - platform: version
    name: "ESPHome Version"
    hide_timestamp: true
    entity_category: diagnostic

Efektem tego kodu jest powstanie takiego ekranu w ESP Ha:

Zaobserwuj co się zmienia i jaki powód jest w Reset Reason etc.

U mnie na wersji 5.1.6 czekam na odczyt z nakładki apatora162 2-3 godziny, jak się cofnę do wersji 5.0.5 to wszystko wraca do normy…radio sx1276

Dodam ciekawostkę związaną z Heltec v2 - po wyłączeniu dekodowania ramki (przy części wmbus_meter on_telegram)

RSSI skoczyło z okolic -105dBm do ok. -70dBm. W sumie to nie zauważyłem za bardzo różnicy w liczbie odebranych ramek, więc nie wiem czy to rzeczywista różnica, czy tylko “wizualna”, może to jakaś kwestia obciążenia CPU czy coś innego. Może komuś się ta informacja przyda, o ile nie było takiego wątku w temacie.

Cześć,
Z racji, że na CC1101 mi nie poszło to kupiłem moduł SX1276 i wraz ESP32 wroom próbuje na nim zrobić odczyt licznika ciepła qualcosonic.
Nie idzie to tak łatwo jak myślałem.
Załączam kod.

esphome:
  name: esp32-wroom
  friendly_name: ESP32_WROOM

esp32:
  board: esp32dev
  framework:
    type: esp-idf

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    components: [ wmbus_radio, wmbus_common, wmbus_meter, socket_transmitter ]
	
# Enable logging
logger:
  level: INFO

api:
  encryption:
    key: "X1q5zqdlERc3015R1PZadsf891mMl62NxCZ48s="

ota:
  - platform: esphome
    password: "5f66571df7sdfdse9b15fb88"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Wroom Fallback Hotspot"
    password: "GdjhgrCbCsdfD9N"

captive_portal:

mqtt:
  broker: 192.168.0.10
  port: 1883
  username: esp
  password: !secret mqtt_password   
  
web_server: 
  port: 80
  version: 3
  
time:
  - platform: homeassistant  

spi:
  clk_pin:
    number: GPIO5
    ignore_strapping_warning: true
  mosi_pin: GPIO23
  miso_pin: GPIO19

wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO18
  reset_pin: GPIO14
  irq_pin: GPIO35
  on_frame:
    - then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d)"
            args: [ frame->rssi(), frame->as_hex().c_str(), frame->data().size() ]
            
wmbus_meter:
  - id: heat_meter               
    meter_id: 04018481
    type: qualcosonic
    mode:
      - T1
    on_telegram:
      then:
        - logger.log: "Mam telegram z licznika!"
        - wmbus_meter.send_telegram_with_mqtt:
            topic: wmbus-test/telegram
sensor:
  - platform: wmbus_meter
    parent_id: heat_meter
    field: total_heat_energy
    name: total_heat_energy
    state_class: total_increasing

  - platform: wmbus_meter
    parent_id: heat_meter
    field: total_cooling_energy
    name: total_cooling_energy
    state_class: total_increasing

Przy wersji ESPHome 2026.2.4 bądź 2026.3.0 dostaję takie logi:

[14:06:40][D][packet:097]: Have data from radio (8 bytes)
[14:06:40][D][wmbusmeters:351]: raw packet "4F2F1DFBC75C377D"
[14:06:40][V][packet:073]: expected_size: 8
[14:06:40][V][wmbusmeters:4841]: (wmbus) not enough bytes! expected at least 12 but got (8)!
[14:06:40][V][packet:073][radio_recv]: expected_size: 8
[14:06:40][V][wmbus:099][radio_recv]: Queue items: 1
[14:06:40][V][wmbus:101][radio_recv]: Queue send success
[14:06:40][VV][component:216]: logger loop disabled
[14:06:46][VV][api.service:058]: on_ping_request: PingRequest {}
[14:06:46][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:07:03][VV][api.connection:207]: Sending keepalive PING
[14:07:03][VV][api.service:012]: send_message ping_request: PingRequest {}
[14:07:03][VV][api.service:067]: on_ping_response: PingResponse {}
[14:07:26][VV][api.service:058]: on_ping_request: PingRequest {}
[14:07:26][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:07:40][VV][app:427]: logger loop enabled from ISR
[14:07:40][D][packet:097]: Have data from radio (8 bytes)
[14:07:40][D][wmbusmeters:351]: raw packet "6FFDBFCB9DBE7F3F"
[14:07:40][V][packet:073]: expected_size: 8
[14:07:40][V][wmbusmeters:4841]: (wmbus) not enough bytes! expected at least 12 but got (8)!
[14:07:40][V][packet:073][radio_recv]: expected_size: 8
[14:07:40][V][wmbus:099][radio_recv]: Queue items: 1
[14:07:40][V][wmbus:101][radio_recv]: Queue send success
[14:07:40][VV][component:216]: logger loop disabled
[14:08:03][VV][api.connection:207]: Sending keepalive PING
[14:08:03][VV][api.service:012]: send_message ping_request: PingRequest {}
[14:08:03][VV][api.service:067]: on_ping_response: PingResponse {}
[14:08:07][VV][api.service:058]: on_ping_request: PingRequest {}
[14:08:07][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:08:42][VV][app:427]: logger loop enabled from ISR
[14:08:42][D][packet:097]: Have data from radio (8 bytes)
[14:08:42][D][wmbusmeters:351]: raw packet "4F2F3FFFDFED346B"
[14:08:42][V][packet:073]: expected_size: 8
[14:08:42][V][wmbusmeters:4841]: (wmbus) not enough bytes! expected at least 12 but got (8)!
[14:08:42][V][packet:073][radio_recv]: expected_size: 8
[14:08:42][V][wmbus:099][radio_recv]: Queue items: 1
[14:08:42][V][wmbus:101][radio_recv]: Queue send success
[14:08:42][VV][component:216]: logger loop disabled
[14:08:47][VV][api.service:058]: on_ping_request: PingRequest {}
[14:08:47][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:09:03][VV][api.connection:207]: Sending keepalive PING
[14:09:03][VV][api.service:012]: send_message ping_request: PingRequest {}
[14:09:03][VV][api.service:067]: on_ping_response: PingResponse {}
[14:09:27][VV][api.service:058]: on_ping_request: PingRequest {}
[14:09:27][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:09:43][VV][app:427]: logger loop enabled from ISR
[14:09:43][D][packet:097]: Have data from radio (218 bytes)
[14:09:43][D][wmbusmeters:351]: raw packet "4F271CB3132D6E52CD599B0E58D59368DCD96E66E35D6CD799DB9BB27C5AE7EC995AE7539B6F5A9ECAEB99BB72FBF1FC7DAA6CCBED4AE7CF9B2D73D7F95FF696379ADB346B5DCFDF7AF37E5DB6DFE935B6D3A36CEFD5EDE9F3B364EF69E367594931B2B8EB77393FAF673B67BDE539E87B79B373B1F3E1671BB1F74779EF3395376BEDCF694D9A1CD4B1CD4CA5A7B97317A68CDDE9BEFD3CF937CBCF167CF9B9F2D7876C6BF9F679EC1F966DDFFC8DFF6F9FFDB326164CCD5EC4EDDDF78B6A6D59B96AC1CDBC6EDABD334F39BB3FDB9D2E7D84A76EA7D6BB3E77"
[14:09:43][V][packet:073]: expected_size: 218
[14:09:43][D][wmbusmeters:351]: (wmbus) trimming frame A "4F271CB3132D6E52CD599B0E58D59368DCD96E66E35D6CD799DB9BB27C5AE7EC995AE7539B6F5A9ECAEB99BB72FBF1FC7DAA6CCBED4AE7CF9B2D73D7F95FF696379ADB346B5DCFDF7AF37E5DB6DFE935B6D3A36CEFD5EDE9F3B364EF69E367594931B2B8EB77393FAF673B67BDE539E87B79B373B1F3E1671BB1F74779EF3395376BEDCF694D9A1CD4B1CD4CA5A7B97317A68CDDE9BEFD3CF937CBCF167CF9B9F2D7876C6BF9F679EC1F966DDFFC8DFF6F9FFDB326164CCD5EC4EDDDF78B6A6D59B96AC1CDBC6EDABD334F39BB3FDB9D2E7D84A76EA7D6BB3E77"
[14:09:43][V][wmbusmeters:4858]: (wmbus) ff a dll crc first (calculated 9d88) did not match (expected 9b0e) for bytes 0-10!
[14:09:43][V][packet:073][radio_recv]: expected_size: 218
[14:09:43][V][wmbus:099][radio_recv]: Queue items: 1
[14:09:43][V][wmbus:101][radio_recv]: Queue send success
[14:09:43][V][packet:073][radio_recv]: expected_size: 8
[14:09:43][V][wmbus:099][radio_recv]: Queue items: 2
[14:09:43][V][wmbus:101][radio_recv]: Queue send success
[14:09:43][D][packet:097]: Have data from radio (8 bytes)
[14:09:43][D][wmbusmeters:351]: raw packet "4BF77FFDFFAE7CDF"
[14:09:43][V][packet:073]: expected_size: 8
[14:09:43][V][wmbusmeters:4841]: (wmbus) not enough bytes! expected at least 12 but got (8)!
[14:09:43][VV][component:216]: logger loop disabled
[14:10:03][VV][api.connection:207]: Sending keepalive PING
[14:10:03][VV][api.service:012]: send_message ping_request: PingRequest {}
[14:10:03][VV][api.service:067]: on_ping_response: PingResponse {}
[14:10:08][VV][api.service:058]: on_ping_request: PingRequest {}
[14:10:08][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:10:28][VV][api.service:058]: on_ping_request: PingRequest {}
[14:10:28][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:10:43][VV][app:427]: logger loop enabled from ISR
[14:10:43][D][packet:097]: Have data from radio (8 bytes)
[14:10:43][D][wmbusmeters:351]: raw packet "4F2F1FFFF7655FEE"
[14:10:43][V][packet:073]: expected_size: 8
[14:10:43][V][wmbusmeters:4841]: (wmbus) not enough bytes! expected at least 12 but got (8)!
[14:10:43][V][packet:073][radio_recv]: expected_size: 8
[14:10:43][V][wmbus:099][radio_recv]: Queue items: 1
[14:10:43][V][wmbus:101][radio_recv]: Queue send success
[14:10:43][VV][component:216]: logger loop disabled
[14:10:48][VV][api.service:058]: on_ping_request: PingRequest {}
[14:10:48][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:11:08][VV][api.service:058]: on_ping_request: PingRequest {}
[14:11:08][VV][api.service:012]: send_message ping_response: PingResponse {}
[14:11:28][VV][api.service:058]: on_ping_request: PingRequest {}
[14:11:28][VV][api.service:012]: send_message ping_response: PingResponse {}

Zmieniłem wersję na 2025.8.4 i tam występuje problem taki, że urządzenie się restartuje przy dekodowaniu:

[14:35:16.412][D][wmbusmeters:351]: (wmbus) trimming frame A "59440907818401040C0DBBA97A5F000000046D180F5233048E3BFF712E7B0000048E3C0000000004130A8406000CE5BB788184010484086D3B175C3284088E3BA6F3C86F000084088E3C00000000446D3B1730113F3C448E3B7A5B0000448E3C0000000014DC"
[14:35:16.423][V][wmbusmeters:4866]: (wmbus) ff a dll crc 0-9 bba9 ok
[14:35:16.426][V][wmbusmeters:4884]: (wmbus) ff a dll crc mid 12-27 2e7b ok
[14:35:16.426][V][wmbusmeters:4884]: (wmbus) ff a dll crc mid 30-45 e5bb ok
[14:35:16.442][V][wmbusmeters:4884]: (wmbus) ff a dll crc mid 48-63 a6f3 ok
[14:35:16.448][V][wmbusmeters:4884]: (wmbus) ff a dll crc mid 66-81 3011 ok
[14:35:16.452][V][wmbusmeters:4884]: (wmbus) ff a dll crc mid 84-99 14dc ok
[14:35:16.457][D][wmbusmeters:351]: (wmbus) trimming frame A "59440907818401040C0DBBA97A5F000000046D180F5233048E3BFF712E7B0000048E3C0000000004130A8406000CE5BB788184010484086D3B175C3284088E3BA6F3C86F000084088E3C00000000446D3B1730113F3C448E3B7A5B0000448E3C0000000014DC"
[14:35:16.486][V][wmbusmeters:4917]: (wmbus) trimmed 12 dll crc bytes from frame a and ignored 0 suffix bytes.
[14:35:16.500][D][wmbusmeters:351]: (wmbus) trimmed frame A "59440907818401040C0D7A5F000000046D180F5233048E3BFF710000048E3C0000000004130A8406000C788184010484086D3B175C3284088E3BC86F000084088E3C00000000446D3B173F3C448E3B7A5B0000448E3C00000000"
[14:35:16.506][D][wmbusmeters:351]: (wmbus) checkWMBUSFrame "59440907818401040C0D7A5F000000046D180F5233048E3BFF710000048E3C0000000004130A8406000C788184010484086D3B175C3284088E3BC86F000084088E3C00000000446D3B173F3C448E3B7A5B0000448E3C00000000"
[14:35:16.534][V][wmbusmeters:5094]: (wmbus) received full frame.
[14:35:16.541][V][wmbus:047]: Have data (90 bytes) [RSSI: -90dBm, mode: T1 A]
[14:35:16.551][D][main:518]: RSSI: -90dBm T: 59440907818401040c0d7a5f000000046d180f5233048e3bff710000048e3c0000000004130a8406000c788184010484086d3b175c3284088e3bc86f000084088e3c00000000446d3b173f3c448e3b7a5b0000448e3c00000000 (90)
[14:35:16.565][V][wmbusmeters:1066]: (wmbus) parseDLL @0 90
[14:35:16.572][V][wmbusmeters:1137]: (wmbus) parseELL @10 80
[14:35:16.578][V][wmbusmeters:1302]: (wmbus) parseNWL @10 80
[14:35:16.585][V][wmbusmeters:1333]: (wmbus) parseAFL @10 80
[14:35:16.592][V][wmbusmeters:2044]: (wmbus) parseTPL @10 80
[14:35:16.601][D][wmbusmeters:585]: [DVPARSER] entry 17: 046D Instantaneous vif=6d st=0 ta=0 su=0
INFO Processing unexpected disconnect from ESPHome API for esp32-wroom @ 192.168.0.244
WARNING Disconnected from API
INFO Successfully resolved esp32-wroom @ 192.168.0.244 in 0.000s
INFO Successfully connected to esp32-wroom @ 192.168.0.244 in 0.005s
INFO Successful handshake with esp32-wroom @ 192.168.0.244 in 0.104s

Znalazłem informację żeby debug przestawić na INFO, wtedy oczywiście widzę w enetrze inne ramki z liczników qualcosonic jednakże dla mojego nic się nie dzieje dalej.
Z tego co rozumiem to powinienen zobaczyć chociaż “Mam telegram z licznika!”. Czy źle myślę ?

@dzwonek
nie jestem na bieżąco, ale biorąc pod uwagę jakiś telegram z twojego loga

przykładowo pole z energią pobraną na grzanie w kilowatach nazywa się total_heat_energy_kwh a nie total_heat_energy

Dzięki ! masz rację błędnie zapisałem pola :wink:
Dodatkowo zmieniłem id licznika na meter_id: 0x04018481 i ruszyło :slight_smile:

Problem jest taki, że RSSI jest liczone na każdym bicie przesyłanych informacji i uśredniane. Odbiornik jest właściwie uruchomiony cały czas. I teraz, jak trochę zbyt późno zapytasz o RSSI odbiornik to się możesz dowiedzieć nie o poziom rzeczywistego sygnału tylko o poziom szumu, który odbieramy już po właściwych danych.
A jeśli masz coś do zrobienia zaraz po odbiorze (czyli on_telegram) i to coś trwa długo, to masz większą szansę że dowiesz się o poziom szumu a nie o poziom payloadu.
Dlatego RSSI masz śmieciowe, a wcale nie odbiera gorzej niż na normalnym poziomie tego wskaźnika :wink:

Czy komuś wywaliło odczyty po update esphome do wersji 2026.3.0? Ja nie aktualizowałem jeszcze ale kolega już mi meldował że jemu odczyty znikły. Wersja repo to: github://SzczepanLeon/esphome-components@5.0.4. Po przywróceniu do poprzedniej wersji odczyty nadal działają czyli wszystko wróciło do normy.

5.0.5 działa na 2026.3.0 narazie testuje bo przesiadam się z v4

Panowie, potrzebuję pomocy…
Historia:
ESP32 dev1, framwork arduino i CC1101, wersja 4 komponentu. Instalacja w bloku. Liczniki Apator162 odczyt co 5-15 minut (zależnie od pory). Licznik amiplus odczyt co 2 minuty (przesyła naprzemiennie ramkę ‘krótka’ - tylko timestamp i ‘pełną’)
Obecnie:

Po update do esp-idf i wersji 5 minimalny odczyt przydatnych telegramów. Próbowałem na ESP32dev1, ESP32-C3 super mini, radio CC1101 oraz SX1276.
Odczyt wygląda tak, że ‘łapie’ ramki 8bajtowe (nieczytelne dla wmbus), w porywach z raz na godzinę telegram od amiplus (ale tylko ten ‘krótki’, timestamp) i raz, dwa razy dziennie jeden apator162.
RRSI na poziomie -60/-40

esphome:
  name: liczniki
  friendly_name: BT2
  min_version: 2025.5.0
  name_add_mac_suffix: false
    
esp32:
  board: esp32dev
  framework:
    type: esp-idf
    
external_components:
  - source: github://SzczepanLeon/esphome-components@main
    components:
      - wmbus_common
      - wmbus_meter
      - wmbus_radio

time:
  - platform: homeassistant
    id: homeassistant_time

logger:
  level: VERY_VERBOSE

api:

ota:
- platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: adres
    gateway: gate
    subnet: subnet
spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23
  miso_pin: GPIO19

wmbus_radio:
  radio_type: CC1101
  cs_pin: GPIO5
  irq_pin: GPIO13

  on_frame:
    - then:
        - logger.log:
            format: "Frame received: RSSI=%ddBm, Mode=%s, Data=%s"
            args: [ 'frame->rssi()', 'toString(frame->link_mode())', 'frame->as_hex().c_str()' ]
wmbus_common:
  drivers:
    - apator162
    - amiplus

wmbus_meter:
  - id: woda_zimna
    meter_id: 0x02587532  ######## enter your APATOR meter ID here ###########
    type: apator162
    key: "00000000000000000000000000000000"

  - id: woda_ciepla
    meter_id: 0x01542371  ######## enter your APATOR meter ID here ###########
    type: apator162
    key: "00000000000000000000000000000000"

  - id: prad
    meter_id: 0x13830296  ######## enter your ELECTRICITY meter ID here ###########
    type: amiplus
    key: "moj klucz"  ######## enter your key here ###########
    mode: 
      - T1
      - C1

sensor:
  - platform: wmbus_meter
    parent_id: woda_zimna
    field: total_m3
    device_class: water
    name: LICZNIK WODA ZIMNA
    accuracy_decimals: 2
    state_class: total_increasing
    unit_of_measurement: "m³"
  - platform: wmbus_meter
    parent_id: woda_zimna
    field: rssi_dbm
    name: LICZNIK WODA ZIMNA RSSI
    unit_of_measurement: "dBm"
    device_class: "signal_strength"
    state_class: "measurement"
    entity_category: "diagnostic" 

  - platform: wmbus_meter
    parent_id: woda_ciepla
    field: total_m3
    device_class: water
    name: LICZNIK WODA CIEPŁA
    accuracy_decimals: 2
    state_class: total_increasing
    unit_of_measurement: "m³"
  - platform: wmbus_meter
    parent_id: woda_ciepla
    field: rssi_dbm
    name: LICZNIK WODA CIEPŁA RSSI
    unit_of_measurement: "dBm"
    device_class: "signal_strength"
    state_class: "measurement"
    entity_category: "diagnostic" 

  - platform: wmbus_meter
    parent_id: prad
    field: current_power_consumption_kw
    name: LICZNIK PRĄDU Aktualne zużycie
    unit_of_measurement: "kW"
    state_class: measurement
    device_class: power
    icon: "mdi:transmission-tower-import"
  - platform: wmbus_meter
    parent_id: prad
    field: total_energy_consumption_kwh
    name: LICZNIK PRĄDU Całkowite zużycie
    unit_of_measurement: "kWh"
    state_class: total_increasing
    icon: "mdi:transmission-tower-import"
    device_class: energy
  - platform: wmbus_meter
    parent_id: prad
    field: total_energy_consumption_tariff_1_kwh
    name: LICZNIK PRĄDU Całkowite zużycie T1
    unit_of_measurement: "kWh"
    state_class: total_increasing
    icon: "mdi:transmission-tower-import"
    device_class: energy

  - platform: wmbus_meter
    parent_id: prad
    field: rssi_dbm
    name: LICZNIK PRĄDU RSSI
    unit_of_measurement: "dBm"
    device_class: "signal_strength"
    state_class: "measurement"
    entity_category: "diagnostic" 

text_sensor:
  - platform: wmbus_meter
    parent_id: woda_zimna
    name: "LICZNIK WODA ZIMNA ODCZYT"
    field: "timestamp"
    entity_category: "diagnostic"
  - platform: wmbus_meter
    parent_id: woda_ciepla
    name: "LICZNIK WODA CIEPŁA ODCZYT"
    field: "timestamp"
    entity_category: "diagnostic"
  - platform: wmbus_meter
    parent_id: prad
    name: "LICZNIK PRĄDU ODCZYT"
    field: "timestamp"
    entity_category: "diagnostic"

button:
  - platform: restart
    name: "Restart"

Log VeryVerbose:

\[07:40:30\]\[D\]\[packet:097\]: Have data from radio (56 bytes)
\[07:40:30\]\[D\]\[wmbusmeters:351\]: raw packet “37271CCB135C95A58EB0B34B58D58ED253564E62F25963565992E52D694D72535A6A38F42E937135C2D9D16372A65726B0D6994E62D370B0”
\[07:40:30\]\[V\]\[packet:073\]: expected_size: 56
\[07:40:30\]\[D\]\[wmbusmeters:351\]: (wmbus) trimming frame A “1E44ED14960283130102C9107A3E00100539309149166BBC3F1D1435C01EF94A81657A3743”
\[07:40:30\]\[V\]\[wmbusmeters:4866\]: (wmbus) ff a dll crc 0-9 c910 ok
\[07:40:30\]\[V\]\[wmbusmeters:4884\]: (wmbus) ff a dll crc mid 12-27 c01e ok
\[07:40:30\]\[V\]\[wmbusmeters:4904\]: (wmbus) ff a dll crc final 30-34 3743 ok
\[07:40:30\]\[D\]\[wmbusmeters:351\]: (wmbus) trimming frame A “1E44ED14960283130102C9107A3E00100539309149166BBC3F1D1435C01EF94A81657A3743”
\[07:40:30\]\[V\]\[wmbusmeters:4917\]: (wmbus) trimmed 6 dll crc bytes from frame a and ignored 0 suffix bytes.
\[07:40:30\]\[D\]\[wmbusmeters:351\]: (wmbus) trimmed frame A “1E44ED149602831301027A3E00100539309149166BBC3F1D1435F94A81657A”
\[07:40:30\]\[D\]\[wmbusmeters:351\]: (wmbus) checkWMBUSFrame “1E44ED149602831301027A3E00100539309149166BBC3F1D1435F94A81657A”
\[07:40:30\]\[V\]\[wmbusmeters:5094\]: (wmbus) received full frame.
\[07:40:30\]\[V\]\[wmbus:047\]: Have data (31 bytes) \[RSSI: -62dBm, mode: T1 A\]
\[07:40:30\]\[D\]\[main:469\]: Frame received: RSSI=-62dBm, Mode=T1, Data=1e44ed149602831301027a3e00100539309149166bbc3f1d1435f94a81657a
\[07:40:30\]\[V\]\[wmbusmeters:1066\]: (wmbus) parseDLL @0000 31
\[07:40:30\]\[V\]\[wmbusmeters:1137\]: (wmbus) parseELL@10@10 21
\[07:40:30\]\[V\]\[wmbusmeters:1302\]: (wmbus) parseN@10@10 @10 21
\[07:40:30\]\[V\]\[wmbusmeters:1333\]: (wmbus) pars@10@10FL @10 21
\[07:40:30\]\[V\]\[wmbusmeters:2044\]: (wmbus) pa@10@10eTPL @10 21
\[07:40:30\]\[V\]\[wmbusmeters:554\]: (meter) apator162-02587532: for me? 13830296.M=EGM.V=01.T=02 in 02587532
\[07:40:30\]\[V\]\[wmbusmeters:563\]: (meter) apator162-02587532: not for me: no match
\[07:40:30\]\[V\]\[wmbusmeters:1066\]: @0arseDLLw@0bus) @0arseDLL @0 31
\[07:40:30\]\[V\]\[wmbusmete@10parseELLs@101137\]: (wmbus)@10parseELL @10 21
\[07:40:30\]\[V\]\[wmbusmete@10s:1302\]: (wmbu@10) parseNWL @10 21
\[07:40:30\]\[V\]\[wmbusme@10ers:1333\]: (wm@10us) parseAFL @10 21
\[@10mbus7:40:30\]\[V\]@10wmbusmeters:2044\]: (@10mbus) parseTPL @10 21
\[07:40:30\]\[V\]\[wmbusmeters:554\]: (meter) apator162-01542371: for me? 13830296.M=EGM.V=01.T=02 in 01542371
\[07:40:30\]\[V\]\[wmbusmeters:563\]: (meter) apator162-01542371: not for me: @0o match
\[07:40:30@0\[V\]\[wmbusmeters:1066\]:@0(wmbus) par@10eDLL @0 31
\[07:40:@100\]\[V\]\[wmbusmeters:1137\]@10 (wmbus) parseELL @10 21
\[07:4@10:30\]\[V\]\[wmbusmeters:130@10\]: (wmbus) parseNWL @10 21
\[07@1040:31\]\[V\]\[wmbusmeters:1@1033\]: (wmbus) parseAFL @10 21
\[@107:40:31\]\[V\]\[wmbusmeters@102044\]: (wmbus) parseTPL @10 21
\[07:40:31\]\[V\]\[wmbusmeters:554\]: (meter) amiplus-13830296: for me? 13830296.M=EGM.V=01.T=02 in 13830296
\[07:40:31\]\[V\]\[wmbusmeters:574\]: (meter) amiplus-13830296: yes for me
\[07:40:31\]\[D\]\[wmbusmeters:779\]: (meter) amiplus-13830296(0) amiplus  handling telegram from 13830296.M=EGM.V=01.T=02
\[07:40:31\]\[V\]\[wmbusmeters:784\]: (meter) amiplus-13830296 13830296.M=EGM.V=01.T=02 “1E44ED149602831301027A3E00100539309149166BBC3F1D1435F94A81657A@0
\[07:40:31\]\[V\]\[wmbusmete@0s:1066\]: (wmbus) parseDLL @0 31
\[07:40:31\]\[D\]\[wmbusmeters:267\]: (telegram) DLL L=1e C=44 (from meter SND_NR) M=14ed (EGM) A=13830296 VER=01 TYPE=02 (Electricity meter) (driver unknown!) DEV=BT2 RSSI=-6@10
\[07:40:31\]\[V\]\[wmbusmet@10rs:1137\]: (wmbus) parseELL @10@1021
\[07:40:31\]\[V\]\[wmbusm@10ters:1302\]: (wmbus) parseNWL @@100 21
\[07:40:31\]\[V\]\[wmbu@10meters:1333\]: (wmbus) parseAFL@10@10 21
\[07:40:31\]\[V\]\[wm@10usmeters:2044\]: (wmbus) parseTPL @10 21
\[07:40:31\]\[V\]\[wmbusmeters:142\]: (TPL) num encrypted blocks 1 (16 bytes and remaining unencrypted 0 bytes)
\[07:40:31\]\[D\]\[wmbusmeters:351\]: (TPL) AES CBC IV decrypting “39309149166BBC3F1D1435F94A81657A”
\[07:40:31\]\[V\]\[wmbusmeters:196\]: (TPL) IV ED149602831301023E3E3E3E3E3E3E3E
\[07:40:31\]\[D\]\[wmbusmeters:357\]: (TPL) decrypted  “2F2F0D7C0838373635343332312F2F2F”
\[07:40:31\]\[V\]\[wmbusmeters:571\]: (dvparser) warning: unexpected end of data
\[07:40:31\]\[D\]\[wmbusmeters:585\]: \[DVPARSER\] entry 29: 0D7C083837363534333231 Instantaneous vif=7c  st=0 ta=0 su=0
\[07:40:31\]\[V\]\[wmbusmeters:609\]: (dvparser) found new format “0D7C” with hash 1a98, remembering!
\[07:40:31\]\[D\]\[wmbusmeters:322\]: (telegram) TPL CI=7a
\[07:40:31\]\[D\]\[wmbusmeters:326\]:  ACC=3e STS=00 CFG=0510 (AES_CBC_IV nb=1 cntn=0 ra=0 hc=0)
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_consumption(Energy)\[0\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info current_power_consumption(Power)\[1\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_production(Energy)\[2\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info current_power_production(Power)\[3\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info voltage_at_phase_1(Voltage)\[4\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info voltage_at_phase_2(Voltage)\[5\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info voltage_at_phase_3(Voltage)\[6\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info device_date_time(Text)\[7\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_consumption_tariff_1(Energy)\[8\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_consumption_tariff_2(Energy)\[9\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_consumption_tariff_3(Energy)\[10\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_production_tariff_1(Energy)\[11\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_production_tariff_2(Energy)\[12\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info total_energy_production_tariff_3(Energy)\[13\]…
\[07:40:31\]\[V\]\[wmbusmeters:853\]: (meters) trying field info max_power_consumption(Power)\[14\]…
\[07:40:31\]\[V\]\[wmbus:056\]: Telegram handled by 1 handlers
\[07:40:31\]\[V\]\[packet:073\]\[radio_recv\]: expected_size: 56
\[07:40:31\]\[V\]\[wmbus:099\]\[radio_recv\]: Queue items: 1
\[07:40:31\]\[V\]\[wmbus:101\]\[radio_recv\]: Queue send success
\[07:40:31\]\[V\]\[sensor:069\]: ‘LICZNIK PRĄDU RSSI’: Received new state -62.000000
\[07:40:31\]\[D\]\[sensor:124\]: ‘LICZNIK PRĄDU RSSI’ >> -62 dBm
\[07:40:31\]\[V\]\[text_sensor:035\]: ‘LICZNIK PRĄDU ODCZYT’: Received new state 2026-03-23 07:40:29
\[07:40:31\]\[D\]\[text_sensor:120\]: ‘LICZNIK PRĄDU ODCZYT’ >> ‘2026-03-23 07:40:29’
\[07:40:31\]\[VV\]\[component:301\]: logger loop disabled
\[07:40:31\]\[VV\]\[api.service:012\]: send_message sensor_state_response: SensorStateResponse {
\[07:40:31\]\[VV\]\[api.service:012\]:  key: 3221701348
\[07:40:31\]\[VV\]\[api.service:012\]:  state: -62
\[07:40:31\]\[VV\]\[api.service:012\]:  missing_state: NO
\[07:40:31\]\[VV\]\[api.service:012\]: }
\[07:40:31\]\[VV\]\[api.service:012\]: send_message text_sensor_state_response: TextSensorStateResponse {
\[07:40:31\]\[VV\]\[api.service:012\]:  key: 3880201040
\[07:40:31\]\[VV\]\[api.service:012\]:  state: ‘2026-03-23 07:40:29’
\[07:40:31\]\[VV\]\[api.service:012\]:  missing_state: NO
\[07:40:31\]\[VV\]\[api.service:012\]: }
\[07:40:55\]\[VV\]\[api.service:019\]: on_ping_request: {}
\[07:40:55\]\[VV\]\[api.service:012\]: send_message ping_response: PingResponse {}
\[07:41:30\]\[VV\]\[app:515\]: logger loop enabled from ISR
\[07:41:30\]\[VV\]\[CC1101:242\]\[radio_recv\]: Restarting RX
\[07:41:30\]\[VV\]\[component:301\]: logger loop disabled
\[07:41:30\]\[VV\]\[app:515\]: logger loop enabled from ISR
\[07:41:30\]\[D\]\[packet:097\]: Have data from radio (8 bytes)
\[07:41:30\]\[D\]\[wmbusmeters:351\]: raw packet “44BA8F59321A200A”
\[07:41:30\]\[V\]\[packet:073\]: expected_size: 8
\[07:41:30\]\[V\]\[wmbusmeters:4841\]: (wmbus) not enough bytes! expected at least 12 but got (8)!
\[07:41:30\]\[V\]\[packet:073\]\[radio_recv\]: expected_size: 8
\[07:41:30\]\[V\]\[wmbus:099\]\[radio_recv\]: Queue items: 1
\[07:41:30\]\[V\]\[wmbus:101\]\[radio_recv\]: Queue send success
\[07:41:30\]\[VV\]\[component:301\]: logger loop disabled
\[07:41:35\]\[VV\]\[api.service:019\]: on_ping_request: {}
\[07:41:35\]\[VV\]\[api.service:012\]: send_message ping_response: PingResponse {}
\[07:42:15\]\[VV\]\[api.service:019\]: on_ping_request: {}
\[07:42:15\]\[VV\]\[api.service:012\]: send_message ping_response: PingResponse {}
\[07:42:30\]\[VV\]\[app:515\]: logger loop enabled from ISR
\[07:42:30\]\[VV\]\[CC1101:242\]\[radio_recv\]: Restarting RX
\[07:42:30\]\[VV\]\[component:301\]: logger loop disabled
\[07:42:36\]\[VV\]\[app:515\]: logger loop enabled from ISR
\[07:42:36\]\[D\]\[packet:097\]: Have data from radio (8 bytes)
\[07:42:36\]\[D\]\[wmbusmeters:351\]: raw packet “9F010C0A08F86331”
\[07:42:36\]\[V\]\[packet:073\]: expected_size: 8
\[07:42:36\]\[V\]\[wmbusmeters:4841\]: (wmbus) not enough bytes! expected at least 12 but got (8)!
\[07:42:36\]\[V\]\[packet:073\]\[radio_recv\]: expected_size: 8
\[07:42:36\]\[V\]\[wmbus:099\]\[radio_recv\]: Queue items: 1
\[07:42:36\]\[V\]\[wmbus:101\]\[radio_recv\]: Queue send success
\[07:42:36\]\[VV\]\[component:301\]: logger loop disabled
\[07:42:55\]\[VV\]\[api.service:019\]: on_ping_request: {}
\[07:42:55\]\[VV\]\[api.service:012\]: send_message ping_response: PingResponse {}
\[07:43:35\]\[VV\]\[api.service:019\]: on_ping_request: {}
\[07:43:35\]\[VV\]\[api.service:012\]: send_message ping_response: PingResponse {}
\[07:43:36\]\[VV\]\[app:515\]: logger loop enabled from ISR
\[07:43:36\]\[VV\]\[CC1101:242\]\[radio_recv\]: Restarting RX
\[07:43:36\]\[VV\]\[component:301\]: logger loop disabled
\[07:43:39\]\[VV\]\[app:515\]: logger loop enabled from ISR
\[07:43:39\]\[D\]\[packet:097\]: Have data from radio (191 bytes)
\[07:43:39\]\[D\]\[wmbusmeters:351\]: raw packet “6B271C58D59A2CB39364D58E599593666A714E6A63596696B1969A8CE369C9AA74A53A4EB1397269A6634CD39A3968E6C9AB254F4D313B14D6C9C35C9693A62CEF0EB1A359D16C59C9AC9A96967272664EC4E956D1AB31C8B2F4D0E64E7255A6D0E5B4B262F22D668E3729A33657344E35998EC953D3467136CD344D64D94CB72395C6B195A8CB6656692D9A4B6B239669A95C98E96594E8D95A9D2935A6966B19AC5AC70E696D1A3939969714F1C8E58E67166CC8DD2C8E9974999D34A565”
\[07:43:39\]\[V\]\[packet:073\]: expected_size: 191
\[07:43:39\]\[D\]\[wmbusmeters:351\]: (wmbus) trimming frame A “6B271C58D59A2CB39364D58E599593666A714E6A63596696B1969A8CE369C9AA74A53A4EB1397269A6634CD39A3968E6C9AB254F4D313B14D6C9C35C9693A62CEF0EB1A359D16C59C9AC9A96967272664EC4E956D1AB31C8B2F4D0E64E7255A6D0E5B4B262F22D668E3729A33657344E35998EC953D3467136CD344D64D94CB72395C6B195A8CB6656692D9A4B6B239669A95C98E96594E8D95A9D2935A6966B19AC5AC70E696D1A3939969714F1C8E58E67166CC8DD2C8E9974999D34A565”
\[07:43:39\]\[V\]\[wmbusmeters:4858\]: (wmbus) ff a dll crc first (calculated def1) did not match (expected d58e) for bytes 0-10!
\[07:43:39\]\[V\]\[packet:073\]\[radio_recv\]: expected_size: 191
\[07:43:39\]\[V\]\[wmbus:099\]\[radio_recv\]: Queue items: 1
\[07:43:39\]\[V\]\[wmbus:101\]\[radio_recv\]: Queue send success
\[07:43:39\]\[V\]\[packet:073\]\[radio_recv\]: expected_size: 8
\[07:43:39\]\[V\]\[wmbus:099\]\[radio_recv\]: Queue items: 2
\[07:43:39\]\[V\]\[wmbus:101\]\[radio_recv\]: Queue send success
\[07:43:39\]\[V\]\[packet:073\]\[radio_recv\]: expected_size: 8
\[07:43:39\]\[V\]\[wmbus:099\]\[radio_recv\]: Queue items: 3
\[07:43:39\]\[V\]\[wmbus:101\]\[radio_recv\]: Queue send success

Ciekawostka:

dodanie entity_category: “diagnostic” do wczesniej utworzonych sensorów (RSSI), nie “przenosi” ich na grafice HA do pola diagnostic…

Odnośnie ciekawostki usuń urządzenie z Integracji i dodaj ponownie.

Jeśli dysponujesz SX1276, to proponuję przejść na Komponent IoTLabs-pl wM-Bus do ESPHome

EDIT:
A tak swoją drogą - wiesz, że nie masz wcięć w tym swoim YAML?

W dokumentacji masz tak:

A u ciebie bez wycięć, wszystko jedno pod drugim:


Chyba, że tak nieskutecznie wkleiłeś ten kod tu na forum.

zgadza się, nieskutecznie.

A poprawisz? (logi swoją drogą też są źle wklejone - jako cytowanie, a nie jako kod…)