Komponent wM-Bus do ESPHome radugeo74/esphome-sx1262 - wątek ogólny

Dobrze rozumiem, że działa Ci płytka z sx1262 na pokładzie, która niby nie jest wpierana przez wersję v5?

CC1101 bedzie w 2026.
ale co do SX1262 to nie mam planow (gdzies tam lata w necie jakies mini wsparcie)

Jeśli chodzi o SX1262 - na githubie jest działający komponent, ktoś zrobił forka i dostosował:
radugeo74/esphome-sx1262

Na Heltec Lora v3 działa od 24h całkiem dobrze.

poniżej YAML który u mnie działa

esphome:
  name: esphome-wmbus
  friendly_name: esphome-wmbus


external_components:
  - source: github://radugeo74/esphome-sx1262@master


esp32:
  variant: esp32s3
  flash_size: 8MB
  cpu_frequency: 240MHZ
  framework:
    type: esp-idf

psram:
  mode: quad
  

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

captive_portal:


logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200


time:
  - platform: homeassistant


web_server:
  version: 3 

spi:
  clk_pin:
    number: GPIO9
  mosi_pin: GPIO10
  miso_pin:
    number: GPIO11

debug:
  update_interval: 5s

wmbus_radio:
  radio_type: SX1262
  cs_pin: GPIO8
  reset_pin: GPIO12
  irq_pin: GPIO14
  on_frame:
    - then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d) %s"
            args: [ frame->rssi(), frame->as_hex().c_str(), frame->data().size(), toString(frame->link_mode()) ]

wmbus_common:
    drivers: all


wmbus_meter:
  - id: water_meter
    meter_id: 0x00
    type: apator162
    key: "00000000000000000000000000000000"
    
sensor:
  - platform: wmbus_meter
    parent_id: water_meter
    field: total_m3
    device_class: water
    name: Licznik wody
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"
  - platform: wifi_signal
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy
    source_id: wifi_signal_db
    name: "WiFi Signal %"
    filters:
      - lambda: return {min(max(2 * (x + 100.0), 0.0), 100.0)};
    unit_of_measurement: "%"
    entity_category: "diagnostic"

  - platform: internal_temperature
    name: "Internal Temperature"

  - platform: debug
    free:
      name: "Heap Free"
    loop_time:
      name: "Loop Time"

  - platform: uptime
    type: seconds
    name: Uptime

text_sensor:
  - platform: debug
    device:
      name: "Device Info"
    reset_reason:
      name: "Reset Reason"

Możesz podesłać swojego yaml’a.
U mnie ten co podałeś nie działa niestety z SX1262.
Z jakiej odległości do licznika pobiera Ci dane?

Czy to pytanie do mnie? Ok. 7-10 m w linii prostej przez strop i ściany

Czy ktoś jeszcze może potwierdzić działanie tego komponentu.

Witamy na forum.

Którego? Obecnie jest V5 od @_Szczepan, a w tym temacie jest mowa o sprzęcie, który nie jest (jeszcze) w tym komponencie obsługiwany czyli SX1262.
Chyba, że chodzi ci o ten wpis kolegi @pio-ter

Czyli te repozytorium:

Chodzi mi o współpracę komponentu V5 z sx1262. Próbowałem to uruchomić na esp32 i DX-LR30-900 m22sb lecz jak narazie bez powodzenia.

Od 1.02.2026 została dodana obsługa tegoSXa.

1 polubienie

Traz próbuję z komponęcie Szczepana lecz dalej nie działa. Kompiluje się bez błędow ale nic nie odbiera. Może ktoś mądrzejszy coś doradzi.

yaml

esphome:
  name: esp32-sx1262
  friendly_name: esp32_sx1262

esp32:
  board: az-delivery-devkit-v4 
  framework:
    type: esp-idf

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

# Enable logging
logger:
  level: DEBUG  # INFO
  # logs:
  #   wmbus: ERROR
  #   wmbusmeters: ERROR

# Enable Home Assistant API
api:
  encryption:
    key: "S+o8zGoFEnhLZTA______824YJlkvvkf/Mjuo="

ota:
  - platform: esphome
    password: "c221be9538_______1a6aa5e99dfbc"

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

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

captive_portal:

web_server:
  version: 3

time:
  - platform: homeassistant

# DX-LR30-900M22S
spi:
  mosi_pin: GPIO23  # MOSI I SPI slave input
  clk_pin:  GPIO18  # SCK I SPI clock
  miso_pin: GPIO19  # MISO O SPI slave output

wmbus_radio:
  radio_type: Sx1262
  cs_pin:
    number: GPIO5   # NSS I SPI Slave Select
    ignore_strapping_warning: true
  reset_pin: GPIO16 # NRESET I Reset signal, active low
  irq_pin: GPIO17   # DIO1 I/O Multi-purpose digital IO   

wmbus_meter:
    - id: water
      meter_id: !secret watermeterId
      type: izar


