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

Jak wcześniej bawiłem się w arduino ide, to przy błyśnięciu diody zwracał coś (jakiś ciąg znaków) w output, stąd założyłem że to oznacza odczytanie jakiegoś komunikatu/telegramu, czy czegoś innego. Niestety, jak pisałem wcześniej, jestem w tym amatorem.

Widocznie skecz w arduino miał obsługę tego mignięcia, w ESPHome też możesz sobie zdefiniować jakieś miganie (jak wiesz na jakim pinie jest dioda) ale tego nie zrobiłeś - stąd przypuszczenie, że masz konflikt sprzętu.

Wrzuć foto.

Zdjęcia zrobiłem na szybko przed wyjściem do pracy, dlatego piny są podłączone inaczej niż wysyłałem wcześniej (chciałem sprawdzić jak w “domyślnej” konfiguracji działa - świeci się stale niebieska dioda i wpada w bootloop(?)). Jak zmieniłem piny 2 i 4 na 21 i 22, to dioda już nie błyskała, ale też w logach nic. Przy podłączeniu pinów tak jak pisałem na początku niebieska dioda reaguje na wciskanie pilota od webasto (działa na 868 MHz), może to oznacza że moduł radiowy jest sprawny?


Kup gotowca - zaoszczędzisz czas, a czas to tez €

1 Like

Pewnie tak zrobię, bo monitor i okno w domu już są zagrożone zniszczeniem w wyniku agresji ;).

Świetny bryk o twojej płytce ESP32 (znanej też czasem jako ESP32 devkit v1)

a tu jej prawdopodobny schemat


źródło
o ile się nie myliłem co do tego, że LED jest na GPIO2, to myliłem się w kwestii jego sterowania stanem niskim, jakkolwiek po prostu zajrzyj do bryka i unikaj wszelkich pinów nie oznaczonych na zielono.
edit
ta płytka ma nawet własną definicję esp32doit-devkit-v1, w której jedynym… aliasem jest LED wskazujący właśnie na GPIO2

Nie ma czegoś takiego jak domyślna konfiguracja, chyba że mówisz o “pustym YAMLu” (tzn. nie takim całkiem pustym tylko wygenerowanym z kreatora)

Czesc koledzy, @_Szczepan. Probuje zintegrowac dongla z Twoim softem do openhaba, mam tam dodatek ESPhome niby, ktory probuje sie polaczyc do urzadzenia po API: 6053 ale na tej jak rozumiem wersji softu to API nie jest wlaczone. Zasadniczo moge recznie skonfigurowac i wystarczy mi wysylanie odczytow na mqtt. Jak tu postapic z takim donglem ?

Jakiego dongla?
Moj komponent jest na ESPHome wiec co w YAMLu dasz to bedzie zalaczone.

chyba takiego
https://community.openhab.org/t/esphome-binding-for-the-native-api-4-0-0-5-0-0/146849/398

Ty decydujesz, jeśli skompilowałeś wsad z tamtego YAMLa
to w tym fragmencie włączasz połączenie API z szyfrowaniem

# Enable Home Assistant API
api:
  encryption:
    key: "eDNPgLXatKFNoUix14VnAxQ4o+e8YnZVWADNU92wRvo="

Szczerze mówiąc, to nie sądzę, aby sensory mogły być przykładowe, raczej musisz mieć jakąś działającą konfigurację na wstępie, ale jeśli chcesz dojść do tego metodą prób i błędów, to raczej uruchom na firmware ESPHome coś znacznie prostszego (dioda led z przełącznikiem, czy jakiś natywny czujnik temperatury).

Każdy wbudowany komponent ma swoją dokumentację

przykładowo tu opis api

Hej dzieki, faktycznie
1/ Yaml z poprawnym api key zadzialal - w openhabie wtedy sie podaje rowniez w pluginie apikey
2/ Kanaly w Openhabie (sensory) wykryly sie dopiero po wpisaniu ID liczniak w yamla i po zdekodowaniu telegramu do pol.
Takze od reki w zasadzie integruje sie nie tylko z ha ale tez openhabem,
jedyna filozofia to jakis docker z esphome aby edytowac i kompilowac
Dzieki, jeszcze raz super robota

1 Like

Tak to jest zaprojektowane.

Wiem że V4 to już prawie wątek archiwalny, ale chciałbym dopytać o jedną rzecz. Czasem w logach pojawia się komunikat “Received T1 A frame” i nic więcej, żadnego telegramu. Co ten komunikat konkretnie oznacza? Że coś odebrał, ale nie wie co? Niekompletna ramka, albo słaby sygnał?

