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

Czyli co mogę zrobić żeby zadziałało? Bo przecież działać powinno.

Teoretycznie Ty nic nie możesz zrobić - nie jesteś autorem komponentu.
A praktycznie to przejść na wersje V5 i zobaczyć czy to coś zmieni.
Lub zakupić nowszy hardware ( SX1276/SX1262 jako gotowe płytki ) a następnie wybrać jedno z 3-ech software które jest na Forum.

1 polubienie

Ale wodomierze Apator 16-2 to żadna nowość, są użytkownicy którzy u używają tego od dawna z powodzeniem, to dlaczego u mnie akurat nie działa?

Napisałem Ci wcześniej - logika komponentu sobie z tym nie radzi i dopóki autor tego nie poprawi to nic z tym nie zrobisz.

posiadam takowy wynalazek który działał sobie ponad 2 lata. Jednak pewnego dnia zapragnąłem zmienić jeną nakładkę na liczniku i musiałem w związku z tym przeedytować kod. Plik się ładnie skompilował ale niestety po wgraniu czytnik się resetuje. Dodam że wcześniej aktualizowałem w miarę na bieżąco ESPHome ale zatrzymałem się na wersji 2025.12 a teraz po uaktualniieniu do 2026.4 taki problem. Co może być przyczyną?

Taki log po wgraniu:

[10:43:54]     01 99 00390000 00001000
[10:43:54]I (90) boot:  5 spiffs           Unknown data     01 82 00391000 0000f000
[10:43:54]I (97) boot:  6 nvs              WiFi data        01 02 003a0000 00060000
[10:43:54]I (103) boot: End of partition table
[10:43:54]I (107) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=64a6ch (412268) map
[10:43:54]I (255) esp_image: segment 1: paddr=00074a94 vaddr=3ffb0000 size=04130h ( 16688) load
[10:43:54]I (261) esp_image: segment 2: paddr=00078bcc vaddr=40080000 size=0744ch ( 29772) load
[10:43:54]I (273) esp_image: segment 3: paddr=00080020 vaddr=400d0020 size=134140h (1261888) map
[10:43:54]I (704) esp_image: segment 4: paddr=001b4168 vaddr=4008744c size=0bab4h ( 47796) load
[10:43:54]I (723) esp_image: segment 5: paddr=001bfc24 vaddr=50000000 size=00020h (    32) load
[10:43:54]I (733) boot: Loaded app from partition at offset 0x10000
[10:43:54]I (733) boot: Disabling RNG early entropy source...
[10:43:54]Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
[10:43:54]
[10:43:54]Core  0 register dump:
[10:43:54]PC      : 0x400db32b  PS      : 0x00060130  A0      : 0x80151718  A1      : 0x3ffe39e0  
[10:43:54]A2      : 0x00000000  A3      : 0x00000001  A4      : 0x3f41db69  A5      : 0x000000aa  
[10:43:54]A6      : 0x3f41e88f  A7      : 0x00000000  A8      : 0x00000000  A9      : 0x3ffe3a40  
[10:43:54]A10     : 0x000000ff  A11     : 0x3ffbdfb0  A12     : 0x00000003  A13     : 0x00000040  
[10:43:54]A14     : 0x00000006  A15     : 0x00000006  SAR     : 0x00000020  EXCCAUSE: 0x0000001c  
[10:43:54]EXCVADDR: 0x0000002c  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff  
[10:43:54]
[10:43:54]
[10:43:54]Backtrace: 0x400db328:0x3ffe39e0 0x40151715:0x3ffe3a30 0x4014cd7d:0x3ffe3a60 0x4014467d:0x3ffe3ac0 0x40129f71:0x3ffe3bf0 0x40174b2e:0x3ffe3c30 0x40081e76:0x3ffe3c60 0x40079826:0x3ffe3c90 |<-CORRUPTED
[10:43:54]
[10:43:54]
[10:43:54]
[10:43:54]
[10:43:54]ELF file SHA256: 0aa387b61
[10:43:54]
[10:43:54]Rebooting...

A to kod:

esp32:
  board: nodemcu-32s
  framework:
    type: arduino

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

time:
 - platform: sntp
   id: time_sntp

logger:
  level: debug

# Enable Home Assistant API
api:
  encryption:
    key: "sUO24ieOeOOhQoeaYGq+ESZn57bX+4xwnbc6ZytrOwg="