sensor:
  - platform: "wmbus_meter"
    name: "Wskazanie bieżące."
    parent_id: "water"
    field: "total_m3"
    device_class: "water" 
    # accuracy_decimals: 3
    state_class: "total_increasing"
    unit_of_measurement: "m³"
    icon: "mdi:water"

logi

INFO ESPHome 2026.1.3
INFO Reading configuration /config/esphome/esp32-sx1262.yaml...
INFO Detected timezone 'Europe/Warsaw'
INFO Starting log output from 192.168.1.22 using esphome API
INFO Successfully resolved esp32-sx1262 @ 192.168.1.22 in 0.000s
INFO Successfully connected to esp32-sx1262 @ 192.168.1.22 in 0.324s
INFO Successful handshake with esp32-sx1262 @ 192.168.1.22 in 0.152s
[19:56:53.024][I][app:206]: ESPHome version 2026.1.3 compiled on 2026-02-05 16:46:52 +0100
[19:56:53.037][I][app:213]: ESP32 Chip: ESP32 r3.1, 2 core(s)
[19:56:53.037][W][app:222]: Set minimum_chip_revision: "3.1" to reduce binary size
[19:56:53.052][C][logger:316]: Logger:
[19:56:53.052][C][logger:316]:   Max Level: DEBUG
[19:56:53.052][C][logger:316]:   Initial Level: DEBUG
[19:56:53.053][C][logger:322]:   Log Baud Rate: 115200
[19:56:53.053][C][logger:322]:   Hardware UART: UART0
[19:56:53.053][C][logger:332]:   Task Log Buffer Size: 768 bytes
[19:56:53.073][C][spi:066]: SPI bus:
[19:56:53.073][C][spi:152]:   CLK Pin: GPIO18
[19:56:53.074][C][spi:152]:   SDI Pin: GPIO19
[19:56:53.089][C][spi:152]:   SDO Pin: GPIO23
[19:56:53.089][C][spi:074]:   Using HW SPI: SPI2_HOST
[19:56:53.090][C][homeassistant.time:010]: Home Assistant Time
[19:56:53.119][C][time:028]: Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[19:56:53.119][C][wmbus.transceiver:145]: Transceiver: SX1262
[19:56:53.120][C][wmbus.transceiver:152]:   Reset Pin: GPIO16
[19:56:53.139][C][wmbus.transceiver:152]:   IRQ Pin: GPIO17
[19:56:53.140][C][wmbus.transceiver:151]:   RX Gain: Boosted
[19:56:53.140][C][wmbus.transceiver:156]:   Sync Mode: Normal
[19:56:53.153][C][wmbus_meter:028]: wM-Bus Meter:
[19:56:53.154][C][wmbus_meter:029]:   ID: 0x414fb71a
[19:56:53.154][C][wmbus_meter:030]:   Driver: izar
[19:56:53.167][C][wmbus_meter:031]:   Key: not-encrypted
[19:56:53.167][C][wmbus_meter.sensor:014]: wM-Bus Sensor:
[19:56:53.167][C][wmbus_meter.sensor:015]:   Parent meter ID: 0x41____1a
[19:56:53.175][C][wmbus_meter.sensor:017]:   Field: 'total_m3'
[19:56:53.175][C][wmbus_meter.sensor:016]:   Name: 'Wskazanie bieżące.'
[19:56:53.175][C][wmbus_meter.sensor:016]:     State Class: 'total_increasing'
[19:56:53.175][C][wmbus_meter.sensor:016]:     Unit of Measurement: 'm³'
[19:56:53.175][C][wmbus_meter.sensor:016]:     Accuracy Decimals: 0
[19:56:53.176][C][wmbus_meter.sensor:026]:     Device Class: 'water'
[19:56:53.191][C][wmbus_meter.sensor:030]:     Icon: 'mdi:water'
[19:56:53.192][C][wmbus_common:013]: wM-Bus Component v5.1.7-1.19.0-fe1b1e0:
[19:56:53.192][C][wmbus_common:015]:   Loaded drivers:
[19:56:53.204][C][wmbus_common:017]:    izar
[19:56:53.205][C][captive_portal:128]: Captive Portal:
[19:56:53.205][C][wifi:1304]: WiFi:
[19:56:53.205][C][wifi:1304]:   Local MAC: 20:__:__:__:1D:70
[19:56:53.205][C][wifi:1304]:   Connected: YES
[19:56:53.229][C][wifi:1037]:   IP Address: 192.168.1.22
[19:56:53.229][C][wifi:1048]:   SSID: 'Orange_Swiatlowod_029A'[redacted]
[19:56:53.229][C][wifi:1048]:   BSSID: F8:__:__:__:__:9A[redacted]
[19:56:53.229][C][wifi:1048]:   Hostname: 'esp32-sx1262'
[19:56:53.229][C][wifi:1048]:   Signal strength: -64 dB ▂▄▆█
[19:56:53.229][C][wifi:1048]:   Channel: 1
[19:56:53.229][C][wifi:1048]:   Subnet: 255.255.255.0
[19:56:53.229][C][wifi:1048]:   Gateway: 192.168.1.1
[19:56:53.229][C][wifi:1048]:   DNS1: 192.168.1.1
[19:56:53.229][C][wifi:1048]:   DNS2: 0.0.0.0
[19:56:53.231][C][web_server:416]: Web Server:
[19:56:53.231][C][web_server:416]:   Address: esp32-sx1262.local:80
[19:56:53.242][C][esphome.ota:075]: Over-The-Air updates:
[19:56:53.242][C][esphome.ota:075]:   Address: esp32-sx1262.local:3232
[19:56:53.242][C][esphome.ota:075]:   Version: 2
[19:56:53.243][C][esphome.ota:082]:   Password configured
[19:56:53.243][C][safe_mode:021]: Safe Mode:
[19:56:53.243][C][safe_mode:021]:   Successful after: 60s
[19:56:53.243][C][safe_mode:021]:   Invoke after: 10 attempts
[19:56:53.243][C][safe_mode:021]:   Duration: 300s
[19:56:53.275][C][safe_mode:038]:   Bootloader rollback: support unknown
[19:56:53.276][C][web_server.ota:231]: Web Server OTA
[19:56:53.276][C][api:221]: Server:
[19:56:53.276][C][api:221]:   Address: esp32-sx1262.local:6053
[19:56:53.276][C][api:221]:   Listen backlog: 4
[19:56:53.276][C][api:221]:   Max connections: 8
[19:56:53.348][C][api:228]:   Noise encryption: YES
[19:56:53.348][C][mdns:177]: mDNS:
[19:56:53.348][C][mdns:177]:   Hostname: esp32-sx1262
[19:57:26.692][I][safe_mode:066]: Boot seems successful; resetting boot loop counter
[19:57:52.365][D][esp32.preferences:155]: Writing 1 items: 0 cached, 1 written, 0 failed
[20:02:17.062][D][wifi:2112]: Roam scan (-73 dBm, attempt 1/3)
[20:06:31.112][D][wifi:2112]: Roam scan (-74 dBm, attempt 2/3)
[20:11:31.107][D][wifi:2112]: Roam scan (-67 dBm, attempt 3/3)

