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

przyczynę cyklicznych restartów masz prawdopodobnie tu (wydaje się że nie dodałeś urządzenia do HA lub masz niepoprawnie skonfigurowane ustawienia sieci LAN

WARNING Can't connect to ESPHome API for esp32c3 @ 192.168.3.241: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.3.241', port=6053))]: [Errno 113] Connect call failed ('192.168.3.241', 6053) (SocketAPIError)

Pokaż cały YAML i w paru zdaniach opisz konfigurację LAN (z wszelkimi konkretami potrzebnymi dla diagnostyki)

to jest konfiguracja YAML
dałem jeden licznik ogólne mam 4 liczniki na wodę ( nie wiem czemu nie chce mi prawidłowo wyczernić konfiguracji w ``")

esphome:
  name: esp32c3
  friendly_name: esp32c3
  

esp32:
  board: esp32dev
  framework:
    type: esp-idf
    
external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d       
# Enable logging
logger:
  id: component_logger
  level: DEBUG


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

ota:
  - platform: esphome
  #- platform: web_server
    password: "kaslo"
web_server:
  version: 3 
wifi:
  networks: 
   - ssid: "P1P"
     password: "haslo"
  manual_ip:
    static_ip: "192.168.3.241"
    gateway: "192.168.3.1"
    subnet: "255.255.255.0"
  
  ap:
    ssid: "Esp32C3 Fallback Hotspot"
    password: "haslo"

captive_portal:
  

time:
  - platform: homeassistant
spi:
  mosi_pin: GPIO04
  miso_pin: GPIO03
  clk_pin:  GPIO02
  

wmbus_radio:
  radio_type: SX1276
  cs_pin:   GPIO05
  reset_pin: GPIO00
  irq_pin: GPIO01

 
wmbus_meter:
  - id: ZW_Kuchnia_m3
    meter_id: 0x06208267
    type: apator162
    key: "00000000000000000000000000000000"
 
sensor:
  - platform: wmbus_meter
    parent_id: ZW_Kuchnia_m3
    field: total_m3
    device_class: water
    name: "ZW Kuchnia_m3"
    accuracy_decimals: 3
    state_class: total_increasing
    unit_of_measurement: "m³"
    icon: "mdi:water"

Nie ma takiego brancha jak version_5 jest za to main poza tym kod ogólnie wygląda poprawnie (ale w ramach testów wywaliłbym z niego webserwer i kod dla wyświetlacza), o ile nie ma błędów w pinologii (ale nie widzę), swoją drogą przykład w dokumentacji komponentu jest właśnie pod taką płytkę.

3 apostrofy odwrotne, a nie jeden (i to koniecznie w osobnej linii niż sam kod, zobacz jak poprawiłem)

Jeśli konfigurujesz statyczne IP to musisz zadbać, aby nie były w konflikcie z czymś innym w sieci i dodać ręcznie urządzenie ESPHome do Integracji w HA. Masz router Mikrotika?

Czemu nie korzystasz z domyślnych krosowań SPI w MCU (niby nieobowiązkowe, ale magistrala SPI zwykle działa lepiej, gdy się korzysta z domyślnych pinów)

GPIO 4 = CLK
GPIO 5 = MISO
GPIO 6 = MOSI
GPIO 7 = CS
GPIO 2 = nie używać (straping pin)
GPIO 8 i 9 dla I2C (jeśli planujesz używać, a to też straping piny więc w innych zastosowaniach pomiń)

ESP przeniosłem z jednej sieci do drugiej i może to być problem, iż HA nie do końca autoryzuje ESPHome. Nie mam Mikrotika używam na satelitach ZMD286D a jako główny T56
Wieczorem sprawdzę w domu

Usuń z integracji i dodaj ponownie.
Jeśli nie da się dodać, to masz źle skonfigurowaną sieć, sieci Mesh to jest często strzał w kolano.

wieczorem sprawdzę i napiszę co i jak, nie mam Mesh w domu

w takim razie co rozumiesz jako satelity

No ja nie wiem.
Wywala, że to ma być jakiś zestaw, a nie że prtoblem ze spacjami.
Czy ktoś może mi dac ten kawałek kodu, ze spacjami, aby się wkleił i nie było błędu ??

Spacje decydują czy to jest “zestaw” (lub skopana składnia), bo spacje są najważniejszym znakiem sterującym w YAMLu, ale linter raczej nie jest w stanie napisać “dodaj tu 2 spacje” tylko serwuje informację co zwaliłeś składniowo.

to jak ma wyglądać ten kawaełk kodu ? Bo kombinuję na wszystkie strony i nic.

Jeśli wkleisz swojego całego YAMLa, a nie obrazki, to może ktoś kiedyś się tym zajmie na poważnie, bo z obrazków raczej nikt nie będzie przepisywał, może w komponencie od @_Szczepan jest jakiś błąd? (w ogóle takiej sekcji wmbus_common: nie widzę w dokumentacji).


edit - istotnie jest chyba jakiś błąd - przygotowałem sobie testową konfigurację na bazie tego YAMLa

i niestety sugerowana tam konstrukcja

wmbus_common:
    drivers:
      - apator162
      - amiplus

się nie daje skompilować, możesz więc spróbować tak (instalując zbędne drivery

wmbus_common:
  drivers: all

PS jest nawet issue jak na razie bez odpowiedzi

Wcześniej wkleiłem kawałek kodu który się sypie

A to *common wziąłem stąd

Rozumiem, ż eto jest po to, aby podczas kompilacji nie ładowało mi 99% niepotrzebnych mi driverów.

kod.yaml (3.3 KB)

Olej narazie - jest bug do poprawy w kodzie.

1 polubienie

Chłopie… kilka dni temu, a tymczasem w wątku było już kilka nowszych problemów i się jakoś nie dokopałem do sensownych twoich informacji.

Swoją drogą patrz wyżej, sprawdzenie czegoś takiego nie zajmuje zerowego czasu.

niżej test czy można to wstawić normalnie do posta (jako kod)

# For more information please visit: https://github.com/SzczepanLeon/esphome-components
# There is also SUPLA fw available:
#    https://github.com/wM-Bus/UltimateReader/releases/tag/supla-25.02-0.0.1
# If you want, you can buy me a coffee:
#     https://www.buymeacoffee.com/szczepan
#     https://buycoffee.to/szczepanleon

substitutions:
  name: "ultimatereader"
  friendly_name: "Ultimate Reader"


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
esphome:
  name: "${name}"
  friendly_name: "${friendly_name}"
  name_add_mac_suffix: true
  project:
    name: wmbus.UltimateReader
    version: "1.2.5"

esp32:
  board: lilygo-t3-s3
  framework:
    type: esp-idf

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

# dashboard_import:
#   package_import_url: github://SzczepanLeon/esphome-components/UltimateReader_v5.yaml@main
#   import_full_config: true

logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200

psram:

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

captive_portal:

time:
  - platform: homeassistant

api:

ota:
  - platform: esphome

web_server:
  version: 3 

spi:
  clk_pin:
    number: GPIO5
  mosi_pin: GPIO6
  miso_pin:
    number: GPIO3
    ignore_strapping_warning: true

debug:
  update_interval: 5s

wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO7
  reset_pin: GPIO8
  irq_pin: GPIO33
  on_frame:
    - then:
        - logger.log:
            format: "RSSI: %ddBm T: %s (%d) %s"
            args: [ frame->rssi(), frame->as_hex().c_str(), frame->data().size(), toString(frame->link_mode()) ]
    - then:
        - repeat:
            count: 3
            then:
              - output.turn_on: status_led
              - delay: 70ms
              - output.turn_off: status_led
              - delay: 70ms

wmbus_common:
#    drivers: all
    # or specify specific drivers
#  drivers:
#  - izar

#      - apator162
#      - amiplus

output:
  - platform: gpio
    id: status_led
    pin:
      number: GPIO37

wmbus_meter:
## Define meter
  - id: water_meter
    meter_id: 0x0001D08F
    type: izar

sensor:
## Create sensor for 'water_meter' for field 'total_m3'
  - platform: wmbus_meter
    parent_id: water_meter
    field: total_m3
    name: Izar water meter total m3
    accuracy_decimals: 3
    unit_of_measurement: "m³"
    device_class: "water"
    state_class: "total_increasing"
    icon: "mdi:water"

  - platform: wifi_signal
    name: "WiFi Signal RSSI dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy
    source_id: wifi_signal_db
    name: "WiFi Signal %"
    filters:
      - lambda: return {min(max(2 * (x + 100.0), 0.0), 100.0)};
    unit_of_measurement: "%"
    entity_category: "diagnostic"

  - platform: internal_temperature
    name: "Internal Temperature"

  - platform: debug
    free:
      name: "Heap Free"
    loop_time:
      name: "Loop Time"

  - platform: uptime
    type: seconds
    name: Uptime

text_sensor:
## Text sensor with alarms
  - platform: wmbus_meter
    parent_id: water_meter
    field: current_alarms
    name: Water Meter alarms

  - platform: debug
    reset_reason:
      name: "Reset Reason"

jak widać można…

No błąd jest chyba tu

Nie wiem czy espohome osbsługuje wprost set-y w walidacji.

Chciałem sobie ustawić jeden sterownik, bo na razie bawię się konfiguracją, a kompilacja za każdym razem trwa wieki. Z jednym sterownikiem byłoby lepiej.
No nic - poczekam na jakiś fix i wi międzczasie się pobawię.

może taki fix pomoże:

cv.Optional(CONF_DRIVERS, default=set()): cv.All(
    lambda x: AVAILABLE_DRIVERS if x == "all" else x,
    cv.ensure_list(validate_driver),
    set,
),

?

jaki masz kod by złapać te ramke? nie mam nigdzie meter id a łape jakieś dane
w wersji 4 jest to fajnie opisane na github
wmbus:
all_drivers: True
log_all: True

a do wersji 5 za cholere nie wiem jak to ogarnąć, brak informacji na ten temat

a taka nakładka na gazomierz jest może obsługiwana? https://www.intergaz.eu/wp-content/uploads/2025/06/Instrukcja-obslugi-IGAZ-BK-2025-05.pdf to niby jakiś protokół smart-gas

do głównego routera mam podłączone 3 routery połączone po wireguard (ja nazywam satelity)
teraz skompilowałem i podłączyłem w sieci w której ESP32 c3 było kompilowane od początku.
w podglądzie consoli mam
invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff
a w logach esphome
INFO ESPHome 2025.8.2 INFO Reading configuration /config/esphome/esp32c3.yaml... INFO Updating https://github.com/SzczepanLeon/esphome-components.git@main 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 WARNING GPIO5 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 WARNING GPIO0 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.133 using esphome API INFO Successfully resolved esp32c3 @ 172.20.1.133 in 0.000s WARNING Can't connect to ESPHome API for esp32c3 @ 172.20.1.133: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='172.20.1.133', port=6053))]: [Errno 113] Connect call failed ('172.20.1.133', 6053) (SocketAPIError) INFO Trying to connect to esp32c3 @ 172.20.1.133 in the background INFO Successfully resolved esp32c3 @ 172.20.1.133 in 0.000s INFO Successfully resolved esp32c3 @ 172.20.1.133 in 0.000s INFO Successfully resolved esp32c3 @ 172.20.1.133 in 0.000s INFO Successfully resolved esp32c3 @ 172.20.1.133 in 0.000s

To raczej odnosi się do flashowania, lub źle skonfigurowane piny.