ota:
  - platform: esphome

wifi:
  ssid: "H"
  password: "a"
  power_save_mode: none
  fast_connect: true
  reboot_timeout: 10min
  manual_ip:
    static_ip: 192.168.8.150
    gateway: 192.168.8.1
    subnet: 255.255.255.0
    dns1: 192.168.8.1
  ap:
    ssid: "WMBUS Reader - Fallback Hotspot"
    password: "12345678"

captive_portal:

web_server:
  port: 80
  version: 2

wmbus:
  mosi_pin: GPIO32
  clk_pin: GPIO33
  miso_pin: GPIO19
  gdo2_pin: GPIO21
  gdo0_pin: GPIO22
  cs_pin: GPIO23
  log_all: false
  led_pin: GPIO2
  led_blink_time: "1s"
  sync_mode: true
  all_drivers: false

sensor:
  - platform: wmbus
    meter_id: 0x00506001
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "RSSI - WODA 1"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "woda1"
        id: woda1_total
        field: "total"
        filters:
          - offset: -161.105
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"                      
  - platform: wmbus
    meter_id: 0x0469427
    type: apator162
    key: "00000000000000000000000000000000"
    sensors:
      - name: "RSSI - WODA 2"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "woda2"
        id: woda2_total
        field: "total"
        filters:
          - offset: 55.359
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"           

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

Winowajcą jest najprawdopodobniej niekompatybilność zewnętrznego komponentu wmbus z nową wersją ESPHome. Wersja, którą masz wpiętą (version_4), mogła przestać współpracować z najnowszym frameworkiem, który ESPHome zaktualizował…

Spróbuj na esp-idf, albo przejdź na V5


Z tego co mi wiadomi V5 wspiera CC1101, ale dokumentacja nie pomaga: Jeden fragment mówi:

NOTE: Component with CC1101 support is here: version 4 version 3 version 2

A drugi:

  • Add configurable frequency for CC1101 (300–928 MHz, default 868.95 MHz)
  • Add CC1101 support with FIFO overflow handling and errata workaround

I trzeci:

For CC1101 radio, configure the SPI bus and specify the chip select and IRQ (GDO0) pins


Ale V5 na 100% nie obsługuje Arduino:

  • Migrate to esp-idf and drop Arduino!

Spróbuj zainstalować starsza wersję ESPHome (tę na której ostatnio kompilowałeś) i przekompiluj ponownie.
Miałem niedawno podobny przypadek z version_3. Opisałem to:
https://forum.arturhome.pl/t/komponent-wm-bus-do-esphome-szczepanleon-wersja-3-x-watek-ogolny
w dniu 22.04.2026

1 polubienie

A która wersja działa ? Bo ja mam v5 i musiałem pozostać na ostatniej kompilacji esphome 2026.3.3 bo na nowszej nie chciało mi działać. Niby kompiluje ale nie mam odczytów poźniej. I obecnie zatrzymałem się na 2026.3.3
Mój yaml:

substitutions:

  name: "ttgo-lora32-v21-b09428"

  friendly_name: 'wM-Bus'

  serial_prefix: 'esp' #Don't change it.




esphome:

  name: '${name}'

  friendly_name: '${friendly_name}'

  #name_add_mac_suffix: true

  comment: Bramka urządzeń wMBus

  on_boot:

    priority: -100

    then:

#      - output.turn_off: vext_output  #załączanie zasilania OLED

      - delay: 100ms 

#      - globals.set:

#          id: izar_from_memory

#          value: 'true'

      - globals.set:

          id: apator_from_memory1

          value: 'true'

      - globals.set:

          id: apator_from_memory2

          value: 'true'

#      - globals.set:

#          id: unismart_from_memory

#          value: 'true'

  

esp32:

  board: ttgo-lora32-v21

  framework:

    type: esp-idf

    version: recommended

     

external_components:

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

    refresh: 0d

    components:

    - socket_transmitter

    - wmbus_common

    - wmbus_radio

    - wmbus_meter

  

wifi:

  ssid: !secret wifi_ssid

  password: !secret wifi_password

  min_auth_mode: WPA2

  use_address: xx.xx.xx.xx

  fast_connect: true




    # Hotspot when can't connect to Local WiFi

  ap:

    ssid: "wmbus AP"

    password: "xxxxxxxxxxxxxxx"




logger: 

  level: DEBUG




# Enable Home Assistant API

