v5 na 2025.12.1 i esp32c3 z aliexpres
wieczorem jeszcze te piny chce sprawdzić i wrzuce kod.
v4 sypało na 2025.12.1 ani na 2025.7, juz nie pamiętam co, ale chyba wszystkie drivery lądował i bin był za duzy, a jak forka od kogoś wziąłem to był bootloop.
teraz całkiem fajnie leci na v5 z cc1101.
Wyjątkowo slaby pomysł, bo nie tylko przełącznik może ustawić niepożądany stan na takim GPIO, ale też jakaś inna elektronika (nie należy ich wykorzystywać dla GDOx), swoją drogą świetne wytłumaczenie tego ostrzeżenia jest już w FAQ
Doskonale wiem co się może wydarzyć. Sęk w tym że w moich zastosowaniach skutkuje to co najwyżej opuszczeniem rolety przez sekundę albo włączeniem światła na sekundę (tak, tu spieprzyłem akurat). Ale w takich przypadkach jak i2c to nie robi wrażenia na podłączonych urządzeniach (czy to wyświetlacz czy mcp23017).
no dobra, pewnie nie w ten wątek powinienem to wrzucać ale w sumie to nie wiem juz w który lepiej pasuje
pozwólcie, że już nie będę na polski przepisywał ![]()
Here is my code with ESPhome 2025.12.1
I used source: github://enr0c/esphome-components@main to get CC1101 with framework: type: esp-idf and
- source: github://SzczepanLeon/esphome-components@main because smthg is mashed up with [ wmbus_meter ] in enr0c fork and got errors when adding wmbus_meter: to my yaml.
My pinout board is like this one
esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf
logger:
level: WARN
baud_rate: 115200
time:
- platform: homeassistant
external_components:
- source: github://SzczepanLeon/esphome-components@main
refresh: 1d
components:
- wmbus_meter
- wmbus_common
- source: github://enr0c/esphome-components@main
components: [ wmbus_radio ]
refresh: 1d
spi:
clk_pin: GPIO4 # green/white
mosi_pin: GPIO6 # green
miso_pin: GPIO5 # blue
interface: hardware
wmbus_radio:
radio_type: CC1101
cs_pin: GPIO7 # brown/white
gdo2_pin: GPIO1 # blue/white
gdo0_pin: GPIO0 # brown
frequency: 868.950
wmbus_meter:
- id: water_meter_apator
meter_id: 0x01234567 ######## enter your APATOR meter ID here ###########
type: apator162
key: "00000000000000000000000000000000"
sensor:
- platform: wmbus_meter
parent_id: water_meter_apator #Water meter Apator
field: total_m3
device_class: water
name: C3_Apator water meter - state
accuracy_decimals: 3
state_class: total_increasing
unit_of_measurement: "m³"
- platform: wmbus_meter
parent_id: water_meter_apator
field: rssi_dbm
name: C3_Apator water meter - RSSI
unit_of_measurement: "dBm"
in logs many FIFO overflow while waiting for sync, flushing
I think because of many others meters in my neighborhood.
but I can read my apator meter.
Wcześniejsze próby albo kończyły się bootlopem, albo zaciągało wszystkie drivery i obraz byl za duzy dla esp32c3.
od kilku dni kombinuję z kodem i nie potrafię go zmusić do współpracy.
zbudowałem układ do odczytu licznika Apator. W/g mnie kod jest poprawny i kompiluje się, ale być może jest jakieś ale.
tu mam ostatnie logi:
INFO ESPHome 2026.1.2
INFO Reading configuration /config/esphome/water-meter.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 Starting log output from water-meter.local using esphome API
INFO Successfully resolved water-meter.local in 0.130s
INFO Successfully connected to water-meter @ 192.168.0.76 in 0.007s
INFO Successful handshake with water-meter @ 192.168.0.76 in 0.095s
[18:01:22.014][I][app:206]: ESPHome version 2026.1.2 compiled on 2026-01-27 16:22:45 +0100
[18:01:22.018][I][app:213]: ESP32 Chip: ESP32 r3.1, 2 core(s)
[18:01:22.018][W][app:222]: Set minimum_chip_revision: "3.1" to reduce binary size
[18:01:22.022][C][logger:316]: Logger:
[18:01:22.022][C][logger:316]: Max Level: DEBUG
[18:01:22.022][C][logger:316]: Initial Level: DEBUG
[18:01:22.023][C][logger:322]: Log Baud Rate: 115200
[18:01:22.023][C][logger:322]: Hardware UART: UART0
[18:01:22.023][C][logger:332]: Task Log Buffer Size: 768 bytes
[18:01:22.043][C][captive_portal:128]: Captive Portal:
[18:01:22.044][C][wifi:1304]: WiFi:
[18:01:22.044][C][wifi:1304]: Local MAC: F0:24:F9:59:BE:EC
[18:01:22.044][C][wifi:1304]: Connected: YES
[18:01:22.044][C][wifi:1037]: IP Address: 192.168.0.76
[18:01:22.047][C][wifi:1048]: SSID: [redacted]
[18:01:22.047][C][wifi:1048]: BSSID: [redacted]
[18:01:22.047][C][wifi:1048]: Hostname: 'water-meter'
[18:01:22.047][C][wifi:1048]: Signal strength: -59 dB ▂▄▆█
[18:01:22.047][C][wifi:1048]: Channel: 11
[18:01:22.047][C][wifi:1048]: Subnet: 255.255.255.0
[18:01:22.047][C][wifi:1048]: Gateway: 192.168.0.1
[18:01:22.047][C][wifi:1048]: DNS1: 192.168.0.1
[18:01:22.047][C][wifi:1048]: DNS2: 0.0.0.0
[18:01:22.064][C][sntp:059]: SNTP Time:
[18:01:22.065][C][sntp:062]: Server 0: '0.pool.ntp.org'
[18:01:22.068][C][sntp:062]: Server 1: '1.pool.ntp.org'
[18:01:22.086][C][sntp:062]: Server 2: '2.pool.ntp.org'
[18:01:22.087][C][time:028]: Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[18:01:22.094][C][esphome.ota:075]: Over-The-Air updates:
[18:01:22.094][C][esphome.ota:075]: Address: water-meter.local:3232
[18:01:22.094][C][esphome.ota:075]: Version: 2
[18:01:22.101][C][esphome.ota:082]: Password configured
[18:01:22.101][C][safe_mode:021]: Safe Mode:
[18:01:22.101][C][safe_mode:021]: Successful after: 60s
[18:01:22.101][C][safe_mode:021]: Invoke after: 10 attempts
[18:01:22.101][C][safe_mode:021]: Duration: 300s
[18:01:22.116][C][safe_mode:038]: Bootloader rollback: support unknown
[18:01:22.135][C][web_server.ota:231]: Web Server OTA
[18:01:22.136][C][api:221]: Server:
[18:01:22.136][C][api:221]: Address: water-meter.local:6053
[18:01:22.136][C][api:221]: Listen backlog: 4
[18:01:22.136][C][api:221]: Max connections: 8
[18:01:22.140][C][api:228]: Noise encryption: YES
[18:01:22.157][C][mdns:177]: mDNS:
[18:01:22.157][C][mdns:177]: Hostname: water-meter
[18:01:22.157][C][wmbus:413]: wM-Bus v4.2.1-1.17.1-b8f4a945:
[18:01:22.158][C][wmbus:431]: Chip ID: ECBE59F924F0
[18:01:22.158][C][wmbus:433]: CC1101 frequency: 868.950 MHz
[18:01:22.158][C][wmbus:434]: CC1101 SPI bus:
[18:01:22.163][C][wmbus:152]: MOSI Pin: GPIO23
[18:01:22.168][C][wmbus:152]: MISO Pin: GPIO19
[18:01:22.169][C][wmbus:152]: CLK Pin: GPIO18
[18:01:22.172][C][wmbus:152]: CS Pin: GPIO15
[18:01:22.185][C][wmbus:152]: GDO0 Pin: GPIO4
[18:01:22.185][C][wmbus:152]: GDO2 Pin: GPIO27
[18:01:22.190][C][wmbus:449]: Available drivers: wme5, weh_07, watertech, waterstarm, vario451mid, vario451, vario411, unknown, unismart, ultrimis, ultraheat, tsd2, topaseskr, supercom587, sontex868, sharky774, sharky, sensostar, rfmtx1, rfmamb, qwater, qualcosonic, qsmoke, qheat_55_us, qheat, qcaloric, q400, pollucomf, piigth, omnipower, nemo, munia, multical21, mkradio4a, mkradio4, mkradio3, minomess, microclima, lse_08, lse_07_17, lansenth, lansensm, lansenrp, lansenpu, lansendw, kampress, kamheat, izar, iwm
[18:01:22.220][C][wmbus:463]: Meter:
[18:01:22.220][C][wmbus:464]: ID: 57700418 [0x03707042]
[18:01:22.229][C][wmbus:465]: Type: apator162
[18:01:22.248][C][wmbus:466]: Key: '00000000000000000000000000000000'
[18:01:22.249][C][wmbus:468]: Field: 'rssi'
[18:01:22.252][C][wmbus:016]: Name: 'licznik zimnej wody RSSi'
[18:01:22.252][C][wmbus:016]: State Class: 'measurement'
[18:01:22.252][C][wmbus:016]: Unit of Measurement: 'dBm'
[18:01:22.252][C][wmbus:016]: Accuracy Decimals: 0
[18:01:22.260][C][wmbus:026]: Device Class: 'signal_strength'
[18:01:22.261][C][wmbus:468]: Field: 'total'
[18:01:22.270][C][wmbus:016]: Name: 'licznik zimnej wody'
[18:01:22.270][C][wmbus:016]: State Class: 'total_increasing'
[18:01:22.270][C][wmbus:016]: Unit of Measurement: 'm³'
[18:01:22.270][C][wmbus:016]: Accuracy Decimals: 3
[18:01:22.290][C][wmbus:026]: Device Class: 'water'
[18:01:22.290][C][wmbus:030]: Icon: 'mdi:water'
[18:04:19.483][D][mbus:035]: Received T1 A frame
[18:04:38.699][D][mbus:035]: Received T1 A frame
[18:07:57.938][D][esp-idf:000][wifi]: E (3248466) wifi:
[18:07:57.938][D][esp-idf:000][wifi]: BIP replay detected
[18:07:57.938][D][esp-idf:000][wifi]:
INFO Processing unexpected disconnect from ESPHome API for water-meter @ 192.168.0.76
WARNING Disconnected from API
INFO Successfully resolved water-meter @ 192.168.0.76 in 0.902s
INFO Successfully connected to water-meter @ 192.168.0.76 in 0.021s
INFO Successful handshake with water-meter @ 192.168.0.76 in 0.091s
[18:10:46.664][D][sntp:100]: Synchronized time: 2026-01-27 18:10:46
[18:11:14.334][I][safe_mode:066]: Boot seems successful; resetting boot loop counter
[18:11:14.820][D][esp32.preferences:155]: Writing 1 items: 0 cached, 1 written, 0 failed
niby coś odbiera ale nie wygląda to jak u innych.
tu jest to co mam na ESP32
esphome:
name: water-meter
friendly_name: water meter
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "I50izzxOxnVwKGvReQclm8sZVwGYmPSC+pFi+Zl3oW4="
ota:
- platform: esphome
password: "8f19cd0d7454f4ff81328d779c748eb0"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Water-Meter Fallback Hotspot"
password: "TkJJASEEPHZa"
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
frequency: 868.950
all_drivers: True
sync_mode: True
log_all: True
sensor:
# add driver to compile list (will be available for autodetect), don't create sensor
- platform: wmbus
type: itron
# add sensor with defined type (driver will be also added to compile list)
- platform: wmbus
meter_id: 0x3707042
type: apator162
key: "00000000000000000000000000000000"
sensors:
- name: "licznik zimnej wody RSSi"
field: "rssi"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
entity_category: "diagnostic"
- name: "licznik zimnej wody"
field: "total"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
konsekwencją tego mój licznik w HA jest nieznany.
czy mogę prosić o wskazówki?
W tym logu powyżej tego co cytuję jest tylko informacja dotycząca tego co wrzuciłeś w YAML, ale nie ma żadnego śladu działania, co było później?
Skąd wiesz, że nakładka ma idetyfikator
ID: 57700418 [0x03707042]
praszam nie wkleiło się wszystko, jaki się zaciągnie to wkleję.
- bo taki numer ma nakładka 3707042
A nasłuchałeś wcześniej (bez zdefiniowanego sensora) jakikolwiek telegram z pasującego ID?
nie, przepisałem nr z nalepki. a wszystko robiłem z tego poradnika https://youtu.be/hL_AvQIUX_M?si=t_NDvuEXHoV4O6j-
prawdę mówiąc, nie mam pojęcia jak zrobić taki nasłuch
Dla Apatora 16-2 nie stwierdziłem żadnego sensownego powiązania numeru z nalepki z identyfikatorem, więc trzeba nasłuchać i porównując rozkodowane tam wartości
https://wmbusmeters.org/
rozpoznać swój licznik.
Zawsze wystarczało nie definiować sensora, nie wiem jak jest obecnie (bo swojego działającego i innego niż CC1101 sprzętu nie będę ruszał, a nie mam teraz innego “do zabawy”)
[18:33:04.497][C][wmbus:464]: ID: 57700418 [0x03707042]
[18:33:04.518][C][wmbus:465]: Type: apator162
[18:33:04.526][C][wmbus:466]: Key: '00000000000000000000000000000000'
[18:33:04.526][C][wmbus:468]: Field: 'rssi'
[18:33:04.530][C][wmbus:016]: Name: 'licznik zimnej wody RSSi'
[18:33:04.530][C][wmbus:016]: State Class: 'measurement'
[18:33:04.530][C][wmbus:016]: Unit of Measurement: 'dBm'
[18:33:04.530][C][wmbus:016]: Accuracy Decimals: 0
[18:33:04.538][C][wmbus:026]: Device Class: 'signal_strength'
[18:33:04.538][C][wmbus:468]: Field: 'total'
[18:33:04.547][C][wmbus:016]: Name: 'licznik zimnej wody'
[18:33:04.547][C][wmbus:016]: State Class: 'total_increasing'
[18:33:04.547][C][wmbus:016]: Unit of Measurement: 'm³'
[18:33:04.547][C][wmbus:016]: Accuracy Decimals: 3
[18:33:04.571][C][wmbus:026]: Device Class: 'water'
[18:33:04.571][C][wmbus:030]: Icon: 'mdi:water'
[18:37:25.662][D][mbus:035]: Received T1 A frame
[18:39:30.761][D][mbus:035]: Received T1 A frame
[18:40:46.770][D][sntp:100]: Synchronized time: 2026-01-27 18:40:46
Tak to mniej więcej wygląda, żadnych ciągów cyfr nie odbieram
Dobra, weź to popraw bo masz tam czeski błąd i przez to cały konfig leży. Sprzętowo jest ok skoro w logach widzisz te ramki T1.
Zmień koniecznie type na izar, bo te apatory prawie zawsze na tym siedzą.
wrzuć to tak i zobacz czy ruszy:
wmbus:
mosi_pin: GPIO23
miso_pin: GPIO19
clk_pin: GPIO18
cs_pin: GPIO15
gdo0_pin: GPIO4
gdo2_pin: GPIO27
frequency: 868.950
log_all: True
sensor:
- platform: wmbus
meter_id: 57700418 #Dałem w dec bo dziwnie mi się to widziało
type: izar
sensors:
- name: "woda_rssi"
field: "rssi"
- name: "woda_stan"
field: "total"
jak w HA dalej masz “unknown” to poczekaj parę minut te odczyty nie wpadają co sekundę. Jak po kwadransie nic nie wskoczy, to może być problem z kluczem szyfrującym, zwłaszcza jak to nowy licznik w bloku. wtedy bez aes nic nie zdziałasz i w logach będziesz miał tylko rssi a stan wody zero.
daj znać czy po zmianie na izara i poprawieniu idka w pokazało się w końcu.
Nadal ten log jest pusty, ale wywal sensor, bo mając źle zdefiniowany ID na 100% niczego nie odbierze
Jeśli będzie problem z kluczem, to powinno to być w logu,
swoją drogą jeśli błędnie rozkodowany telegram ma datę 1 stycznia 1970 roku to zwykle jest to problem z kluczem
A i jeszcze jedno - wszyscy, o których słyszałem, że mają akurat ten model nakładki mają klucz fabryczny = 32 zera (i potwierdził to jeden z forumowiczów produkujący sprzęt do nasłuchu nakładek, który ma niewątpliwie większy przemiał takich informacji niż ktokolwiek z nas)
@Ryszard wybacz ale nie mam czasu na oglądanie wideo
Wideo jest dobre(oglądałem kiedyś)
Jeśli chodzi o konfigurowanie nasłuchu to wystarczy dać:
all_drivers: True
log_all: True
sync_mode: False
wywal całkowicie sensor i wklej to:
sensor:
- platform: wmbus
type: izar # Większość nowych apatorów w pl to defacto Izar
- platform: wmbus
type: apator162 # Zostawiamy dla pewności
I szukaj w logach meter ID.
Na razie mi się kompiluje to poprzednie, ale jak nie będzie efektu to spróbuję jak radzisz.
No raczej nie.
Apator162 w 99% miał naklejke z ID (i był to juz HEX tylko nie drukowali 0x).
Izar to epopeja jezeli chodzi o ID - raczej to co wydrukowane to nie to co raportowane.
To tu mamy opinie eksperta.
A ja bym zmienił tak jak w nasłuchu:
No i zostawić ten:
Mamy, jednak nie zmienia to faktu, że akurat mam te Apatory i ID z naklejki nie ma nic wspólnego z faktycznie nadawanym ID (nie twierdzę, że zawsze i bezwzględnie, ale wystarczy jedna jedna instalacja w której są od czapy i już regułę, że jakoby się zgadzają trafia szlag, ale skoro u mnie się nie zgadza, to takich przypadków jest minimum kilkanaście tysięcy), więc polecam nasłuchiwać (wcześniej miałem Apatory 8 i tam istotnie ID się zgadzał, choć chyba trzeba było przeliczyć dec->hex albo odwrotnie).
Hey, wgrałem wg zaleceń, mam nadzieję, że poprawnie:
wmbus:
mosi_pin: GPIO23 # zielony
miso_pin: GPIO19 # fiolet
clk_pin: GPIO18 # niebieski
cs_pin: GPIO15 # czarny
gdo0_pin: GPIO4 # biały
gdo2_pin: GPIO27 # szary
frequency: 868.950
all_drivers: True
sync_mode: False
log_all: True
sensor:
- platform: wmbus
type: izar # Większość nowych apatorów w pl to defacto Izar
- platform: wmbus
type: apator162 # Zostawiamy dla pewności
I przez 20 minut nie odebrał nic. Kabelkologia sprawdzona.
Czyżby płytka padła? Ale wczoraj coś odbierał…
[18:11:31.525][C][api:221]: Address: water-meter.local:6053
[18:11:31.525][C][api:221]: Listen backlog: 4
[18:11:31.525][C][api:221]: Max connections: 8
[18:11:31.532][C][api:228]: Noise encryption: YES
[18:11:31.532][C][mdns:177]: mDNS:
[18:11:31.532][C][mdns:177]: Hostname: water-meter
[18:11:31.543][C][wmbus:413]: wM-Bus v4.2.1-1.17.1-b8f4a945:
[18:11:31.543][C][wmbus:431]: Chip ID: ECBE59F924F0
[18:11:31.543][C][wmbus:433]: CC1101 frequency: 868.950 MHz
[18:11:31.553][C][wmbus:434]: CC1101 SPI bus:
[18:11:31.553][C][wmbus:152]: MOSI Pin: GPIO23
[18:11:31.553][C][wmbus:152]: MISO Pin: GPIO19
[18:11:31.559][C][wmbus:152]: CLK Pin: GPIO18
[18:11:31.559][C][wmbus:152]: CS Pin: GPIO15
[18:11:31.564][C][wmbus:152]: GDO0 Pin: GPIO4
[18:11:31.571][C][wmbus:152]: GDO2 Pin: GPIO27
[18:11:31.572][C][wmbus:449]: Available drivers: wme5, weh_07, watertech, waterstarm, vario451mid, vario451, vario411, unknown, unismart, ultrimis, ultraheat, tsd2, topaseskr, supercom587, sontex868, sharky774, sharky, sensostar, rfmtx1, rfmamb, qwater, qualcosonic, qsmoke, qheat_55_us, qheat, qcaloric, q400, pollucomf, piigth, omnipower, nemo, munia, multical21, mkradio4a, mkradio4, mkradio3, minomess, microclima, lse_08, lse_07_17, lansenth, lansensm, lansenrp, lansenpu, lansendw, kampress, kamheat, izar, iwm
[18:11:57.621][D][sntp:100]: Synchronized time: 2026-01-28 18:11:57
[18:12:26.315][I][safe_mode:066]: Boot seems successful; resetting boot loop counter
[18:12:30.487][D][esp32.preferences:155]: Writing 1 items: 0 cached, 1 written, 0 failed
[18:16:31.191][D][wifi:2112]: Roam scan (-63 dBm, attempt 1/3)
[18:21:31.192][D][wifi:2112]: Roam scan (-71 dBm, attempt 2/3)
[18:26:31.200][D][wifi:2112]: Roam scan (-72 dBm, attempt 3/3)
[18:26:57.671][D][sntp:100]: Synchronized time: 2026-01-28 18:26:57
“nasłuch” nic nie dał wpisałem jeszcze numery które mam na rachunku za wodę i coś tam odbiera, ale nie to, na co czekam.
jak to tłumaczyć?
[19:13:11.000][D][mbus:035]: Received T1 A frame