Komponent wM-Bus do ESPHome (SzczepanLeon) wersja 3.x - wątek ogólny

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

Zrobiłem porządek w logach. Dodatkowo od wersji 3.2.0 dodałem obsługę długich ramek.

wmbus jest komponentem do ESPHome umożliwiającym odczyt radiowych mierników wM-Bus oraz bezpośrednią integrację z Home Assistant (miernik “widoczny” jako sensor). Obecnie wspierane są różne wodomierze/gazomierze/watomierze/ciepłomierze. Aktualna lista jest dostępna po zainstalowaniu komponentu… Do uruchomienia wymagany jest moduł CC1101 oraz ESP32 lub ESP8266.

Coś nie działa? Podeślij VERBOSE logi (jako tekst a nie obrazek) razem z numerem wersji, którą masz.
obraz
Jak coś bardzo nie działa to podeślij logi VERY_VERBOSE.
Jak załączyć odpowiedni poziom logowania? Patrz poniżej:

Nie odpisuję na wpisy bez tych informacji – nie dorobiłem się jeszcze szklanej kuli :wink: .

Coś działa i jesteś zadowolony? Możesz postawić “kawę”. :coffee: klik lub klik

Rozwiązywanie problemów polecam zacząć od przeczytania:

Cześć @_Szczepan
wersja 2.10.4 działa bezproblemowo 3.0.0 brak telegramów
poniżej konfiguracja

  name: wodomierz
esp32:
  board: nodemcu-32s
  framework:
    type: arduino
time:
  - platform: sntp
    id: time_sntp

external_components:
  - source: github://SzczepanLeon/esphome-components@2.4.10

    refresh: 3d
    components: [ wmbus ]

# Sekcja dotycząca brokera MQTT
mqtt:
  broker: *****
  port: 1883
  username: ****
  password: ****
  discovery_retain: true
web_server:
  port: 80
  version: 2

logger:
  level: DEBUG

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

ota:
  password: "e34d0c3980ac9492897724849c021acd"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  reboot_timeout: 60min

  manual_ip:
    static_ip: 10.0.0.144
    gateway: 10.0.0.1
    subnet: 255.255.255.0
    dns1: 10.0.0.1

  ap:
    ssid: "Wodomierz Fallback Hotspot"
    password: "cXdl86ZHZzDw"


captive_portal:
wmbus:
  frequency: 868.950
  mosi_pin: GPIO32
  clk_pin: GPIO33
  miso_pin: GPIO19
  gdo2_pin: GPIO21
  gdo0_pin: GPIO22
  cs_pin: GPIO23
  led_blink_time: "1s"
text_sensor:
  - platform: wifi_info
    ip_address:
      name: 'Adress IP ESP'
      icon: mdi:wifi
    ssid:
      name: 'ESP w sieci'
      icon: mdi:wifi-strength-2
# Konfiguracja sensorów wodomierzy
sensor:
  - platform: wifi_signal
    name: "Sygnał WiFi ESP dB"
    id: wifi_signal_db
    update_interval: 30s
    entity_category: "diagnostic"
  - platform: wmbus
    meter_id: 0x00126858
    type: apator162
    key: "00000000000000000000000000000000"
    add_prefix: false
    lqi:
      name: "LQI glowny"
    rssi:
      name: "RSSI glowny"
    total_water_m3:
      name: "ESP_wodomierz_glowny"
#      filters:
#        offset: -233.006
      force_update: true

  - platform: wmbus
    meter_id: 0x00061085
    type: apator162
    key: "00000000000000000000000000000000"
    add_prefix: false
    lqi:
      name: "LQI ogrodowy"
    rssi:
      name: "RSSI ogrodowy"
    total_water_m3:
      name: "ESP_wodomierz_ogrodowy"
      force_update: true


### GAZOMIERZ	

# Licznik Gazu Unismart AT-WMBUS-G-01
  - platform: wmbus
    meter_id: 0x00061790
    type: unismart
    key: "00000000000000000000000000000000"
    add_prefix: false
    total_gas_m3:
      name: "Licznik gazu"
      icon: "mdi:gas-burner"
      device_class: "gas"
      accuracy_decimals: 3 
    rssi:
      name: "RSSI Gazomierz"

Jak to mówią - u mnie działa

A tak na poważnie to logi VERY_VERBOSE albo VERBOSE poprosze.

Bardzo proszę
esp_logi.zip (9,5 KB)

Wyłączenie MQTT coś poprawia?

