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

Klikasz sobie tu


i wyświetli się historia
da93cbe którą widać na lewo od ramki to aktualna wersja, każda wcześniejsza ma inny hasz

chyba nie chcesz wiedzieć jaki branch (bo to version_4)

1 polubienie

Podpowiedzcie jeszcze jak ogarnąć temat ładowania wszystkich driverów w V4?
Próbowałem na różnych wersjach Esphome i doopa, kompiluje wszystkie, mimo wyraźnego zaznaczenia

all_drivers: False

na ESPHome 2025.9.3 nie ładuje wszystkich sterowników, na wyższych ładuje.

Cześć mam problem z samym załadowaniem softu do ESP32

Mam poniższą konfigurację:

name: licznik-wody-full
  friendly_name: Licznik_Wody_FULL

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

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

# Enable logging
logger:
  level: DEBUG

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

ota:
  - platform: esphome
    password: ""

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Licznik-Wody-Full"
    password: ""

captive_portal:

i niestety “sypie” mi poniższym błędem:

HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - contrib-piohome @ 3.4.4 
 - framework-espidf @ 3.50502.0 (5.5.2) 
 - tool-cmake @ 4.0.3 
 - tool-esp-rom-elfs @ 2024.10.11 
 - tool-esptoolpy @ 5.1.0 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.13.1 
 - tool-scons @ 4.40801.0 (4.8.1) 
 - toolchain-xtensa-esp-elf @ 14.2.0+20251107
Reading CMake configuration...
-- Found Git: /usr/bin/git (found version "2.39.5")
-- git rev-parse returned 'fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).'
-- Minimal build - OFF
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is GNU
-- Found assembler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc - broken
-- Configuring incomplete, errors occurred!

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler

    "/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-K70bWt'
    
    Run Build Command(s): /data/cache/platformio/packages/tool-ninja/ninja -v cmTC_ca503
    [1/2] /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_ca503.dir/testCCompiler.c.obj -c /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-K70bWt/testCCompiler.c
    FAILED: [code=1] CMakeFiles/cmTC_ca503.dir/testCCompiler.c.obj 
    /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_ca503.dir/testCCompiler.c.obj -c /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-K70bWt/testCCompiler.c
    xtensa-esp-elf-gcc: fatal error: cannot execute 'cc1': posix_spawnp: No such file or directory
    compilation terminated.
    ninja: build stopped: subcommand failed.
    
    



  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  /data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:589 (__project)
  CMakeLists.txt:3 (project)



========================= [FAILED] Took 17.73 seconds =========================

byłbym wdzięczny za pomoc i naprowadzenie co może być nie tak.

Spróbuj z arduino , po tym zabiegu wymagany clean bulid.

esp32:
  board: esp32dev
  framework:
    type: arduino  # <-- Zmień z esp-idf na arduino

Cześć,

dzięki za radę z tym próbowałem na początku niestety bezskutecznie :frowning:

HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - contrib-piohome @ 3.4.4 
 - framework-arduinoespressif32 @ 3.3.5 
 - framework-arduinoespressif32-libs @ 5.5.0+sha.9bb7aa84fe 
 - framework-espidf @ 3.50502.0 (5.5.2) 
 - tool-cmake @ 4.0.3 
 - tool-esp-rom-elfs @ 2024.10.11 
 - tool-esptoolpy @ 5.1.0 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.13.1 
 - tool-scons @ 4.40801.0 (4.8.1) 
 - toolchain-xtensa-esp-elf @ 14.2.0+20251107
Reading CMake configuration...
-- Found Git: /usr/bin/git (found version "2.39.5")
-- git rev-parse returned 'fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).'
-- Minimal build - OFF
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is GNU
-- Found assembler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc - broken
-- Configuring incomplete, errors occurred!

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler

    "/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-d1Cwwj'
    
    Run Build Command(s): /data/cache/platformio/packages/tool-ninja/ninja -v cmTC_98c98
    [1/2] /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_98c98.dir/testCCompiler.c.obj -c /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-d1Cwwj/testCCompiler.c
    FAILED: [code=1] CMakeFiles/cmTC_98c98.dir/testCCompiler.c.obj 
    /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_98c98.dir/testCCompiler.c.obj -c /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-d1Cwwj/testCCompiler.c
    xtensa-esp-elf-gcc: fatal error: cannot execute 'cc1': posix_spawnp: No such file or directory
    compilation terminated.
    ninja: build stopped: subcommand failed.
    
    



  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  /data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:589 (__project)
  CMakeLists.txt:3 (project)



========================= [FAILED] Took 18.52 seconds =========================

