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

Na github’ie pojawiła się wersja 5.0.0.

Wielkie podziękowania należą się @kubasa za przepisanie całości komponentu i tym samym zbliżenia się do pełnej kompatybilności z filozofią ESPHome. Największe zmiany to support dla SX1276, przejście na esp-idf.

Dla korzystających z poprzednich wersji (nie dotyczy UltimateReadera) mały minus :frowning: brak wsparcia CC1101 (chętni mogą dopisać do repo).

Tak jak zawsze przy zmianie wersji :wink: następuje zmiana formatu YAMLA. Tym razem jest to rewolucja (większa niż przejście z v3 na v4). Zachęcam do umieszczania swoich konfiguracji i rozbudowywania README.

Miłego korzystania i pamiętajcie aby minusy nie przesłoniły wam plusów :slight_smile:

Wątek o starej wersji (CC1101):

3 polubienia

Jaki jest powód odejścia od cc1101?

Rezygnacja z radio bibliotek na rzecz wlasnego kodu.
Poszukiwany jest ochotnik napiszacy czesc kodu fla CC1101.

Hej!

[0;36m[D][wmbus:082][1;31m[radio_recv][0;36m: Radio interrupt timeout[0m

Jedynie takie coś mam w logach. Czy to oznacza brak radia, czy brak sygnałów? Mam płytkę LILYGO LoRa32 V2.1_1.6, na której niby miał być SX1276, ale mogła mi się wylosować podróba. Kompilowałem na ESPHome 2025.2.2, jeśli to ma znaczenie.

Kod ESP
esphome:
  name: lilygo_lora1
  friendly_name: TTGO LoRa32, woda
  
esp32:
  board: ttgo-lora32-v21
  framework:
    type: esp-idf
    version: latest
  
external_components:
  - source: github://SzczepanLeon/esphome-components@main
  
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.18.62
  
logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200
  
api:

ota:
  - platform: esphome
    password: "zuzanna!"

web_server:
  version: 3 

time:
  - platform: homeassistant

spi:
  clk_pin:
    number: GPIO5
    ignore_strapping_warning: true
  mosi_pin: GPIO27
  miso_pin: GPIO19
  
mqtt:
  broker: 192.168.17.8
  port: 1883
  username: lilygo_mqtt_wmbus
  password: "zuzanna!"
  
wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO18
  reset_pin: GPIO23
  irq_pin: GPIO26
  on_frame:
    - then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d)"
            args: [frame->rssi(), frame->as_hex().c_str(), frame->data().size()]
    - mark_as_handled: True
      then:
        - mqtt.publish:
            topic: wmbus/telegram_rtl
            payload: !lambda return frame->as_rtlwmbus();
            
wmbus_meter:
  - id: water_meter
    meter_id: 0x07000000
    type: apator162
    key: "00000000000000000000000000000000"
    on_telegram:
      then:
        - wmbus_meter.send_telegram_with_mqtt:
            topic: wmbus/data
    
sensor:
  - platform: wmbus_meter
    parent_id: water_meter
    field: total_m3
    device_class: water
    name: Zużycie wody, ESP32
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"
Zdjęcie

Na pewno masz cos wiecej.
Uaktualnij ESPHome - na 2025.5.0 działa, inne nie sprawdzałem.

Ten błąd znaczy tyle, że na pinie zadeklarowanym jako IRQ nie pojawia się sygnał. Prawie na pewno znaczy to, że pinologia jest zła. Trzeba spojrzeć w schemat i zapiąć się na DIO1 SXa. Teraz jest pewnie zapięte na DIO0.

1 polubienie

Jeśli to jest płyta T3_V1.6.1 (LilyGo-LoRa-Series/schematic/T3_V1.6.1.pdf at master · Xinyuan-LilyGO/LilyGo-LoRa-Series · GitHub), to DIO1 jest tutaj podpięte do GPIO33

1 polubienie

maciej1 ma chyba GPIO26

26 wyglada na OK

A, ok. W wątku odbiorczym lata pętla, która się zawiesza na minutę i jeżeli w tym czasie nie odbierze żadnych danych, to wyświetla komunikat i się znowu zawiesza. A jak odbierze cokolwiek, to powinno tego komunikatu nie być. Gdyby nie było w logu ani komunikatu o odbiorze, ani o timeoucie, to znaczy że coś się fest popsuło.

Uaktualniłem, pełen log na ten moment wygląda tak:

Log
INFO ESPHome 2025.5.0
INFO Reading configuration /config/esphome/woda.yaml...
WARNING 'lilygo_lora1': Using the '_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name
INFO Detected timezone 'Europe/Warsaw'
INFO Generating C++ source...
INFO Updating https://github.com/espressif/esp-protocols.git@mdns-v1.8.2
INFO Compiling app...
Processing lilygo_lora1 (board: ttgo-lora32-v21; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32.git#51.03.07)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.50106.0 (5.1.6) 
 - tool-cmake @ 3.21.3 
 - tool-esptoolpy @ 4.8.1 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.7.1 
 - tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 
 - tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 12.2.0+20230208
Reading CMake configuration...
Dependency Graph
|-- ArduinoJson @ 6.18.5
Compiling .pioenvs/lilygo_lora1/src/main.cpp.o
Linking .pioenvs/lilygo_lora1/firmware.elf
RAM:   [=         ]  11.8% (used 38552 bytes from 327680 bytes)
Flash: [=======   ]  68.0% (used 1248661 bytes from 1835008 bytes)
Building .pioenvs/lilygo_lora1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/lilygo_lora1/firmware.bin"], [".pioenvs/lilygo_lora1/firmware.elf"])
SHA digest in image updated
Wrote 0x142740 bytes to file /data/build/lilygo_lora1/.pioenvs/lilygo_lora1/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/lilygo_lora1/firmware.bin"], [".pioenvs/lilygo_lora1/firmware.elf"])
========================= [SUCCESS] Took 92.64 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.18.62 port 3232...
INFO Connected to 192.168.18.62
INFO Uploading /data/build/lilygo_lora1/.pioenvs/lilygo_lora1/firmware.bin (1255232 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 4.85 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.18.62 using esphome API
INFO Successfully connected to lilygo_lora1 @ 192.168.18.62 in 7.146s
INFO Successful handshake with lilygo_lora1 @ 192.168.18.62 in 0.029s
[22:07:25][I][app:115]: ESPHome version 2025.5.0 compiled on May 25 2025, 22:05:53
[22:07:25][C][wifi:600]: WiFi:
[22:07:25][C][wifi:428]:   Local MAC: 90:15:06:CD:AA:48
[22:07:25][C][wifi:433]:   SSID: [redacted]
[22:07:25][C][wifi:436]:   IP Address: 192.168.18.62
[22:07:25][C][wifi:439]:   BSSID: [redacted]
[22:07:25][C][wifi:441]:   Hostname: 'lilygo_lora1'
[22:07:25][C][wifi:443]:   Signal strength: -50 dB ▂▄▆█
[22:07:25][C][wifi:447]:   Channel: 11
[22:07:25][C][wifi:448]:   Subnet: 255.255.255.0
[22:07:25][C][wifi:449]:   Gateway: 192.168.18.1
[22:07:25][C][wifi:450]:   DNS1: 8.8.8.8
[22:07:25][C][wifi:451]:   DNS2: 1.1.1.1
[22:07:25][C][logger:224]: Logger:
[22:07:25][C][logger:225]:   Max Level: DEBUG
[22:07:25][C][logger:226]:   Initial Level: DEBUG
[22:07:25][C][logger:228]:   Log Baud Rate: 115200
[22:07:25][C][logger:229]:   Hardware UART: UART0
[22:07:25][C][logger:233]:   Task Log Buffer Size: 768
[22:07:25][C][spi:068]: SPI bus:
[22:07:25][C][spi:069]:   CLK Pin: GPIO5
[22:07:25][C][spi:070]:   SDI Pin: GPIO19
[22:07:25][C][spi:071]:   SDO Pin: GPIO27
[22:07:25][C][spi:076]:   Using HW SPI: SPI2_HOST
[22:07:25][C][homeassistant.time:010]: Home Assistant Time:
[22:07:25][C][homeassistant.time:011]:   Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[22:07:25][C][wmbus.transceiver:084]: Transceiver: SX1276
[22:07:25][C][wmbus.transceiver:085]: Reset Pin: GPIO23
[22:07:25][C][wmbus.transceiver:086]: IRQ Pin: GPIO26
[22:07:25][C][wmbus_meter:031]: wM-Bus Meter:
[22:07:25][C][wmbus_meter:032]:   ID: unknown
[22:07:25][C][wmbus_meter:033]:   Driver: apator162
[22:07:25][C][wmbus_meter:034]:   Key: ***
[22:07:25][C][wmbus_meter.base_sensor:024]: wM-Bus Sensor:
[22:07:25][C][wmbus_meter.base_sensor:025]:   Field: total_m3
[22:07:25][C][wmbus_meter.base_sensor:026]:   Parent meter ID: unknown
[22:07:25][C][wmbus_common:015]: wM-Bus Component:
[22:07:25][C][wmbus_common:016]:   Loaded drivers:
[22:07:25][C][wmbus_common:018]:     - apator162
[22:07:25][C][web_server:285]: Web Server:
[22:07:26][C][web_server:286]:   Address: 192.168.18.62:80
[22:07:26][C][mdns:120]: mDNS:
[22:07:26][C][mdns:121]:   Hostname: lilygo_lora1
[22:07:26][C][esphome.ota:073]: Over-The-Air updates:
[22:07:26][C][esphome.ota:074]:   Address: 192.168.18.62:3232
[22:07:26][C][esphome.ota:075]:   Version: 2
[22:07:26][C][esphome.ota:078]:   Password configured
[22:07:26][C][safe_mode:018]: Safe Mode:
[22:07:26][C][safe_mode:019]:   Boot considered successful after 60 seconds
[22:07:26][C][safe_mode:021]:   Invoke after 10 boot attempts
[22:07:26][C][safe_mode:022]:   Remain in safe mode for 300 seconds
[22:07:26][C][api:170]: API Server:
[22:07:26][C][api:171]:   Address: 192.168.18.62:6053
[22:07:26][C][api:178]:   Using noise encryption: NO
[22:07:26][C][mqtt:152]: MQTT:
[22:07:26][C][mqtt:153]:   Server Address: 192.168.17.8:1883 (192.168.17.8)
[22:07:26][C][mqtt:155]:   Username: [redacted]
[22:07:26][C][mqtt:156]:   Client ID: [redacted]
[22:07:26][C][mqtt:157]:   Clean Session: NO
[22:07:26][C][mqtt:159]:   Discovery IP enabled
[22:07:26][C][mqtt:162]:   Discovery prefix: 'homeassistant'
[22:07:26][C][mqtt:163]:   Discovery retain: YES
[22:07:26][C][mqtt:165]:   Topic Prefix: 'lilygo_lora1'
[22:07:26][C][mqtt:167]:   Log Topic: 'lilygo_lora1/debug'
[22:07:26][C][mqtt:170]:   Availability: 'lilygo_lora1/status'
[22:07:26][C][mqtt.sensor:028]: MQTT Sensor 'Zużycie wody, ESP32':
[22:07:26][C][mqtt.sensor:032]:   State Topic: 'lilygo_lora1/sensor/zu__ycie_wody__esp32/state'
[22:08:17][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[22:08:17][D][esp32.preferences:114]: Saving 1 preferences to flash...
[22:08:17][D][esp32.preferences:142]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[22:08:17][D][wmbus:082][radio_recv]: Radio interrupt timeout
[22:09:17][D][wmbus:082][radio_recv]: Radio interrupt timeout
[22:10:17][D][wmbus:082][radio_recv]: Radio interrupt timeout
[22:11:17][D][wmbus:082][radio_recv]: Radio interrupt timeout
[22:12:17][D][wmbus:082][radio_recv]: Radio interrupt timeout
[22:12:18][D][time:046]: Synchronized time: 2025-05-25 22:12:18
[22:12:18][D][time:046]: Synchronized time: 2025-05-25 22:12:18
[22:13:17][D][wmbus:082][radio_recv]: Radio interrupt timeout
[22:14:17][D][wmbus:082][radio_recv]: Radio interrupt timeout

Jedyna lekko dziwna rzecz:

[22:07:25][C][wmbus_meter:031]: wM-Bus Meter:
[22:07:25][C][wmbus_meter:032]:   ID: unknown
[...]
[22:07:25][C][wmbus_meter.base_sensor:024]: wM-Bus Sensor:
[22:07:25][C][wmbus_meter.base_sensor:026]:   Parent meter ID: unknown

ID: unknown, a mam wpisane id oraz meter_id.

Ciekawostka, jak zmieniłem IRQ na GPIO33 zgodnie z sugestią @kubasa to raz pojawił się komunikat:

wmbus:095]e[1;31m[radio_recv]e[0;36m
Cannot calculate payload size

a tych Radio interrupt timeout nie było - totalna cisza i tylko raz wyskoczył “cannot caluculate payload size”. Teraz w weekend licznik Apator wysyła co 30 minut, więc ciężko się patrzy, jutro jeszcze spróbuje z różnymi PINami IRQ.

Uaktualnij komponent np dajac w YAML (masz staroc bez poprawek)

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
1 polubienie

Dziwne to ESPHome, dziś pierwszy raz instalowałem Twój komponent, a pobrało starą wersję. Ten ‘unknown’ się naprawił, ale komunikatu o 23:07 nie złapało.


Edit: działa! :slight_smile: Jednak to musi być GPIO33, poniżej działający config dla tej płytki + log.

Debug config
esphome:
  name: lilygo-lora1
  friendly_name: TTGO LoRa32, woda
  
esp32:
  board: ttgo-lora32-v21
  framework:
    type: esp-idf
    version: latest
  
external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
  
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.18.62
  
logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200
  
api:

ota:
  - platform: esphome
    password: "zuzanna!"

web_server:
  version: 3 

time:
  - platform: homeassistant

spi:
  clk_pin:
    number: GPIO5
    ignore_strapping_warning: true
  mosi_pin: GPIO27
  miso_pin: GPIO19
  
mqtt:
  broker: 192.168.17.8
  port: 1883
  username: lilygo_mqtt_wmbus
  password: "zuzanna!"
  
wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO18
  reset_pin: GPIO23
  irq_pin: GPIO33
  on_frame:
    - then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d)"
            args: [frame->rssi(), frame->as_hex().c_str(), frame->data().size()]
    - mark_as_handled: True
      then:
        - mqtt.publish:
            topic: wmbus/telegram_rtl
            payload: !lambda return frame->as_rtlwmbus();
            
wmbus_meter:
  - id: water_meter
    meter_id: 0x07070707
    type: apator162
    key: "00000000000000000000000000000000"
    on_telegram:
      then:
        - wmbus_meter.send_telegram_with_mqtt:
            topic: wmbus/data
    
sensor:
  - platform: wmbus_meter
    parent_id: water_meter
    field: total_m3
    device_class: water
    name: Zużycie wody, ESP32
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"
Debug log
INFO Starting log output from 192.168.18.62 using esphome API
INFO Successfully connected to lilygo-lora1 @ 192.168.18.62 in 7.123s
INFO Successful handshake with lilygo-lora1 @ 192.168.18.62 in 0.019s
[12:41:05][I][app:115]: ESPHome version 2025.5.0 compiled on May 26 2025, 12:39:35
[12:41:05][C][wifi:600]: WiFi:
[12:41:05][C][wifi:428]:   Local MAC: 90:15:06:CD:AA:48
[12:41:05][C][wifi:433]:   SSID: [redacted]
[12:41:05][C][wifi:436]:   IP Address: 192.168.18.62
[12:41:05][C][wifi:439]:   BSSID: [redacted]
[12:41:05][C][wifi:441]:   Hostname: 'lilygo-lora1'
[12:41:05][C][wifi:443]:   Signal strength: -60 dB ▂▄▆█
[12:41:05][C][wifi:447]:   Channel: 11
[12:41:05][C][wifi:448]:   Subnet: 255.255.255.0
[12:41:05][C][wifi:449]:   Gateway: 192.168.18.1
[12:41:05][C][wifi:450]:   DNS1: 8.8.8.8
[12:41:05][C][wifi:451]:   DNS2: 1.1.1.1
[12:41:05][C][logger:224]: Logger:
[12:41:05][C][logger:225]:   Max Level: DEBUG
[12:41:05][C][logger:226]:   Initial Level: DEBUG
[12:41:05][C][logger:228]:   Log Baud Rate: 115200
[12:41:05][C][logger:229]:   Hardware UART: UART0
[12:41:05][C][logger:233]:   Task Log Buffer Size: 768
[12:41:05][C][spi:068]: SPI bus:
[12:41:05][C][spi:069]:   CLK Pin: GPIO5
[12:41:05][C][spi:070]:   SDI Pin: GPIO19
[12:41:05][C][spi:071]:   SDO Pin: GPIO27
[12:41:05][C][spi:076]:   Using HW SPI: SPI2_HOST
[12:41:05][C][homeassistant.time:010]: Home Assistant Time:
[12:41:05][C][homeassistant.time:011]:   Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[12:41:05][C][wmbus.transceiver:084]: Transceiver: SX1276
[12:41:05][C][wmbus.transceiver:085]:   Reset Pin: GPIO23
[12:41:05][C][wmbus.transceiver:086]:   IRQ Pin: GPIO33
[12:41:05][C][wmbus_meter:031]: wM-Bus Meter:
[12:41:05][C][wmbus_meter:032]:   ID: 0x07070707
[12:41:05][C][wmbus_meter:033]:   Driver: apator162
[12:41:05][C][wmbus_meter:034]:   Key: 00000000000000000000000000000000
[12:41:05][C][wmbus_meter.sensor:019]: wM-Bus Sensor:
[12:41:05][C][wmbus_meter.sensor:020]:   Parent meter ID: 0x07070707
[12:41:05][C][wmbus_meter.sensor:021]:   Field: 'total_m3'
[12:41:05][C][wmbus_meter.sensor:022]:   Name: 'Zużycie wody, ESP32'
[12:41:05][C][wmbus_meter.sensor:022]:     Device Class: 'water'
[12:41:05][C][wmbus_meter.sensor:022]:     State Class: 'total_increasing'
[12:41:05][C][wmbus_meter.sensor:022]:     Unit of Measurement: 'm³'
[12:41:05][C][wmbus_meter.sensor:022]:     Accuracy Decimals: 3
[12:41:05][C][wmbus_meter.sensor:022]:     Icon: 'mdi:water'
[12:41:05][C][wmbus_common:017]: wM-Bus Component v5.0.4-1.19.0-fe1b1e0:
[12:41:05][C][wmbus_common:018]:   Loaded drivers:
[12:41:05][C][wmbus_common:020]:    apator162
[12:41:05][C][web_server:285]: Web Server:
[12:41:05][C][web_server:286]:   Address: 192.168.18.62:80
[12:41:05][C][mdns:120]: mDNS:
[12:41:05][C][mdns:121]:   Hostname: lilygo-lora1
[12:41:05][C][esphome.ota:073]: Over-The-Air updates:
[12:41:05][C][esphome.ota:074]:   Address: 192.168.18.62:3232
[12:41:06][C][esphome.ota:075]:   Version: 2
[12:41:06][C][esphome.ota:078]:   Password configured
[12:41:06][C][safe_mode:018]: Safe Mode:
[12:41:06][C][safe_mode:019]:   Boot considered successful after 60 seconds
[12:41:06][C][safe_mode:021]:   Invoke after 10 boot attempts
[12:41:06][C][safe_mode:022]:   Remain in safe mode for 300 seconds
[12:41:06][C][api:170]: API Server:
[12:41:06][C][api:171]:   Address: 192.168.18.62:6053
[12:41:06][C][api:178]:   Using noise encryption: NO
[12:41:06][C][mqtt:152]: MQTT:
[12:41:06][C][mqtt:153]:   Server Address: 192.168.17.8:1883 (192.168.17.8)
[12:41:06][C][mqtt:155]:   Username: [redacted]
[12:41:06][C][mqtt:156]:   Client ID: [redacted]
[12:41:06][C][mqtt:157]:   Clean Session: NO
[12:41:06][C][mqtt:159]:   Discovery IP enabled
[12:41:06][C][mqtt:162]:   Discovery prefix: 'homeassistant'
[12:41:06][C][mqtt:163]:   Discovery retain: YES
[12:41:06][C][mqtt:165]:   Topic Prefix: 'lilygo-lora1'
[12:41:06][C][mqtt:167]:   Log Topic: 'lilygo-lora1/debug'
[12:41:06][C][mqtt:170]:   Availability: 'lilygo-lora1/status'
[12:41:06][C][mqtt.sensor:028]: MQTT Sensor 'Zużycie wody, ESP32':
[12:41:06][C][mqtt.sensor:032]:   State Topic: 'lilygo-lora1/sensor/zu__ycie_wody__esp32/state'
[12:41:56][W][wmbus:101][radio_recv]: Failed to read data
[12:41:57][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[12:41:57][D][esp32.preferences:114]: Saving 1 preferences to flash...
[12:41:57][D][esp32.preferences:142]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[12:42:17][I][wmbus:053]: Have data from radio (63 bytes) [RSSI: -59dBm, mode: T1]
[12:42:17][D][wmbusmeters:997]: (meter) apator162-07070707(0) apator162  handling telegram from 07070707.M=APA.V=05.T=07
[12:42:17][D][wmbusmeters:296]: (telegram) DLL L=3e C=44 (from meter SND_NR) M=0601 (APA) A=07070707 VER=05 TYPE=07 (Water meter) (driver apator162) DEV=TTGO LoRa32, woda RSSI=-59
[12:42:17][D][wmbusmeters:367]: (telegram) TPL CI=7a
[12:42:17][D][wmbusmeters:372]:  ACC=d8 STS=00 CFG=8530 (bidirectional AES_CBC_IV nb=3 cntn=0 ra=0 hc=0)
[12:42:17][D][wmbusmeters:385]: 
[12:42:17][I][wmbus:060]: Telegram handled by 2 handlers
[12:42:17][D][sensor:093]: 'Zużycie wody, ESP32': Sending state 329.52200 m³ with 3 decimals of accuracy
[12:42:48][D][time:046]: Synchronized time: 2025-05-26 12:42:48
[12:42:48][D][time:046]: Synchronized time: 2025-05-26 12:42:48
[12:42:48][I][wmbus:053]: Have data from radio (63 bytes) [RSSI: -59dBm, mode: T1]
[12:42:48][D][wmbusmeters:997]: (meter) apator162-07070707(0) apator162  handling telegram from 07070707.M=APA.V=05.T=07
[12:42:48][D][wmbusmeters:296]: (telegram) DLL L=3e C=44 (from meter SND_NR) M=0601 (APA) A=07070707 VER=05 TYPE=07 (Water meter) (driver apator162) DEV=TTGO LoRa32, woda RSSI=-59
[12:42:48][D][wmbusmeters:367]: (telegram) TPL CI=7a
[12:42:48][D][wmbusmeters:372]:  ACC=d9 STS=00 CFG=8530 (bidirectional AES_CBC_IV nb=3 cntn=0 ra=0 hc=0)
[12:42:48][D][wmbusmeters:385]: 
[12:42:48][I][wmbus:060]: Telegram handled by 2 handlers
[12:42:48][D][sensor:093]: 'Zużycie wody, ESP32': Sending state 329.52200 m³ with 3 decimals of accuracy
[12:43:45][I][wmbus:053]: Have data from radio (63 bytes) [RSSI: -59dBm, mode: T1]
[12:43:45][D][wmbusmeters:997]: (meter) apator162-07070707(0) apator162  handling telegram from 07070707.M=APA.V=05.T=07
[12:43:45][D][wmbusmeters:296]: (telegram) DLL L=3e C=44 (from meter SND_NR) M=0601 (APA) A=07070707 VER=05 TYPE=07 (Water meter) (driver apator162) DEV=TTGO LoRa32, woda RSSI=-59
[12:43:45][D][wmbusmeters:367]: (telegram) TPL CI=7a
[12:43:45][D][wmbusmeters:372]:  ACC=db STS=00 CFG=8530 (bidirectional AES_CBC_IV nb=3 cntn=0 ra=0 hc=0)
[12:43:45][D][wmbusmeters:385]: 
[12:43:45][I][wmbus:060]: Telegram handled by 2 handlers
[12:43:45][D][sensor:093]: 'Zużycie wody, ESP32': Sending state 329.52200 m³ with 3 decimals of accuracy
Ostateczny config (tylko sensor, bez mqtt i www)
esphome:
  name: lilygo-lora1
  friendly_name: TTGO LoRa32, woda
  
esp32:
  board: ttgo-lora32-v21
  framework:
    type: esp-idf
    version: latest
  
external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
  
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.18.62
  
logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200
  
api:

ota:
  - platform: esphome
    password: "zuzanna!"

time:
  - platform: homeassistant

spi:
  clk_pin:
    number: GPIO5
    ignore_strapping_warning: true
  mosi_pin: GPIO27
  miso_pin: GPIO19
  
wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO18
  reset_pin: GPIO23
  irq_pin: GPIO33
            
wmbus_meter:
  - id: water_meter
    meter_id: 0x07070707
    type: apator162
    key: "00000000000000000000000000000000"
    
sensor:
  - platform: wmbus_meter
    parent_id: water_meter
    field: total_m3
    device_class: water
    name: Zużycie wody, ESP32
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"

To by pasowało do schematu z tamtego posta


irq_pin (YAML) = DIO1 => IO1 (na schemacie oznaczenie wewnątrz modułu LORA) => HPDIO1 (oznaczenie ścieżki) => via R16 => IO33 (ESP32) => GPIO33 ( lub 33 YAML)

2 polubienia

Próbowałem skompilować sobie build wzorując się na tej konfiguracji, jednak za każdym razem ultimatemeter od @_Szczepan wpada w bootloopa

esphome:
  name: wmbus
  friendly_name: wmbus

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d

esp32:
  board: ttgo-lora32-v21
  framework:
    type: esp-idf
    version: latest

# Enable logging
logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200

# Enable Home Assistant API
api:
  encryption:
    key: "key"

ota:
  - platform: esphome
    password: "pass"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Wmbus Fallback Hotspot"
    password: "1234567890"

captive_portal:
    
time:
  - platform: homeassistant

spi:
  clk_pin:
    number: GPIO5
    ignore_strapping_warning: true
  mosi_pin: GPIO27
  miso_pin: GPIO19
  
mqtt:
  broker: 192.168.50.131
  port: 1883
  username: mqtt_wmbus
  password: pass_mqtt
  
wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO18
  reset_pin: GPIO23
  irq_pin: GPIO33
  on_frame:
    - then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d)"
            args: [frame->rssi(), frame->as_hex().c_str(), frame->data().size()]
    - mark_as_handled: True
      then:
        - mqtt.publish:
            topic: wmbus/telegram_rtl
            payload: !lambda return frame->as_rtlwmbus();
            
wmbus_meter:
  - id: cold_water
    meter_id: 0x22917379
    type: iwmtx5
    key: "00000000000000000000000000000000"
    on_telegram:
      then:
        - wmbus_meter.send_telegram_with_mqtt:
            topic: wmbus/data
  - id: hot_water
    meter_id: 0x22916923
    type: iwmtx5
    key: "00000000000000000000000000000000"
    on_telegram:
      then:
        - wmbus_meter.send_telegram_with_mqtt:
            topic: wmbus/data
    
sensor:
  - platform: wmbus_meter
    parent_id: cold_water
    field: total_m3
    device_class: water
    name: Zużycie zimnej wody, ESP32
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"
  - platform: wmbus_meter
    parent_id: hot_water
    field: total_m3
    device_class: water
    name: Zużycie ciepłej wody, ESP32
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"

Pomijam wszystko, bo to chyba tylko @_Szczepan lub @kubasa są w stanie podpowiedzieć.

Zmieniasz framework z arduino na esp-idf nie możesz nowego softu wgrać przez OTA (to tak pomijając inne kwestie, bo nie mam pojęcia czy ten YAML jest OK)

No i skąd wyczesałeś definicję płytki (bo nabrałem przekonania, że ona nie pasuje do sprzętu, masz całkowicie inny procesor w MCU, inaczej mówiąc Ultimatereader to nie jest TTGO LoRa32 V2.1_1.6)

Karteczka z paczki ma tendencje do zgubienia się, forma cyfrowa zdecydowanie lepsza :wink:
No i bardzo zmylił mnie opis projektu na github

Na 100% to jest S3, a nie zwykłe ESP32, ale parametrów flasha i psram to z głowy nie powiem (sprawdź jakieś defaultowe).

Wszystko potrzebne dostales na mejla.

1 polubienie