Nic nie daje.
Aktualizacja do esp do najnowszej również nic.
Nie wiem może esp do Mariusz tak się zachowuje :slight_smile:

Ciekawe co tam się dzieje. Pętlę odbierającą raczej nie zmieniałem (jedynie kosmetyka). Tak to powinno wyglądać:

U Ciebie są jakieś dane ale pewnie nie przechodzą dekodowania 3z6.

:slight_smile:

source: github://SzczepanLeon/esphome-components@2.4.10

działa prawidłowo,
Może mam coś zwalone z konfiguracją ??
Co ciekawe w wersji 3.0.0 sensor text sensor są reszta nie

Aktualizacja MQTT jak wywalę to działa,

Jednak mi zależy na MQTT ze względu na to że po restarcie w MQTT mam zapisany ostatni stan, przy integracji ESP niestety stan jest nieznany do momentu odbioru następnego telegramu.:slight_smile:

Juz wcześniej zaobserwowane były problemy z MQTT.
Niestety ESPHOME ma swój narzut a odbieranie danych z CC1101 mam zrobione bez przerwań i z możliwością “multitaskingu”.

Mam gdzieś w tyle głowy aby zrobić tez wersję blokującą loopa ESPHOME na czas odbioru (albo cos innego z przerwaniem) - może pomoże.

Można by trochę pooszukiwać i MQTT zrobić własne tylko na potrzeby wmbus a nie takie dla całego ESPHOME.

@Dariusz_Barczyński Spróbuj wersji 3.1.0, dodając do konfiga:

wmbus:
  sync_mode: True

Ruszyło niezależnie od wersji ESP, nawet na najnowszej działa
Dzięki

Czyli parametr pomógł.
Mozesz trochę logów VERBOSE podesłać?

Logi wersja 3.1.0
ESPHome Current version: 2023.12.9
esp_logi_301.zip (6,3 KB)

1 Like

Używasz sprzętu od @Mariusz_Woszczyński ? Z anteną zewnętrzną? W jakiej odległości i jakie przeszkody masz do gazomierza - jeśli mogę wścibsko zapytać :wink:

I od @Mariusz_Woszczyński i jedną sztukę od @_Szczepan
obydwa się sprawdzają rewelacyjnie,
wodomierze apator162 oddalone od esp jakiś metr zasięgi ok

Gazomierz w linii prostej 10 m, brak przeszkód terenowych, jedynie tuje zasłaniają skrzynkę gazomierza, wykonaną z tworzywa zasięg jeszcze lepszy niż wodomierzy

Podejrzewam, że gaz ma nową baterię, natomiast nakładki wodomierzy kupiłem używane i mają na pewno kilka lat :slight_smile: ale to nie problem bo te wodomierze są moje podpięte szeregowo za wodomierzami spółki wodnej.

Chcecie powiększyć zasięg? Polecam rozwiązanie opisane tu:

:grin:

Ja pierdziu… Ciekawe czy zmieści się do odbudowy z ESP🤣

1 Like

Niby jak ma się zmieścić skoro sam rozstaw ramion dipola półfalowego 868 MHz to ponad 8cm

a teraz dochodzi do tego w kierunku prostopadłym do szerokości rozmieszczenie pozostałych elementów: reflektora i direktorów (których długość jest również zbliżona do tych 8cm).

Kiedyś ten gość produkował takie anteny pcb na bazie idei konstrukcji Yagi-Uda 3-elementowej
https://www.wa5vjb.com/products2.html
niedostępne, ale być może byłyby do zamówienia tam (przy większej ilości może wznowią produkcję)

Natomiast te chinole wieloelementowe Yagi-Uda robione z kształtowników aluminiowych mają koło metra długości (9 elem. chyba jakieś 70cm a 14 czy 15 elem. jakieś 1.5metra).
W dodatku chyba wszyscy producenci z ChRL leją na dopasowanie impedancji kabla i anteny… no może dla anteny odbiorczej nie jest to kluczowy parametr, ale szczerze mówiąc wątpię też, że są dobrze zestrojone na to pasmo (mam w szufladzie antenę 433MHz która fabrycznie jest zestrojona na 500MHz, przeróbka akurat nie jest skomplikowana, bo to pojedynczy dipol z wkręcanymi ramionami i akurat daje się posztukować tulejkami dystansowymi z mosiądzu, ale anteny wieloelementowej tak się nie przestroi).