Zaraz, zaraz, ale coś się tu nie zgadza - komponent v4 i wcześniejsze → arduino a v5 (lub IoTLabs, ale nie CC1101) → esp-idf

i co to w ogóle jest na początku YAMLa…

możesz wkleić cały a nie jakieś urywki?

A dlaczego nie? Jakiś support dla CC jest.

Ale mnóstwo postów, że nie działa, a sprzętu z CC1101 teraz nie mam (ani czasu na zabawę)…

Ja mam dokładnie tak samo :slight_smile:

v4 SX itp też ma mnóstwo podobnych postów :slight_smile:

Całość kodu yaml poniżej:

esphome:
  name: licznik-wody-full
  friendly_name: Licznik_Wody_FULL

esp32:
  board: esp32dev
  framework:
    type: arduino


# Enable logging
logger:
  level: DEBUG

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

ota:
  - platform: esphome
    password: "xxxxxx"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Licznik-Wody-Full"
    password: "BDRj2FkAeJYI"

captive_portal:

time:
  platform: sntp
  id: time_sntp

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

wmbus:
  mosi_pin: GPIO23
  miso_pin: GPIO19
  clk_pin:  GPIO18
  cs_pin:   GPIO15
  gdo0_pin: GPIO4
  gdo2_pin: GPIO27

  all_drivers: False
  log_all: False

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

Wiem że wersja V5 nie wspiera CC1101 dlatego chciałbym wykorzystać V4
Przy próbie wgrania całego kodu mam poniższy błąd

INFO ESPHome 2026.1.5
INFO Reading configuration /config/esphome/licznik-wody-full.yaml...
INFO Detected timezone 'Europe/Warsaw'
WARNING GPIO15 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/#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 11 (registered: api=4, captive_portal=4, mdns=2, ota=1)
INFO Compiling app... Build path: /data/build/licznik-wody-full
Processing licznik-wody-full (board: esp32dev; framework: arduino, espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.35/platform-espressif32.zip)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - contrib-piohome @ 3.4.4 
 - framework-arduinoespressif32 @ 3.3.5 
 - framework-arduinoespressif32-libs @ 5.5.0+sha.9bb7aa84fe 
 - framework-espidf @ 3.50502.0 (5.5.2) 
 - tool-cmake @ 4.0.3 
 - tool-esp-rom-elfs @ 2024.10.11 
 - tool-esptoolpy @ 5.1.0 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.13.1 
 - tool-scons @ 4.40801.0 (4.8.1) 
 - toolchain-xtensa-esp-elf @ 14.2.0+20251107
Warning: the 'src_filter' option cannot be used with ESP-IDF. Select source files to build in the project CMakeLists.txt file.

Reading CMake configuration...
-- git rev-parse returned 'fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).'
-- Minimal build - OFF
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is GNU
-- Found assembler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc - broken
-- Configuring incomplete, errors occurred!

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-4.0/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler

    "/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-bCtxaz'
    
    Run Build Command(s): /data/cache/platformio/packages/tool-ninja/ninja -v cmTC_4dc14
    [1/2] /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_4dc14.dir/testCCompiler.c.obj -c /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-bCtxaz/testCCompiler.c
    FAILED: [code=1] CMakeFiles/cmTC_4dc14.dir/testCCompiler.c.obj 
    /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_4dc14.dir/testCCompiler.c.obj -c /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/CMakeFiles/CMakeScratch/TryCompile-bCtxaz/testCCompiler.c
    xtensa-esp-elf-gcc: fatal error: cannot execute 'cc1': posix_spawnp: No such file or directory
    compilation terminated.
    ninja: build stopped: subcommand failed.
    
    



  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  /data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:589 (__project)
  CMakeLists.txt:3 (project)



========================= [FAILED] Took 11.92 seconds =========================

Chciałem na początku pominąć kompletnie obsługę modułu CC1101 dlatego chciałem wgrać mojego ESP kod yaml zamieszczony powyżej.

Czyli co konkretnie??

Bo ten yaml z posta wyżej (po wyrzuceniu szyfrowania api, bo nie wiem po jaką cholerę ukryłeś iksami losowy klucz, który nie jest nie jest żadnymi danymi wrażliwymi) u mnie się kompiluje bez zająknięcia (ale arduino, to trwa wieki)

