Ultimate Reader czytnik wM-Bus - nowa konstrukcja opracowana przez @_Szczepan (SzczepanLeon)

powinno być 192.168.4.1
domyslny z ESPHome dla CaptivePortal

ps
na horyzoncie jest UltimateReader-ETH-PoE
tylko czekam na OLEDa

1 Like

Szczepan pomocy po ostatniej aktualizacji “Project wmbus.UltimateReader version 1.2”
nic nie czyta

[12:27:27][E][wmbus:577]:    Check connection to radio module!
[12:27:27][C][wmbus:584]:   Available drivers: unknown, unismart, apator162, amiplus
[12:27:27][C][wmbus:598]:   Meter:
[12:27:27][C][wmbus:599]:     ID: 397445 [0x00061085]
[12:27:27][C][wmbus:600]:     Type: apator162
[12:27:27][C][wmbus:601]:     Key: '00000000000000000000000000000000'
[12:27:27][C][wmbus:603]:     Field: 'rssi' 
[12:27:27][C][wmbus:604]:      Name: 'RSSI ogrodowy'
[12:27:27][C][wmbus:604]:        Device Class: 'signal_strength'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'dBm'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:603]:     Field: 'total' [display]
[12:27:27][C][wmbus:604]:      Name: 'ESP_wodomierz_ogrodowy'
[12:27:27][C][wmbus:604]:        Device Class: 'water'
[12:27:27][C][wmbus:604]:        State Class: 'total_increasing'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'm³'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:water'
[12:27:27][C][wmbus:598]:   Meter:
[12:27:27][C][wmbus:599]:     ID: 399248 [0x00061790]
[12:27:27][C][wmbus:600]:     Type: unismart
[12:27:27][C][wmbus:601]:     Key: '00000000000000000000000000000000'
[12:27:27][C][wmbus:603]:     Field: 'rssi' 
[12:27:27][C][wmbus:604]:      Name: 'RSSI Gazomierz'
[12:27:27][C][wmbus:604]:        Device Class: 'signal_strength'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'dBm'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:603]:     Field: 'total' [display]
[12:27:27][C][wmbus:604]:      Name: 'Licznik gazu'
[12:27:27][C][wmbus:604]:        Device Class: 'gas'
[12:27:27][C][wmbus:604]:        State Class: 'total_increasing'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'm³'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:gas-burner'
[12:27:27][C][wmbus:603]:     Field: 'target' 
[12:27:27][C][wmbus:604]:      Name: 'Licznik gazu poprzedni miesiąc'
[12:27:27][C][wmbus:604]:        Device Class: 'gas'
[12:27:27][C][wmbus:604]:        State Class: 'total_increasing'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'm³'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:gas-burner'
[12:27:27][C][wmbus:598]:   Meter:
[12:27:27][C][wmbus:599]:     ID: 70743299 [0x04377503]
[12:27:27][C][wmbus:600]:     Type: apator162
[12:27:27][C][wmbus:601]:     Key: '00000000000000000000000000000000'
[12:27:27][C][wmbus:603]:     Field: 'rssi' 
[12:27:27][C][wmbus:604]:      Name: 'RSSI glowny'
[12:27:27][C][wmbus:604]:        Device Class: 'signal_strength'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'dBm'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:603]:     Field: 'total' [display]
[12:27:27][C][wmbus:604]:      Name: 'ESP_wodomierz_glowny'
[12:27:27][C][wmbus:604]:        Device Class: 'water'
[12:27:27][C][wmbus:604]:        State Class: 'total_increasing'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'm³'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:water'
[12:27:27][C][wmbus:598]:   Meter:
[12:27:27][C][wmbus:599]:     ID: 809589141 [0x30415995]
[12:27:27][C][wmbus:600]:     Type: amiplus
[12:27:27][C][wmbus:601]:     Key: '32002304159950000000000000000000'
[12:27:27][C][wmbus:603]:     Field: 'rssi' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 RSSI'
[12:27:27][C][wmbus:604]:        Device Class: 'signal_strength'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'dBm'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:603]:     Field: 'total_energy_consumption' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 180'
[12:27:27][C][wmbus:604]:        Device Class: 'energy'
[12:27:27][C][wmbus:604]:        State Class: 'total_increasing'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'kWh'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:transmission-tower-import'
[12:27:27][C][wmbus:603]:     Field: 'total_energy_production' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 280'
[12:27:27][C][wmbus:604]:        Device Class: 'energy'
[12:27:27][C][wmbus:604]:        State Class: 'total_increasing'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'kWh'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:transmission-tower-export'
[12:27:27][C][wmbus:603]:     Field: 'current_power_consumption' [display]
[12:27:27][C][wmbus:604]:      Name: 'Gama350 Moc importu'
[12:27:27][C][wmbus:604]:        Device Class: 'power'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'kW'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:transmission-tower-import'
[12:27:27][C][wmbus:603]:     Field: 'current_power_production' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 Moc exportu'
[12:27:27][C][wmbus:604]:        Device Class: 'power'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'kW'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 3
[12:27:27][C][wmbus:604]:        Icon: 'mdi:transmission-tower-export'
[12:27:27][C][wmbus:603]:     Field: 'voltage_at_phase_1' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 napiecie na fazie 1'
[12:27:27][C][wmbus:604]:        Device Class: 'voltage'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'V'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:604]:        Icon: 'mdi:sine-wave'
[12:27:27][C][wmbus:603]:     Field: 'voltage_at_phase_2' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 napiecie na fazie 2'
[12:27:27][C][wmbus:604]:        Device Class: 'voltage'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'V'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:604]:        Icon: 'mdi:sine-wave'
[12:27:27][C][wmbus:603]:     Field: 'voltage_at_phase_3' 
[12:27:27][C][wmbus:604]:      Name: 'Gama350 napiecie na fazie 3'
[12:27:27][C][wmbus:604]:        Device Class: 'voltage'
[12:27:27][C][wmbus:604]:        State Class: 'measurement'
[12:27:27][C][wmbus:604]:        Unit of Measurement: 'V'
[12:27:27][C][wmbus:604]:        Accuracy Decimals: 0
[12:27:27][C][wmbus:604]:        Icon: 'mdi:sine-wave'
[12:27:27][E][component:082]:   Component wmbus is marked FAILED
[12:28:11][D][sensor:094]: 'Ultimate Reader uptime': Sending state 57.29500 s with 0 decimals of accuracy
[12:28:14][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[12:28:14][D][esp32.preferences:114]: Saving 1 preferences to flash...
[12:28:14][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed

[12:27:27][E][component:082]: Component wmbus is marked FAILED

[12:27:27][E][wmbus:577]: Check connection to radio module!

Calego loga podeslij. Pewniencos wczoraj przedobrzyłem- a niby testowalem u siebie.

to wywala na czerwono

INFO ESPHome 2025.2.0
INFO Reading configuration 
INFO Detected timezone 'Europe/Warsaw'
WARNING GPIO35 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO36 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO37 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models

_______________ Moja konfiguracja


substitutions:
  name: wodomierz
  friendly_name: wodomierz


esphome:
  name: "${name}"
  friendly_name: "${friendly_name}"
  name_add_mac_suffix: true
  platformio_options:
    board_build.f_flash: 80000000L
    board_build.arduino.ldscript: esp32s3_out.ld
    board_build.arduino.partitions: default.csv
    board_build.arduino.memory_type: qio_qspi
  project:
    name: wmbus.UltimateReader
    version: "1.2"

esp32:
  board: esp32-s3-devkitc-1
  variant: esp32s3
  framework:
    type: arduino

web_server:
  port: 80
  version: 3

psram:

logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200


api:

ota:
- platform: esphome


  ap:

captive_portal:

time:
- platform: homeassistant


wmbus:
  id: my_wmbus
  led_blink_time: "123ms"
  display_active: True
  all_drivers: False
  display_all: True
  sync_mode: True
  log_all: False

mqtt:
  broker: !secret mqtt_ip
  port: !secret mqtt_port
  username: !secret mqtt_username
  password: !secret mqtt_password
  discovery_retain: true


sensor:
  - platform: uptime
    type: seconds
    name: Ultimate Reader uptime

## Wodomierz Główny
  - platform: wmbus
    meter_id: 0x04377503
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "RSSI glowny"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
        filters:
          - offset: 50
  
      - name: "ESP_wodomierz_glowny"
        display: True 
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
##################################################################################################
## Wodomierz ogrodowy
  - platform: wmbus
    meter_id: 0x00061085
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "RSSI ogrodowy"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
        filters:
          - offset: 50        

      - name: "ESP_wodomierz_ogrodowy"
        field: "total"
        display: True 
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"

##################################################################################################
# Gazomierz   Licznik Gazu Unismart AT-WMBUS-G-01
  - platform: wmbus
    meter_id: 0x00061790
    type: unismart
    key: "00000000000000000000000000000000"
    sensors:
      - name: "RSSI Gazomierz"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
        filters:
          - offset: 50        

      - name: "Licznik gazu"
        field: "total"
        display: True         
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "gas"
        state_class: "total_increasing"
        icon: "mdi:gas-burner"        

      - name: "Licznik gazu poprzedni miesiąc"
        field: "target"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "gas"
        state_class: "total_increasing"
        icon: "mdi:gas-burner"        

##################################################################################################
###  GAMA3503   
  - platform: wmbus
    meter_id: 0x30415995
    type: amiplus
    key: "32002304159950000000000000000000"
    sensors:
      - name: "Gama350 RSSI"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
        filters:
          - offset: 50




      - name: "Gama350 180"
        field: "total_energy_consumption"
        accuracy_decimals: 3
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:transmission-tower-import"

      - name: "Gama350 280"
        field: "total_energy_production"
        accuracy_decimals: 3
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:transmission-tower-export"        

      - name: "Gama350 Moc importu"
        display: True         
        field: "current_power_consumption"
        accuracy_decimals: 3
        unit_of_measurement: "kW"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:transmission-tower-import"                        

      - name: "Gama350 Moc exportu"
        field: "current_power_production"
        accuracy_decimals: 3
        unit_of_measurement: "kW"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:transmission-tower-export"             

      - name: "Gama350 napiecie na fazie 1"
        field: "voltage_at_phase_1"
        accuracy_decimals: 0
        unit_of_measurement: "V"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:sine-wave"             

      - name: "Gama350 napiecie na fazie 2"
        field: "voltage_at_phase_2"
        accuracy_decimals: 0
        unit_of_measurement: "V"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:sine-wave"

      - name: "Gama350 napiecie na fazie 3"
        field: "voltage_at_phase_3"
        accuracy_decimals: 0
        unit_of_measurement: "V"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:sine-wave"

Sproboj teraz - zrobilem reverta

U mnie działa bez problemu, więc jakieś zmiany musiały raczej wejść po tym terminie

[13:07:39][I][app:100]: ESPHome version 2025.2.0 compiled on Feb 19 2025, 23:17:18
[13:07:39][I][app:102]: Project wmbus.UltimateReader version 1.2

Działa, Dziękuję

Mam jeszcze jedno pytanie zmienił mi nazwę hosta na wodomierz 5a1524
z wodomierz
ale to szczegół

Tak, wesoła nocna twórczość

linia ponizej ‐ daj false

name_add_mac_suffix: true

Ok dzięki, działa prawidłowo

Mam takie nietypowe pytanko :slight_smile: Da się obrócić wyświetlane dane o 180 stopni ?

W kolejnej wersji bedzie taka opcja.

Ma ktoś pomysł jak za pomocą ultimate reader odczytywać nakładkę Maddalena Radio EVO?
Wymieniłem liczniki na nowe i wygląda że nakładki działają ale czytnik nic nie odczytuje.

Wyczytałem że nakładka obsługuje wM-Bus ale też OMS który jest odpalony w standardzie w trybie T1. Myślicie że trzeba programatorem zmienić na tryb wM-Bus ?

RadioEvo powinno nadawać wM-Bus na częstotliwości 868 MHz w modzie T1 (albo C1). Wszystko zalezy od konfiguracji. Driver istnieje a OMS jest tylko na plus (bo wiadomo czego się spodziewac w telegramie).

Troche pomieszałeś pojęcia. W skrócie wM-Bus opisuje radiową czesc transmisji a OMS opisuje jak odczytać dane z telegramu. Tak więc T1/C1 jest to właściwości wM-Bus a nie OMSa.

ps
Maddalena ma w konfiguratorze zaszyty kalkulator trwałości baterii. Wymusza on taką konfigurację żeby bateria wystarczyla na te deklarowane X lat. Więc z dużym prawdopodobieństwem może ta nakladka nadawać tylko w dni robocze i w określonych godzinach.

Ok, muszę w takim razie zobaczyć w ciągu tygodnia, myślałem że OMS coś zmienia wg tego obrazka.

Tu poprostu wrzucili wszystko pod standardy, ale oba opisuja cos innego a nie sa brane jako opcja “to lub to”.

To taka dokumentacja dla nie-technicznych :wink:

Problem rozwiązałem, nadajniki nadawały co 2minuty w dni powszednie poniedziałek piątek w godzinach 8-18.
Przeprogramowalem je na nadawanie co 5 minut, ale 24h/7 co wydłużyło ich pracę i mam teraz piękne odczyty w HA. Dodatkowo zmieniłem by podawały idealnie stan licznika i godzinę, oraz zmieniłem nadawanie krótkiej na długą ramkę dzięki czemu mam statystyki miesięcy z licznika.
Szczepan dziękuję za wsparcie i super czytnik.

Ps. Czy mozna na wyświetlaczu zrobić by podawał na zmianę tylko zdefiniowane sensory I ich zużycie ale pomijał inne odczytane radia ?

Gdzie dorwałeś sprzęt i soft do programowania Maddaleny?

Tak, możesz definiować jeden sensor per licznik który ma być wyświetlany.

wmbus:
  display_all: False

sensor:
  - platform: wmbus
    meter_id: 0x11223344
    sensors:
      - name: "cold water from Apator NA-1"
        display: True
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
1 Like

Kupiłem na czarnym rynku ;), jak by ktoś chciał mogę pomóc w programowaniu.
Najlepsze jest to że nakładek nie można zabezpieczyć hasłem, można jedynie klucz zmieniać. Więc można się podpinać radiowo do wszystkiego. Jak by w logach nie było wpisu o zmianie wartości to by można było edytować te nakładki bezszelestnie.

Potwierdzam ustawienia standardowe sa jak poniżej

Można je zmienić za pomocą klucza DRF-USB868

I działa już poprawne 24h/365 ja ustawiłem co 5 minut dzięki czemu bateria starczy na ponad 14 lat, przy 240 sekundach jest minimum co pozwala i bateria wg niego 10 lat, 120 sekund nie pozwala bo bateria 8 lat pokazuje.

Ustawienie długiej ramki daje dodatkowe statystki, jest szzcze temperatura licznika ale w ramkach jej nie przekazuje.

[22:36:44][I][wmbus:204]: Using selected driver evo868 (detected driver was )
[22:36:44][I][wmbus:217]: evo868 [0x23194692] RSSI: -91dBm T: AC4424349246192350067AF90000202F2F04134A090000046D24352E3504FD17000000000E78000000000000441300000000426C01018401133B03000082016C3E34D3013B000000C4016D002001018104FD280182046C3E348404133B030000C40413FFE0F505840513FFE0F505C40513FFE0F50584061300000000C406130000000084071300000000C407130000000084081300000000C408130000000084091300000000C4091300000000 (173) T1 A

1 Like

Jeśli chodzi o przedłużanie czasu bez wymiany ogniwa to podejrzewam, że nie jest uwzględnione samorozładowanie ogniwa (to można poznać łatwo jeśli szacowania zmieniają się w sposób liniowy 2x mniej telegramów = 2x dłuższy czas pracy, 5x => 5x, itd. tzn. że nie jest, a wtedy nadmierne oszczędzanie ogniwa nie ma sensu, jakkolwiek wydaje się że jest to w jakimś stopniu uwzględnione, bo z tego co piszesz jest nieliniowość, ale musiałaby być uwzględniona data produkcji ogniwa by to było istotnie realistyczne).

Myślę, że nie chodzi wcale o możliwości ogniwa (legalizacja liczników jest i tak tylko na 5 lat), tylko o kwestię zajętości pasma, która jest uregulowana prawnie - zmień telegramy na krótkie i wtedy porównaj. Chociaż w sumie żadnej pewności nie mam - zrzut ekranu sugeruje wyłącznie powiązanie z ogniwem.

Nakładka jest niezależna od licznika, jest projektowana na 10 lat + 1 rok przechowywania ognia, on liczy planowaną ilość wysłanych telegramów w czasie.