api:

  encryption:

    key: !secret encryption_key




# Enable over-the-air updates

ota:

  platform: esphome

  password: !secret ota_password




# Serwer with a statistic data and OTA board update

web_server:

  port: 80

  version: 3

  auth:

    username: xxxxxx

    password: !secret web_server_password




captive_portal:




# Sets time from Homeassistant

time:

  - platform: homeassistant

    timezone: Europe/Warsaw

    id: homeassistant_time




output:

#  - platform: gpio

#    id: vext_output

#    pin: GPIO21

  - platform: gpio

    id: status_led

    pin: GPIO25




globals:

  - id: active_index

    type: int

    restore_value: no

    initial_value: '0'




##############Tutaj ustawiamy zmienne do zapisu ostatniego stanu licznika do pamięci urządzenia

#  # Izar

#  - id: saved_izar_value

#    type: float

#    restore_value: yes

#    initial_value: '0.0'

#  - id: izar_from_memory

#    type: bool

#    restore_value: yes

#    initial_value: 'true'




  # Apator 1

  - id: saved_apator_value1

    type: float

    restore_value: yes

    initial_value: '0.0'

  - id: apator_from_memory1

    type: bool

    restore_value: yes

    initial_value: 'true'




  # Apator 2

  - id: saved_apator_value2

    type: float

    restore_value: yes

    initial_value: '0.0'

  - id: apator_from_memory2

    type: bool

    restore_value: yes

    initial_value: 'true'




#  # Unismart

#  - id: saved_unismart_value

#    type: float

#    restore_value: yes

#    initial_value: '0.0'

#  - id: unismart_from_memory

#    type: bool

#    restore_value: yes

#    initial_value: 'true'




####################### Czas automatycznego przełączanie ekranu #########################

interval:

  - interval: 5s

    then:

      - lambda: |-

          id(active_index)++;

          if (id(active_index) >= 2) {   // liczba ekranów/wodomierzy

            id(active_index) = 0;

          }





binary_sensor:

#  - platform: gpio

#    pin: GPIO0

#    name: "Button Next Meter"

#    on_press:

#      then:

#        - lambda: |-

#            id(active_index) += 1;

#            if (id(active_index) >= 2) id(active_index) = 0;     //Tutaj ustawiamy ile jest liczników - w tym przypadku 3




  - platform: status

    name: Status

            

font:

  - file: 'fonts/Calibri-Regular.ttf'

    id: font1

    size: 16





i2c:          # I2C for OLED

  sda: 21

  scl: 22

  scan: true 




button:

  - platform: restart

    name: "Restart"

    id: reboot




# Sensors for ESP version and WIFI information

text_sensor:

  - platform: wifi_info

    ip_address:

      name: "IP"

      icon: mdi:ip-network

    ssid:

      name: "SSID"

      icon: mdi:wifi-star




spi:

  clk_pin:

    number: GPIO5

    ignore_strapping_warning: true

  mosi_pin: GPIO27

  miso_pin: GPIO19

  

wmbus_radio:

  radio_type: SX1276

  cs_pin: GPIO18

  reset_pin: GPIO23

  irq_pin: GPIO33

  on_frame:

    - then:

        - repeat:

            count: 1

            then:

              - output.turn_on: status_led

              - delay: 100ms

              - output.turn_off: status_led

              - delay: 100ms

            

wmbus_meter:

  - id: cold_water_meter

    meter_id: 0x00068526

    type: apator162

    key: "00000000000000000000000000000000"




  - id: warm_water_meter

    meter_id: 0x723107

    type: apator162

    key: "00000000000000000000000000000000"

    