Taki komunikat oznacza że odebrano ileś bajtów, które wyglądają na ramkę T1 (albo C1). Ilość transmitowanych bajtów oraz typ (T vs C) jest zapisana na samym początku.

Po odebraniu przechodzimy do kolejnych kroków:

  • kontrola CRC
  • dekodowanie 3z6 (tylko dla ramek T1)
    Jak któryś z tych kroków zgłosi błąd wtedy telegram nie jest przekazywany dalej.
1 Like

Dzień dobry.
Po aktualizacji ESPHome z wersjo 2025.6.3 do 2025.7 na ESP32 C3 mam brak odczytów.
Układ ma komunikacje ale w logach mam tylko takie informacje:
INFO Upload took 15.39 seconds, waiting for result…
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 172.20.1.233 using esphome API
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 2.158s
WARNING Can’t connect to ESPHome API for esp32c3 @ 172.20.1.233: Handshake timed out after 30.0s (TimeoutAPIError)
INFO Trying to connect to esp32c3 @ 172.20.1.233 in the background
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.001s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 4.136s
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 3.144s
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 1.083s

Czy to oznaka braku pamięci.
Pozdrawiam

A YAML jaki masz? Popraw formatowanie logów.

Formatowanie logów mam tak:

Enable logging

logger:
level: VERBOSE

sync_mode: True
all_drivers: false
log_all: True
czy dam DEBUG, VERY_VERBROSE, VERBROSE
mam skompe logi
INFO Upload took 14.36 seconds, waiting for result…
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 172.20.1.233 using esphome API
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 4.206s
WARNING Can’t connect to ESPHome API for esp32c3 @ 172.20.1.233: Handshake timed out after 30.0s (TimeoutAPIError)
INFO Trying to connect to esp32c3 @ 172.20.1.233 in the background
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 5.254s
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 3.237s
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 0.008s
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s

Zrozumiałem chodzi aby zgłaszany błąd był napisany przejrzyście:

# Enable logging
logger:
  level: VERY_VERBOSE

oraz

 sync_mode: True
  all_drivers: false
  log_all: True

zrzut logów

INFO ESPHome 2025.7.0
INFO Reading configuration /config/esphome/esp32c3.yaml...
INFO Updating https://github.com/SzczepanLeon/esphome-components.git@version_4
INFO Detected timezone 'Europe/Warsaw'
WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from 172.20.1.233 using esphome API
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
WARNING Can't connect to ESPHome API for esp32c3 @ 172.20.1.233: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='172.20.1.233', port=6053))]: [Errno 111] Connect call failed ('172.20.1.233', 6053) (SocketAPIError)
INFO Trying to connect to esp32c3 @ 172.20.1.233 in the background
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.001s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.001s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 0.016s
ARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: Connection lost
INFO Successfully resolved esp32c3 @ 172.20.1.233 in 0.000s
INFO Successfully connected to esp32c3 @ 172.20.1.233 in 0.092s
WARNING esp32c3 @ 172.20.1.233: Connection error occurred: esp32c3 @ 172.20.1.233: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.7.0)
1 Like

Trochę za krótki te YAML.
Na pewno masz coś więcej.

Pewnie znowu w ESPHome były duże zmiany. Szczerze to nie mam czasu w wakacje sprawdzac co zmienili.

Polecam na chwilę obecną zostać przy starszej wersji.

Cały kod , zmieniłem tylko nr liczników

time:
  - platform: sntp
   # id: sntp_time
   # timezone: Europe/Warsaw
    servers:
     - 0.pool.ntp.org
     - 1.pool.ntp.org
     - 2.pool.ntp.org

external_components:
  - source: github://SzczepanLeon/esphome-components@version_4
    refresh: 0d
    components: [ wmbus ]

wmbus:
  mosi_pin: GPIO04
  miso_pin: GPIO03
  clk_pin:  GPIO02
  cs_pin:   GPIO05
  gdo0_pin: GPIO21
  gdo2_pin: GPIO20

  led_pin: GPIO0
  led_blink_time: "1s"

  frequency: 868.950
  sync_mode: True
  all_drivers: false
  log_all: True

sensor:
  - platform: wmbus
    meter_id: 0x06200000
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "ZW Kuchnia_RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "ZW Kuchnia_m3"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"

  - platform: wmbus
    meter_id: 0x06060000
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "CW Kuchnia_RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "CW Kuchnia_m3"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
  - platform: wmbus
    meter_id: 0x0620000
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "ZW Łazienka_RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "ZW Łazienka_m3"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
  - platform: wmbus
    meter_id: 0x06050000
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "CW Łazienka_RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "CW Łazienka_m3"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"