RAM:   [=         ]  14.0% (used 45840 bytes from 327680 bytes)
Flash: [========= ]  92.0% (used 1689055 bytes from 1835008 bytes)
Building .pioenvs/licznik-wody-full/firmware.bin
Creating ESP32 image...
Successfully created ESP32 image.
merge_factory_bin([".pioenvs/licznik-wody-full/firmware.bin"], [".pioenvs/licznik-wody-full/firmware.elf"])
Info: bootloader.bin not found - skipping
Info: partition-table.bin not found - skipping
Info: ota_data_initial.bin not found - skipping
Info: licznik-wody-full.bin not found - skipping
Using FLASH_EXTRA_IMAGES from PlatformIO environment
Merging binaries into /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/firmware.factory.bin
Merging binaries with esptool
SHA digest in image updated.
Wrote 0x1ac770 bytes to file '/data/build/licznik-wody-full/.pioenvs/licznik-wody-full/firmware.factory.bin', ready to flash to offset 0x0.
Successfully created /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/firmware.factory.bin
esp32_copy_ota_bin([".pioenvs/licznik-wody-full/firmware.bin"], [".pioenvs/licznik-wody-full/firmware.elf"])
Copied firmware to /data/build/licznik-wody-full/.pioenvs/licznik-wody-full/firmware.ota.bin
======================== [SUCCESS] Took 737.13 seconds ========================
INFO Build Info: config_hash=0x04bbe62f build_time_str=2026-02-15 15:59:17 +0100
INFO Successfully compiled program.

czy wykonałeś clean build files (lub clean all) przed kompilacją związaną ze zmianą frameworka z esp-idf na arduino?

Rabie Clean-a za każdym razem gdy próbuje wgrać program lub nawet utworzyć plik do wgrania na innej maszynie.

Może to wina mojej wersji ESPHome ? Ja mam 2026.1.5

Próbowałem na 2 rożnych ESP 32 i za każdym razem mam ten sam zestaw błędów.

Zaraz, ale odróżnijmy 2 kwestie - ewentualne błędy kompilacji nie mają nic wspólnego ze sprzętem, na który planujesz wgrać wsad, tylko z zawartością YAMLa

Skomilowałem wsad z dokładnie takiego YAMLaw w ESPHome 2026.1.5

esphome:
  name: licznik-wody-full
  friendly_name: Licznik_Wody_FULL

esp32:
  board: esp32dev
  framework:
    type: arduino


# Enable logging
logger:
  level: DEBUG

# Enable Home Assistant API
api:


ota:
  - platform: esphome
    password: "xxxxxx"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Licznik-Wody-Full"
    password: "BDRj2FkAeJYI"

captive_portal:

time:
  platform: sntp
  id: time_sntp

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

wmbus:
  mosi_pin: GPIO23
  miso_pin: GPIO19
  clk_pin:  GPIO18
  cs_pin:   GPIO15
  gdo0_pin: GPIO4
  gdo2_pin: GPIO27

  all_drivers: False
  log_all: False

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

oczywiście nie testowałem czy wsad działa, bo nie mam sprzętu

a takie pytanie z innej beczki - na jakiej maszynie to kompilujesz?

Ale u mnie walidacja przechodzi bez żadnego błędu. Problem się robi w momencie kiedy chce to zainstalować na module.

Moje HA stoi na Dell Wyse.

to nie jest walidacja tylko kompilacja i pokazałeś błędy w trakcie kompilacji, tam jeszcze daleko do flaszowania wsadu
odinstaluj Dodatek ESPHome i zainstaluj ponownie

fajnie, a jakieś szczegóły? - 2GB RAMu?

RAMU 4GB.

Instaluje tą nowszą bete i zobaczę czy coś się zmieni.

Nie wydaje mi się aby beta coś poprawiła raczej może popsuć.

Ne Becie zaczęło się chociaż compilować.

In file included from src/esphome/components/wmbus/rf_cc1101.h:9,
                 from src/esphome/components/wmbus/rf_cc1101.cpp:1:
src/esphome/components/wmbus/cc1101_rf_settings.h:3:10: fatal error: ELECHOUSE_CC1101_SRC_DRV.h: No such file or directory

****************************************************************************************
* Looking for ELECHOUSE_CC1101_SRC_DRV.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ELECHOUSE_CC1101_SRC_DRV.h"
* Web  > https://registry.platformio.org/search?q=header:%1B%5Bm%1B%5BKELECHOUSE_CC1101_SRC_DRV.h
*
****************************************************************************************

    3 | #include <ELECHOUSE_CC1101_SRC_DRV.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvs/licznik-wody-full/src/esphome/components/wmbus/rf_cc1101.cpp.o] Error 1
======================== [FAILED] Took 1223.69 seconds ========================

Niestety ale widać że ma jakiś problem z CC1101

I pokażesz YAMLa do kompletu?
bo nie wydaje mi się że jest taki sam jak się kompiluje u mnie…

Ma problem z biblioteką, a nie ze sprzętem który sobie połączyłeś z ESP…

to co opisujesz jest typowe dla frameworka esp-idf, a twierdzisz, że masz arduino