sensor:

  - platform: wmbus_meter

    parent_id: cold_water_meter

    field: total_m3

    device_class: water

    name: Woda-cała

    accuracy_decimals: 3

    state_class: total_increasing

    unit_of_measurement: "m³"

    icon: "mdi:water"

    filters:

      offset: +1.222

    on_value:

      then:

        - lambda: |-

            if (abs(x - id(saved_apator_value1)) > 0.01f) {

              id(saved_apator_value1) = x;

            }

            id(apator_from_memory1) = false;  // ustaw na false za każdym razem, gdy jest nowa wartość

  - platform: wmbus_meter

    parent_id: cold_water_meter

    id: RSSI_licznik_woda_cala

    field: rssi_dbm

    name: RSSI licznika wody całej

    unit_of_measurement: "dBm"




  - platform: wmbus_meter

    parent_id: warm_water_meter

    field: total_m3

    device_class: water

    name: Woda ciepła

    accuracy_decimals: 3

    state_class: total_increasing

    unit_of_measurement: "m³"

    icon: "mdi:water"

    filters:

      offset: +0.137

    on_value:

      then:

        - lambda: |-

            if (abs(x - id(saved_apator_value2)) > 0.01f) {

              id(saved_apator_value2) = x;

            }

            id(apator_from_memory2) = false;  // ustaw na false za każdym razem, gdy jest nowa wartość

  - platform: wmbus_meter

    parent_id: warm_water_meter

    id: RSSI_licznik_woda_ciepla

    field: rssi_dbm

    name: RSSI licznika wody ciepłej

    unit_of_measurement: "dBm"




  - platform: wifi_signal

    name: 'WiFi Signal'

    update_interval: 60s

    accuracy_decimals: 0

  - platform: uptime

    name: 'Uptime'

    unit_of_measurement: d

    update_interval: 300s

    accuracy_decimals: 1

    filters:

      - multiply: 0.000011574

    

####################################WYŚWIETLACZ###################################################




display:

  - platform: ssd1306_i2c

    model: "SSD1306 128x64"

#    reset_pin: GPIO16

#    rotation: 180

    address: 0x3C

    lambda: |-

      struct MeterInfo {

        const char* name;

        const char* id_str;

        Sensor* rssi;

        float* value;

        bool* from_mem;

      };

      /////////// definiowanie liczników - tutaj dodajemy kolejne linie, jeśli chcemy dodać licznik

      MeterInfo meters[] = {

        {"Meter: Apator", "0x00068526", id(RSSI_licznik_woda_cala), &id(saved_apator_value1), &id(apator_from_memory1)},

        {"Meter: Apator", "0x723107", id(RSSI_licznik_woda_ciepla), &id(saved_apator_value2), &id(apator_from_memory2)},

      };





      /////////// opisy

      auto draw_counter = [&](const char* name, const char* id_str, float rssi, float stan, bool from_mem) {

        it.printf(0, 0, id(font1), "Dev: %d/2", id(active_index) + 1);

        it.printf(0, 16, id(font1), name);

        it.printf(0, 28, id(font1), "ID: %s", id_str);

        if (isnan(rssi))

          it.printf(0, 40, id(font1), "RSSI: --");

        else

          it.printf(0, 40, id(font1), "RSSI: %.0f dBm", rssi);

        if (from_mem)

          it.printf(0, 52, id(font1), "State*: %.3f m3", stan);

        else

          it.printf(0, 52, id(font1), "State: %.3f m3", stan);

      };





      // pobierz dane aktywnego licznika

      MeterInfo meter = meters[id(active_index)];

      draw_counter(meter.name, meter.id_str, meter.rssi->state, *(meter.value), *(meter.from_mem));

Nie wiem jak jest z v5 i CC1101.
Próbowałem na wersji 4 i miałem podobnie jak @super restarty co chwilę.
Szkoda mi było czasu na eksperymety.
Dlatego wróciłem do v3 i ESPHome 2025.10 - tu działa stabilnie.

1 polubienie

Tylko ja mam radio SX1276

To jaki masz problem?

[Komponent IoTLabs-pl wM-Bus do ESPHome]

mógłbyś podesłać swój kod pod wersję 3 bo przy kompilacji dużo błędów

Wrzucę szkic w wątku wersji 3, aby nie mieszać tematów.

1 polubienie

Cześć, podepnę się pod temat problemu z komponentem wmbus.
Mój sprzęt to Dell Wyse 5070 z HA 2026.5.4 na Proxmox.
Płytkę ESP32 mam już drugą, teraz dokładnie ESP32S v1.1 NODEMCU. Wcześniej ESP32 WiFi + BLE 4.2 płytka zgodna z DevKitC ESP-WROOM-32U ze złączem na antenę.

Podłączam do nich zieloną CC1101. Dodatkowo mam sensor DS18B20.

No i sensor temperatury działa bez przeszkód a z CC1101 nie umiem sobie poradzić.

Mój Yaml:

esphome:
  name: esp32piwnica
  friendly_name: esp32.piwnica

esp32:
  board: esp32dev
  framework:
    type: arduino
    advanced:
      minimum_chip_revision: "3.1"
      sram1_as_iram: True