I dalej co jakiś czas powtarza się ostatnia linia.

Sprawdź sobie piny i zasilanie anteny. Czasem trzeba dodać do sekcji wmbus_radiotaki element:

wmbus_radio:
  # ... reszta pinów ...
  dio2_rf_switch: true  # <--- To często rozwiązuje problem "braku odbioru"

Piny mam podłączone w ten sposób.

# DX-LR30-900M22S
spi:
  mosi_pin: GPIO23  # MOSI I SPI slave input
  clk_pin:  GPIO18  # SCK I SPI clock
  miso_pin: GPIO19  # MISO O SPI slave output

wmbus_radio:
  radio_type: Sx1262
  cs_pin:
    number: GPIO5   # NSS I SPI Slave Select
    ignore_strapping_warning: true
  reset_pin: GPIO16 # NRESET I Reset signal, active low
  irq_pin: GPIO17   # DIO1 I/O Multi-purpose digital IO   

Czyżby to było niepoprawne podłączenie?

Spróbuj tak :

wmbus_radio:
  radio_type: SX1262
  cs_pin: GPIO5
  reset_pin: GPIO16
  irq_pin: GPIO17
  busy_pin: GPIOXX      # <-- obowiązkowo, faktyczny pin BUSY z modułu
  # rf_switch: true     # <-- jeśli moduł używa DIO2 jako RF switch

2 polubienia

Właśnie miałem o tym napisać

wmbus_radio:
  radio_type: Sx1262
  cs_pin: GPIO5      # Pin 19 (NSS)
  reset_pin: GPIO16  #  Pin 15 (RESET)
  irq_pin: GPIO17    # Pin 13 (DIO1)
  busy_pin: GPIO21   # <--- POŁĄCZ FIZYCZNIE PIN 14 Z GPIO21
  dio2_rf_switch: true # <--- obsługuje Pin 8
2 polubienia

Widzę, że nikt z nas nie sprawdził dokładnie dokumentacji komponentu V5

A dokładniej? Bo nie zabardzo rozumiem.

Na githubie na stronie głównwj jest adnotacja dotycząca połączenia modułu sx1262 .

Nadal mam cisze lecz na dziś wystarczy tej walki.

Hmm troszkę pokory sugeruję (ale to IMHO). Koledzy zasugerowali rozwiązanie, a Ty piszesz w formie “zbiorowej odpowiedzialności”, pomijam fakt, że to Ty przyszedłeś tutaj zapytać.

1 polubienie

Potwierdzam SX1262 działa, i to jak szalony. Ale nie czyta licznika energii, rozumie że adnotacja " * Add support for SX1262 (with limited frame length)" ma na to wpływ.