Apator Naxom OP-04 WMBUS -> HOWTO

naxom.zip (846,5 KB)

Po różnych bojach z CC1101, lekturze tego wątku oraz Komponent wM-Bus do ESPHome wersja 5.x - wątek ogólny - #227 przez kniazio “połączyłem” 2 projekty GitHub - SzczepanLeon/esphome-components · GitHub i GitHub - MaciejR89/esphome-components: Added support for Apator NAXOM: OP-04-1a, OP-04-1b and OP-04-2 · GitHub a ścisłej driver_apator_op04.cpp
Wrzuciłem kod do seeed_xiao_esp32s3 + SX1262 i śmiga - może komuś się przyda lub zaproponuje jakąś zmianę…
```

esphome:
  name: licznik-wody-f100
  friendly_name: licznik-wody-f100

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

api:
  encryption:
    key: ""
ota:
  - platform: esphome
    password: ""

logger:
  level: INFO
  baud_rate: 115200
  logs:
    wmbus: INFO
    wmbusmeters: WARN
    packet: WARN

#logger:
#  level: DEBUG
#  baud_rate: 115200

wifi:
  reboot_timeout: 0s
  power_save_mode: none
  networks:
  manual_ip:

time:
  - platform: sntp
    id: time_sntp

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

## Laptop
#external_components:
#  - source:
#      type: local
#      path: components
#    components: [ wmbus_radio, wmbus_meter, wmbus_common ]

## HA
external_components:
  - source:
      type: local
      path: /config/esphome/custom_components/naxom
    components: [ wmbus_radio, wmbus_meter, wmbus_common ]

spi:
  clk_pin:  GPIO7
  mosi_pin: GPIO9
  miso_pin: GPIO8

wmbus_radio:
  radio_type: SX1262
  cs_pin:    GPIO41
  reset_pin: GPIO42
  irq_pin:   GPIO39
  busy_pin:  GPIO40
  has_tcxo: true
  rx_gain: BOOSTED

#wmbus_meter:
#  - id: zimna_woda
#    meter_id: 0x10532272
#    type: apator_op04
#    key: "5A6974614A657A75726148616C6F7661"


wmbus_meter:
  - id: zimna_woda
    meter_id: 0xXXXXXXXX
    type: apator_op04
    key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # trzeba skołować 
    on_telegram:
      - then:
          - logger.log:
              format: "Telegram received!"
              level: INFO

sensor:
  - platform: wmbus_meter
    parent_id: zimna_woda
    field: total_m3
    name: "Zimna woda"
    device_class: water
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"
 


[20:31:01.939][I][app:215]: ESPHome version 2026.2.4 compiled on 2026-03-04 19:57:55 +0100
[20:31:01.982][I][app:222]: ESP32 Chip: ESP32-S3 rev0.2, 2 core(s)
[20:37:17.471][W][wmbusmeters:038]: (apator_op04) content size: 94
[20:37:17.475][W][wmbusmeters:041]: (apator_op04) byte[0]=0x04 byte[1]=0x13
[20:37:17.477][W][wmbusmeters:050]: (apator_op04) FOUND! raw=303 total_m3=0.303000
[20:37:17.481][I][main:460]: Telegram received!

Próbowałem też na LILYGO ® TTGO LoRa32 V2.1_1.6, ale utknąłem na:
```

[19:45:39][V][mdns:133]:     TXT: version = 2025.8.0
[19:45:39][D][sntp:065]: Synchronized time: 2026-03-04 19:39:34
[19:46:36][D][packet:097]: Have data from radio (8 bytes)
[19:46:36][D][wmbusmeters:351]: raw packet "844B8C7A05CFE9AC"
[19:46:36][V][packet:073]: expected_size: 8
[19:46:36][V][wmbusmeters:4841]: (wmbus) not enough bytes! expected at least 12 but got (8)!
[19:46:36][V][packet:073][radio_recv]: expected_size: 8

Ktoś pisał o kompilacji w chmurze - można łatwiej

# 1. Utwórz virtualenv
python3 -m venv esphome-env

# 2. Aktywuj
source esphome-env/bin/activate

# 3. Zainstaluj ESPHome
pip install esphome

# 4. Sprawdź
esphome version

albo jakaś konkretna wersja
pip install esphome==2024.12.0
1 polubienie