Moim zdaniem najrozsądniejszym kompromisem byłaby 5-elementowa pcb, gdyby komuś się chciało zrobić projekt to kalkulator dla anteny z prętów, a pomysł na wykorzystanie 2-stronnej płytki można podkraść z anten mactechu (kolejny link)

W ogóle to wielu producentów koncentruje się tylko na rynku amerykańskim (915MHz) lejąc sikiem prostym na EU
http://mactech.co.kr/home/en/yagi-antenna/

Ale widzisz tą emotkę na końcu? :yum:

Żarcik widziałem, ale odpowiedź na poważnie nie bez powodu.

Jest jeszcze:

ale nie wczytywałem się w szczegóły.

Wracając do komponentu. Co powiecie na taką zapowiedź wersji 4?

INFO ESPHome 2023.12.9
... ... ...
[12:59:37][C][wmbus:386]: wM-Bus v4.x.x:
... ... ...
[12:59:44][D][mbus:035]: Processing T1 A frame
[12:59:44][D][wmbus:099]: Using driver 'izar' for ID [0x41....5C] RSSI: -44 dBm LQI: 128 Frame: T1 A T: 1944....91 (26)
[12:59:44][I][wmbusmeters:000]: (meter) created izar izar  not-encrypted
[12:59:44][I][wmbusmeters:000]: (diehl) preprocess necessary SAP_PRIOS
[12:59:44][I][wmbusmeters:000]: (diehl) Pre-processing: setting device type to water meter for SAP PRIOS
[12:59:44][I][wmbusmeters:000]: (wmbus) parseDLL @0 26
[12:59:44][I][wmbusmeters:000]: (wmbus) parseELL @10 16
[12:59:44][I][wmbusmeters:000]: (wmbus) parseNWL @10 16
[12:59:44][I][wmbusmeters:000]: (wmbus) parseAFL @10 16
[12:59:44][I][wmbusmeters:000]: (wmbus) parseTPL @10 16
[12:59:44][I][wmbusmeters:000]: (meter) izar: for me? 41....5c in 
[12:59:44][I][wmbusmeters:000]: (meter) izar: yes for me
[12:59:44][I][wmbusmeters:000]: (meter) izar(0) izar  handling telegram from 4122b45c
[12:59:44][I][wmbusmeters:000]: (meter) izar 4122b45c "1944....91"
[12:59:44][I][wmbusmeters:000]: (diehl) preprocess necessary SAP_PRIOS
[12:59:44][I][wmbusmeters:000]: (diehl) Pre-processing: setting device type to water meter for SAP PRIOS
[12:59:44][I][wmbusmeters:000]: (wmbus) parseDLL @0 26
[12:59:44][I][wmbusmeters:000]: (telegram) DLL L=19 C=44 (from meter SND_NR) M=4c30 (SAP) A=4122b45c VER=00 TYPE=07 (Water meter) (driver izar) DEV= RSSI=0
[12:59:44][I][wmbusmeters:000]: (wmbus) parseELL @10 16
[12:59:44][I][wmbusmeters:000]: (wmbus) parseNWL @10 16
[12:59:44][I][wmbusmeters:000]: (wmbus) parseAFL @10 16
[12:59:44][I][wmbusmeters:000]: (wmbus) parseTPL @10 16
[12:59:44][I][wmbusmeters:000]: (telegram) TPL CI=a2
[12:59:44][I][wmbusmeters:000]: (izar) Decoded PRIOS data: 4B....31
[12:59:44][I][wmbusmeters:000]: (izar) 000   : 19 length (25 bytes)
[12:59:44][I][wmbusmeters:000]: (izar) 001   : 44 dll-c (from meter SND_NR)
[12:59:44][I][wmbusmeters:000]: (izar) 002   : 304c dll-mfct (SAP)
[12:59:44][I][wmbusmeters:000]: (izar) 004   : 5c....41 dll-id (41....5c)
[12:59:44][I][wmbusmeters:000]: (izar) 008   : 00 dll-version
[12:59:44][I][wmbusmeters:000]: (izar) 009   : 07 dll-type (Water meter)
[12:59:44][I][wmbusmeters:000]: (izar) 010   : a2 tpl-ci-field (Mfct specific)
[12:59:44][I][wmbusmeters:000]: (izar) 011 C?: 01....91 mfct specific
[12:59:44][I][wmbus:110]: Mamy z wmbusmeters: 2450.4750 m³
[12:59:44][D][sensor:094]: '0x41....5C Wodomierz Izar': Sending state 2450.47500 m³ with 3 decimals of accuracy

:grin: