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

Pobrałem Twój kod, zmieniłem tylko w miejscach dotyczących kluczy i skompilował się bez błędów w VSC. Jeśli kompilujesz bezpośrednio w ESPHOME to wcześniej może wyczyść źródła kompilacji.
Trzy kropeczki na urządzeniu w ESPHOMe → Clean Build Files:

================================================================ [SUCCESS] Took 239.99 seconds ================================================================
INFO Build Info: config_hash=0x63105bcf build_time_str=2026-02-07 13:35:36 +0100
INFO Successfully compiled program.

No przeciez napisalem ze moj kod sie kompiluje i działa bez problemow tylko ze sa restarty losowe. Natomiast nie kompiluje sie z twoim konfigiem

Z tym sie nie kompiluje:

external_components:
  - source: github://SzczepanLeon/esphome-components@f2c423647947ff0bddc4d6ad472c3e9a5f140cba
  # - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
    components:
      - wmbus_radio
      - wmbus_common
      - socket_transmitter

OK, przepraszam nie doczytałem.
Ale zauważ że Ty masz trochę więcej, ja nie używam wewnątrz ESP modułu “wmbus_meter”, dlatego miałeś błąd w kompilacji.
Więc u Ciebie powinno to wyglądać tak:

external_components:
  - source: github://SzczepanLeon/esphome-components@f2c423647947ff0bddc4d6ad472c3e9a5f140cba
  # - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
    components:
      - wmbus_radio
      - wmbus_common
      - wmbus_meter

Co do restartów to chyba za dużo wymagasz od ESP. I dlatego ja przeszedłem na komunikację jaką opisałem powyżej, czyli z dodatkiem “Wmbusmeters”

Ale przecież kilka wersji Esphome wstecz wszystko śmigało jak talala.

To pozostaje Ci powrót do wersji ESPHOME na której wszystko działało i nie aktualizowanie tego urządzenia.

1 polubienie

U mnie najnowsze ESPhome a fragment kodu:

external_components:
  - source: github://SzczepanLeon/esphome-components@5.0.4
    components:
      - wmbus_common
      - wmbus_radio
      - wmbus_meter

No ale napisz cos wiecej
Działa? - nie działa?
Restartuje?

Nie pytaj - skompiluj i zobacz co się stanie :slight_smile:

Jak narazie 1,5 godz. dziala :grinning:
Na najnowszej wersji @szczepana zasieg -96dbm, na wersji ktora podal kolega wyzej -69 dbm. Czary?

U mnie przed skompilowaniem tej wersji nawet radio nie dawało żadnych odczytów. Po kompilacji zaczęło trybić to już nie doszukiwałem się przyczyn.

Jak narazie bez komentarza :slight_smile:

Dzień Dobry.

Walczę, ale na razie przegrywam, może ktoś pomoże.

Mam skonfigurowany projekt w wersji 5 wraz z SX1262, bardzo ładnie odczytuje telegramy nawet widzę obce z RSSI -101 dBm w konsoli ESPHome, ale wartości dotyczące moich skonfigurowanych liczników nie widzę w HA.

Otóż w ESPHome mam skonfigurowaną sekcję “api” i w HA wewnątrz integracji ESPHome widzę moje sensory (liczniki), ale nie mają wartości, wartość to “unknown” jak na zdjęciu poniżej:

Dodałem więc MQTT i widzę w brokerze MQTT przychodzące wiadomości jak np. taka (przykład innego licznika niż na zdjęciu powyżej)

Message 135 received on wmbus-test/telegram at 14:59:
{
    "_": "telegram",
    "media": "water",
    "meter": "apatorna1",
    "name": "apatorna1-04913581",
    "id": "04913581",
    "total_m3": 1507.833,
    "timestamp": "2026-02-10T13:59:00Z",
    "device": "TEST_WMBus_PoE",
    "rssi_dbm": -82
}

lub surowe (zgodnie z konfiguracją w “on_frame”)

Message 136 received on wmbus-test/telegram_rtl at 14:59:

6e4401066512250405077a8f006085ce01a192916b561731b542d0566ba1f94f2aaee09673409dfb87e63b2e1a526e2fd8dd3281653c4197bc5625e7866e6c132462ea8e3b662f5b8593f59f814da1e27a12fc4b68c43fef29d76deeb90f8bce85c1f53826f62a300bc4b489a2fc4c

QoS: 0 - Retain: false

ale w HA nie widzę encji “apatorna1-04913581”, zapewne rozchodzi się o brak discovery msg. Niemiej nie chcę jej, bo korzystałem przez długi czas w v4 z CC101 z danymi przesyłanymi przez API i tam mam cała historię i zbudowane raporty na ich bazie.

Podsumowując - czy v5 jak w poprzednich wersjach wmbus-component przesyła wartości poprzez sekcję API? Oraz jak czy ESPHome generuje MQTT discovery msg?

Generalnie w v5 nie mam danych w HA :frowning: Mój kod to (ograniczony do 1 licznika):

esphome:
  name: poe-esphome-lilygo-eth2
  friendly_name: TEST_WMBus_PoE
  platformio_options:
    upload_speed: 921600

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
    components:
      - wmbus_radio
      - wmbus_common
      - socket_transmitter
      - wmbus_meter
  #  components: [wmbus_common, wmbus_radio, socket_transmitter, wmbus_meter]

esp32:
  board: esp32dev
  variant: esp32
  flash_size: 16MB
  framework:
    type: esp-idf
    sdkconfig_options:
      #CONFIG_ESP32_DEFAULT_CPU_FREQ_240: y
      CONFIG_ESP32_VDD_SDIO_CONTROL_FORCE_3_3V: y  


logger:
  id: component_logger
  level:  VERBOSE #DEBUG #INFO #
  baud_rate: 115200

ethernet:
  type: RTL8201
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  # clk_mode: GPIO0_IN
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  power_pin: GPIO12
  phy_addr: 0
  manual_ip:
    # Set this to the IP of the ESP
    static_ip: 192.168.15.25
    # Set this to the IP address of the router. Often ends with .1
    gateway: 192.168.15.1
    # The subnet of the network. 255.255.255.0 works for most home networks.
    subnet: 255.255.255.0

api:
#  encryption:
#    key: "...key..."

web_server:
  # version: 3 

ota:
  - platform: esphome
    password: !secret passwd_esphome

# psram:
#   mode: quad
#   speed: 80MHz

time:
   platform: homeassistant
   id: homeassistant_time

spi:
  clk_pin: 
    number: GPIO33
  #  ignore_strapping_warning: true
  mosi_pin: GPIO32
  miso_pin: GPIO35

mqtt:
  broker: !secret mqtt_broker
  port: 1883
  username: !secret mqtt_user
  password: !secret mqtt_password


wmbus_radio:
  radio_type: SX1262
  cs_pin: GPIO04
  reset_pin: GPIO02
  irq_pin: GPIO05
  busy_pin: GPIO15           # Optional but recommended for proper timing
  rx_gain: BOOSTED           # BOOSTED (default) or POWER_SAVING
  rf_switch: false           # Set to true if DIO2 controls RF switch
  has_tcxo: true             # By default, DIO3 controls an external TCXO
  on_frame:
    - mark_as_handled: true
      then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d)"
            args:
              - frame->rssi()
              - frame->as_hex().c_str()
              - frame->data().size()
        - mqtt.publish:
            topic: wmbus-test/telegram_rtl
            payload: !lambda return frame->as_hex();
        - mqtt.publish:
            topic: wmbusmeters/telegram_rtl_NEW
            payload: !lambda return frame->as_rtlwmbus();

wmbus_meter:
  - id: ZW_MAIN_NEW
    meter_id: 0x04913581
    type: apatorna1
    key: "00000000000000000000000000000000"
    mode: 
     - T1
     - C1
    on_telegram:
      then:
        - wmbus_meter.send_telegram_with_mqtt:
            topic: wmbus-test/telegram