# Enable logging
logger:
  level: VERY_VERBOSE

# Enable Home Assistant API
api:
  encryption:
    key: "/IpbYhCKgOwaxGm4XM+MQrz2Q9O3kN2Ai4ckNieAF5g="

ota:
  - platform: esphome
    password: "e3fb9sa4ecc59cf8dd2ec9abe30dfd27"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  output_power: 13dB

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32Piwnica Fallback Hotspot"
    password: "2cT4OUNKyK5R"
  manual_ip:
    static_ip: 192.168.1.68
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 192.168.1.1

time:
  - platform: sntp
    id: sntp_time

captive_portal:

# External component version_4 z CC1101
external_components:
  - source: github://SzczepanLeon/esphome-components@version_4
    refresh: 0d
    components: [ wmbus ]

# Piny dla CC1101
wmbus:
  mosi_pin: GPIO23   # MOSI
  clk_pin: GPIO18    # SCLK
  miso_pin: GPIO19   # MISO
  gdo2_pin: GPIO26   # GDO2
  gdo0_pin: GPIO27   # GDO0
  cs_pin: GPIO5    # CSN

  frequency: 868.950
  sync_mode: false
  log_all: false
  all_drivers: False

one_wire:
  - platform: gpio
    pin: 25
    id: one_wire_bus

sensor:
  - platform: dallas_temp
    one_wire_id: one_wire_bus
    address: 0x200000004089f628
    name: TemperaturaCWU
    id: TemperaturaCWU
    update_interval: 30s

  - platform: wmbus
    meter_id: 0x25308134
    type: izar
    key: "00000000000000000000000000000000"
    sensors:
      - name: "my hot water RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "my hot water"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
    

Do których pinów podpiąć użyłem AI, Claude i Gemini.
Podczas instalacji zawsze wyskakuje:

[23:33:44.321][W][safe_mode:094]: OTA rollback detected! Rolled back from partition 'app1'
[23:33:44.321][W][safe_mode:094]:  The device reset before the boot was marked successful

Doszedłem już do tego, że jak zaznaczyłem wszystkie wpisy odnośnie wmbus jako komentarz to instalacja przebiegła prawidłowo:

[10:08:10.811][I][safe_mode:142]: Boot seems successful; resetting boot loop counter

Co może być przyczyną wcześniejszego resetowania podczas instalacji?
Pełny log instalacji z wpisami wmbus:

INFO ESPHome 2026.5.1
INFO Reading configuration /config/esphome/esp32piwnica.yaml...
INFO Updating https://github.com/SzczepanLeon/esphome-components.git@version_4
INFO Detected timezone 'Europe/Warsaw'
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/#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 12 (TCP=6 [api=3, captive_portal=3], UDP=3 [captive_portal=1, mdns=2], TCP_LISTEN=3 [api=1, ota=1, web_server_base=1])
INFO Compiling app... Build path: /data/build/esp32piwnica
Processing esp32piwnica (board: esp32dev; framework: arduino, espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.38-1/platform-espressif32.zip)
--------------------------------------------------------------------------------
Library Manager: Installing esphome/noise-c @ 0.1.11
Unpacking  [####################################]  100%
Library Manager: noise-c@0.1.11 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing esphome/libsodium @ 1.10021.0
Unpacking  [####################################]  100%
Library Manager: libsodium@1.10021.0 has been installed!
Library Manager: Installing LSatan/SmartRC-CC1101-Driver-Lib @ 2.5.7
Unpacking  [####################################]  100%
Library Manager: SmartRC-CC1101-Driver-Lib@2.5.7 has been installed!
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - contrib-piohome @ 3.4.4 
 - framework-arduinoespressif32 @ 3.3.8 
 - framework-arduinoespressif32-libs @ 5.5.4 
 - framework-espidf @ 3.50504.0 (5.5.4) 
 - tool-cmake @ 4.0.3 
 - tool-esp-rom-elfs @ 2024.10.11 
 - tool-esptoolpy @ 5.2.0 
 - tool-ninja @ 1.13.1 
 - tool-scons @ 4.40801.0 (4.8.1) 
 - tool-xtensa-esp-elf-gdb @ 16.3.0+20250913 
 - toolchain-xtensa-esp-elf @ 14.2.0+20260121
Using Python 3.12.10 environment at: /root/.platformio/penv/.espidf-5.5.4
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...
Generating assembly for certificate bundle...
Dependency Graph
|-- noise-c @ 0.1.11
|-- WiFi @ 3.3.8
|-- SPI @ 3.3.8
|-- SmartRC-CC1101-Driver-Lib @ 2.5.7
.
.
.
.
.
Compiling .pioenvs/esp32piwnica/bootloader/spi_flash/spi_flash_wrap.c.o
Generating partitions .pioenvs/esp32piwnica/partitions.bin
Archiving .pioenvs/esp32piwnica/bootloader/esp-idf/soc/libsoc.a
Indexing .pioenvs/esp32piwnica/bootloader/esp-idf/soc/libsoc.a
Archiving .pioenvs/esp32piwnica/bootloader/esp-idf/spi_flash/libspi_flash.a
Indexing .pioenvs/esp32piwnica/bootloader/esp-idf/spi_flash/libspi_flash.a
Linking .pioenvs/esp32piwnica/bootloader.elf
Building .pioenvs/esp32piwnica/bootloader.bin
Creating ESP32 image...
Successfully created ESP32 image.
Linking .pioenvs/esp32piwnica/firmware.elf
                            Memory Type Usage Summary                             
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Memory Type/Section ┃ Used [bytes] ┃ Used [%] ┃ Remain [bytes] ┃ Total [bytes] ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ Flash Code          │      1263848 │          │                │               │
│    .text            │      1263848 │          │                │               │
│ Flash Data          │       420020 │          │                │               │
│    .rodata          │       419764 │          │                │               │
│    .appdesc         │          256 │          │                │               │
│ IRAM                │        78479 │    45.62 │          93553 │        172032 │
│    .text            │        77451 │    45.02 │                │               │
│    .vectors         │         1028 │      0.6 │                │               │
│ DRAM                │        57792 │    31.98 │         122944 │        180736 │
│    .bss             │        41120 │    22.75 │                │               │
│    .data            │        16672 │     9.22 │                │               │
└─────────────────────┴──────────────┴──────────┴────────────────┴───────────────┘
Total image size: 1779019 bytes (.bin may be padded larger)
Note: The reported total sizes may be smaller than those in the technical reference manual due to reserved memory and application configuration. The total flash size available for the application is not included by default, as it cannot be reliably determined due to the presence of other data like the bootloader, partition table, and application partition size.
RAM:   [==        ]  17.6% (used 57792 bytes from 327680 bytes)
Flash: [==========]  96.9% (used 1778763 bytes from 1835008 bytes)
Building .pioenvs/esp32piwnica/firmware.bin
Creating ESP32 image...
Successfully created ESP32 image.
Creating binary "firmware.factory.bin" with:
    Offset   | File
 -  0x1000   | bootloader.bin
 -  0x8000   | partitions.bin
 -  0x9000   | boot_app0.bin
 -  0x10000  | firmware.bin
Successfully created combined binary image.
sign_firmware([".pioenvs/esp32piwnica/firmware.bin"], [".pioenvs/esp32piwnica/firmware.elf"])
merge_factory_bin([".pioenvs/esp32piwnica/firmware.bin"], [".pioenvs/esp32piwnica/firmware.elf"])
Info: bootloader.bin not found - skipping
Info: partition-table.bin not found - skipping
Info: ota_data_initial.bin not found - skipping
Info: esp32piwnica.bin not found - skipping
Using FLASH_EXTRA_IMAGES from PlatformIO environment
Merging binaries into /data/build/esp32piwnica/.pioenvs/esp32piwnica/firmware.factory.bin
Merging binaries with esptool
SHA digest in image updated.
Wrote 0x1c25e0 bytes to file '/data/build/esp32piwnica/.pioenvs/esp32piwnica/firmware.factory.bin', ready to flash to offset 0x0.
Successfully created /data/build/esp32piwnica/.pioenvs/esp32piwnica/firmware.factory.bin
esp32_copy_ota_bin([".pioenvs/esp32piwnica/firmware.bin"], [".pioenvs/esp32piwnica/firmware.elf"])
Copied firmware to /data/build/esp32piwnica/.pioenvs/esp32piwnica/firmware.ota.bin
======================== [SUCCESS] Took 698.44 seconds ========================
INFO Build Info: config_hash=0xa9b67c9b build_time_str=2026-05-28 23:21:28 +0200
INFO Successfully compiled program.
INFO Connecting to 192.168.1.68 port 3232...
INFO Connected to 192.168.1.68
INFO Uploading /data/build/esp32piwnica/.pioenvs/esp32piwnica/firmware.bin (1779168 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 9.17 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.68 using esphome API
INFO Successfully resolved esp32piwnica @ 192.168.1.68 in 0.000s
INFO Successfully connected to esp32piwnica @ 192.168.1.68 in 4.199s
INFO Successful handshake with esp32piwnica @ 192.168.1.68 in 0.131s
[23:33:43.630][I][app:151]: ESPHome version 2026.5.1 compiled on 2026-05-27 23:37:04 +0200
[23:33:43.631][I][app:158]: ESP32 Chip: ESP32 rev3.1, 2 core(s)
[23:33:43.631][W][app:171]: Chip rev >= 3.0 detected. Set minimum_chip_revision: "3.1" under esp32 > framework > advanced to reduce binary size
[23:33:43.631][W][app:198]: Bootloader supports SRAM1 as IRAM (+40KB). Set sram1_as_iram: true under esp32 > framework > advanced
[23:33:43.633][C][logger:219]: Logger:
[23:33:43.633][C][logger:219]:   Max Level: DEBUG
[23:33:43.633][C][logger:219]:   Initial Level: DEBUG
[23:33:43.649][C][logger:226]:   Log Baud Rate: 115200
[23:33:43.649][C][logger:226]:   Hardware UART: UART0
[23:33:43.649][C][logger:235]:   Task Log Buffer Size: 768 bytes
[23:33:43.658][C][gpio.one_wire:020]: GPIO 1-wire bus:
[23:33:43.670][C][gpio.one_wire:152]:   Pin: GPIO25
[23:33:43.671][C][gpio.one_wire:087]:   Found devices:
[23:33:43.671][C][gpio.one_wire:090]:     0x200000007089f428 (DS18B20)
[23:33:43.693][C][dallas.temp.sensor:028]: Dallas Temperature Sensor:
[23:33:43.696][C][dallas.temp.sensor:033]:   Address: 0x200000007089f428 (DS18B20)
[23:33:43.696][C][dallas.temp.sensor:034]:   Resolution: 12 bits
[23:33:43.696][C][dallas.temp.sensor:451]:   Update Interval: 30.0s
[23:33:43.754][C][captive_portal:133]: Captive Portal:
[23:33:43.754][D][dallas.temp.sensor:053]: 'TemperaturaCWU': Got Temperature=22.625000°C
[23:33:43.755][C][wifi:1526]: WiFi:
[23:33:43.755][C][wifi:1526]:   Local MAC: 30:76:F5:A6:FE:90
[23:33:43.755][C][wifi:1526]:   Connected: YES
[23:33:43.755][C][wifi:1237]:   IP Address: 192.168.1.68
[23:33:43.761][C][wifi:1248]:   SSID: 'NJU_Swiatlowod_97AA'[redacted]
[23:33:43.761][C][wifi:1248]:   BSSID: B0:4E:26:F0:99:06[redacted]
[23:33:43.761][C][wifi:1248]:   Hostname: 'esp32piwnica'
[23:33:43.761][C][wifi:1248]:   Signal strength: -41 dB ▂▄▆█
[23:33:43.761][C][wifi:1248]:   Channel: 10
[23:33:43.761][C][wifi:1248]:   Subnet: 255.255.255.0
[23:33:43.761][C][wifi:1248]:   Gateway: 192.168.1.1
[23:33:43.761][C][wifi:1248]:   DNS1: 192.168.1.1
[23:33:43.761][C][wifi:1248]:   DNS2: 0.0.0.0
[23:33:43.780][C][sntp:058]: SNTP Time:
[23:33:43.782][C][sntp:061]:   Server 0: '0.pool.ntp.org'
[23:33:43.789][C][sntp:061]:   Server 1: '1.pool.ntp.org'
[23:33:43.793][C][sntp:061]:   Server 2: '2.pool.ntp.org'
[23:33:43.793][C][time:049]: Timezone: UTC+1:00 (DST UTC+2:00)
[23:33:43.793][C][time:055]: Current time: 2026-05-28 23:33:43
[23:33:43.816][C][esphome.ota:097]: Over-The-Air updates:
[23:33:43.816][C][esphome.ota:097]:   Address: 192.168.1.68:3232
[23:33:43.816][C][esphome.ota:097]:   Version: 2
[23:33:43.819][C][esphome.ota:104]:   Password configured
[23:33:43.829][C][safe_mode:058]: Safe Mode:
[23:33:43.829][C][safe_mode:058]:   Successful after: 60s
[23:33:43.829][C][safe_mode:058]:   Invoke after: 10 attempts
[23:33:43.829][C][safe_mode:058]:   Duration: 300s
[23:33:43.836][C][safe_mode:079]:   Bootloader rollback: support unknown
[23:33:44.321][W][safe_mode:094]: OTA rollback detected! Rolled back from partition 'app1'
[23:33:44.321][W][safe_mode:094]:  The device reset before the boot was marked successful
[23:33:44.322][S][sensor]: 'TemperaturaCWU' >> 22.6 °C
[23:33:44.340][C][web_server.ota:256]: Web Server OTA
[23:33:44.364][C][api:238]: Server:
[23:33:44.364][C][api:238]:   Address: 192.168.1.68:6053
[23:33:44.364][C][api:238]:   Listen backlog: 4
[23:33:44.364][C][api:238]:   Max connections: 5
[23:33:44.367][C][api:245]:   Noise encryption: YES
[23:33:44.379][C][mdns:230]: mDNS:
[23:33:44.379][C][mdns:230]:   Hostname: esp32piwnica
[23:33:45.007][D][sntp:099]: Synchronized time: 2026-05-28 23:33:44
[23:34:13.736][D][dallas.temp.sensor:053]: 'TemperaturaCWU': Got Temperature=22.625000°C
[23:34:13.833][S][sensor]: 'TemperaturaCWU' >> 22.6 °C
[23:34:40.080][I][safe_mode:142]: Boot seems successful; resetting boot loop counter
[23:34:42.112][D][preferences:148]: Writing 1 items: 0 cached, 1 written, 0 failed
[23:34:43.733][D][dallas.temp.sensor:053]: 'TemperaturaCWU': Got Temperature=22.625000°C
[23:34:43.832][S][sensor]: 'TemperaturaCWU' >> 22.6 °C

esphome:
  name: esp32piwnica
  friendly_name: esp32.piwnica

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:
  level: DEBUG

api:
  encryption:
    key: "/IpbYhCKgOwaxGm4XM+MQrz2Q9O3kN2Ai4ckNieAF5g="

ota:
  - platform: esphome
    password: "e3fb9sa4ecc59cf8dd2ec9abe30dfd27"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  output_power: 13dB

  ap:
    ssid: "Esp32Piwnica Fallback Hotspot"
    password: "2cT4OUNKyK5R"

  manual_ip:
    static_ip: 192.168.1.68
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 192.168.1.1

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

wmbus:
  mosi_pin: GPIO23
  clk_pin: GPIO18
  miso_pin: GPIO19
  cs_pin: GPIO17
  gdo2_pin: GPIO26
  gdo0_pin: GPIO27

  frequency: 868.950
  sync_mode: true
  log_all: false
  all_drivers: false

one_wire:
  - platform: gpio
    pin: GPIO25
    id: one_wire_bus

sensor:
  - platform: dallas_temp
    one_wire_id: one_wire_bus
    address: 0x200000007089f428
    name: "Temperatura CWU"
    id: temperatura_cwu
    update_interval: 30s

  - platform: wmbus
    meter_id: 0x25308134
    type: izar
    key: "00000000000000000000000000000000"
    sensors:
      - name: "CWU RSSI"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"

      - name: "CWU zużycie"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"

CS przepnij na GPIO 17

Nic to nie zmieniło.
Ogólnie używam adaptera, ze zworką na 3,3V. Ale to chyba nie powinno powodować problemu z instalacją?

Odepnij fizycznie CC1101 i puść ten sam YAML do kompilacji.
Jak płytka wstanie to masz problem w sprzęcie, jak nie wstanie ( objaw dalej taki sam ) to problem software.

Czy zostawić płytkę w adapterze czy wyjąć?

Odłącz tylko elektrycznie. Szukamy gdzie jest błąd.

Ok. Przy odłączeniu VCC i GND dalej to samo:

[18:38:21.747][W][safe_mode:094]: OTA rollback detected! Rolled back from partition 'app0'
[18:38:21.747][W][safe_mode:094]:  The device reset before the boot was marked successful