sensor:
 #ZW MAIN
  - platform: wmbus_meter
    parent_id: ZW_MAIN_NEW
    name: "Adapr NA 1 total RSSI NEW"
    field: "rssi"
    accuracy_decimals: 0
    unit_of_measurement: "dBm"
    device_class: "signal_strength"
    state_class: "measurement"
    entity_category: "diagnostic"

  - platform: wmbus_meter
    parent_id: ZW_MAIN_NEW  
    name: "Adapr NA 1 total NEW"
    field: "total"
    accuracy_decimals: 3
    unit_of_measurement: "m³"
    device_class: "water"
    state_class: "total_increasing"
    icon: "mdi:water"
    # filters:
    #   - offset: 0.0

Przy MQTT musisz sam utworzyć wpis do pliku configurations.yaml HA aby Ci się encja utworzyła.

Zamień @main na @5.0.4 w external components

Dzięki, czyli albo sam przygotowuję MQTT discovery msg albo samemu konfiguruję encje w głównym pliku HA. Myślałem, że chociaż discovery msg same się wyślą…

Ale zostawmy powyższe, ogólnie przeszedłem z CC1101 → SC1262 i nie chcę korzystać z MQTT i tworzyć nowe encje (ewentualnie mapować do starych encji), wolę skorzystać z API (czyli wpisu “api:” wewnątrz kod ESPHome) i tutaj coś nie działa jak w poprzedniej wersji v4.

Tj widzę utworzone encje zgodnie z kodem w ESPHome, ale nie mają wartości. W portalu web też nie mają wartości:

Ale jak pokazałem w poprzednim komentarzu i dodatkowo poniżej wartości przesyłane przez MQTT są rozszyfrowane do JSONa stąd podejrzewam jakiś bug w komponencie wmbus (lub ja coś źle skonfigurowałem)

Z mojego doświadczenia nie jest tak z ESPHome. Wiem bo niedawno zmieniałem niektóre urządzenia, z ESPHome na pokładzie, dopisując komponent (sekcję YAML w ESPHome) i encje powstały automagicznie w HA dla tych urządzeń. Tyle, że w sekcji integracji MQTT a nie ESPHome.

@Mariusz_Woszczyński dzięki, ale ta wersja nie ma SX1262

Failed config

wmbus_radio: [source /config/esphome/test-poe.yaml:126]
  - 
    Unknown value 'SX1262', did you mean 'SX1276'?.
    radio_type: SX1262
    cs_pin: GPIO04
    reset_pin: GPIO02
    irq_pin: GPIO05
    
    [busy_pin] is an invalid option for [wmbus_radio]. Did you mean [cs_pin]?
    busy_pin: GPIO15
    
    [rx_gain] is an invalid option for [wmbus_radio]. Please check the indentation.
    rx_gain: BOOSTED
    
    [rf_switch] is an invalid option for [wmbus_radio]. Please check the indentation.
    rf_switch: False
    
    [has_tcxo] is an invalid option for [wmbus_radio]. Please check the indentation.
    has_tcxo: True

A sory, nie zwróciłem uwagi, że na innym radiu jedziesz. Wiem tylko że jest jakiś problem z @main, jeśli chodzi o moc sygnału. Na tym samym sprzęcie potrafi być różnica 20dbi, przy main i starszej wersji

OK, jeśli chodzi o moc to SX1262 daje radę:

-101 dBm to jest 7.94 × 10⁻¹⁴ W lub 79 femtowatów (fW), mega małe moce. Wg noty do -120 dBm niby potrafi odczytać.
CC1101 u mnie max to było -90 dBm ( 1pW = 10⁻¹² W) w stosunku do SX1262 to jest około 12.6 razy lepsza czułość w moim przypadku.

A wracają do mojego problemu to jedyne co mi przychodzi do głowy, że być może ramki C1 nie są do końca poprawnie obsłużone w komponencie.

Panowie. Już drugą dobę na szczepan@5.0.4 działa nieprzerwanie. Odczyty regularne. Zasięg OK. Dzisiaj pojawiła się aktualizacja EspHome i aż boję się aktualizować. Co wy na to?

1 polubienie