Alternatywa: “odchudzony” komponent ESPHome (wM-BUS) – tylko RF→MQTT, dekodowanie poza ESP

Alternatywa: wM-Bus „RAW-only” (ESP = radio) + dekodowanie po stronie HA/Linux

Jeśli masz dość kombinowania z „pełnym” dekodowaniem na ESP (RAM/CPU, zawieszki od logów, updaty ESPHome, sterowniki liczników na mikrokontrolerze), to to rozwiązanie idzie w drugą stronę:

ESP robi tylko RF → MQTT (surowy telegram HEX), a dekodowanie robi wmbusmeters po stronie Home Assistant / Linux.


Co dostajesz (ważne: to są 2 osobne projekty):

Dwa niezależne komponenty, które ze sobą współpracują.

1) ESPHome: „wM-Bus Bridge (RAW-only)”

  • obsługa SX1262 => HELTEC V4 / SX1276
  • odbiór ramek T1 / C1
  • publikacja telegramu jako HEX na MQTT (ESP jest tylko radiem)
  • opcjonalna diagnostyka (dropy / summary)

Pełny opis funkcjonalności jest w pliku README.md na Githubie.
https://github.com/Kustonium/esphome-wmbus-bridge-rawonly

2) HA / Docker: „wMBus MQTT Bridge” (wmbusmeters + wejście z MQTT)

  • subskrybuje topic z telegramami HEX
  • podaje je do wmbusmeters przez stdin:hex
  • publikuje wynik jako MQTT state + (opcjonalnie) MQTT Discovery do HA
  • ma tryb LISTEN: gdy meters[] puste, w logach wypisuje wykryte ID i sugerowany driver

Jak to działa (schemat)

ESP → MQTT (HEX telegram) → wmbusmeters (stdin:hex) → MQTT JSON/state + Discovery → Home Assistant

Domyślnie telegramy lecą na topic:

  • wmbus_bridge/nazwa/telegram
    - gdzie "nazwa" to dowolna nazwa nadana przez użytkownika.

Instalacja w 5 minut

A) ESPHome (radio + MQTT)

  1. Wgrywasz YAML z przykładu (SX1262 albo SX1276).
  2. Najważniejsze: w on_frame publikujesz HEX na MQTT.

Minimalny wzór:

external_components:
  - source: github://Kustonium/esphome-wmbus-bridge-rawonly@main
    components: [wmbus_radio]
    refresh: 0s

wmbus_radio:
  radio_type: SX1262   # albo SX1276
  # ... piny SPI/radia ...
  on_frame:
    then:
      - mqtt.publish:
          topic: "wmbus_bridge/nazwa/telegram"
          payload: !lambda |-
            return frame->as_hex();

B) Home Assistant (addon) ALBO Docker (standalone)

Masz dwa warianty uruchomienia dekodera:

1) Add-on w Home Assistant

  • instalujesz repo dodatku (fork wmbusmeters-ha-addon)
  • po chwili w logach zobaczysz wykryte ID (DLL-ID) i sugestię drivera → dopiero wtedy wpisujesz liczniki do meters.

2) Docker na Linuxie (bez HA)

  • uruchamiasz kontener z podmontowanym /config
  • po pierwszym starcie edytujesz options.json (topic, broker, meters) i restartujesz kontener

Konfiguracja liczników (po wykryciu ID)

Wpis licznika to standard wmbusmeters: id/meter_id, type, opcjonalnie key.

Przykład:

{
  "meters": [
    {
      "meter_id": "03528221",
      "id": "Zimna Woda",
      "type": "hydrodigit",
      "key": "00112233445566778899AABBCCDDEEFF"
    }
  ]
}

Dla kogo to jest (i dla kogo nie)

To jest dla Ciebie, jeśli:

  • chcesz prosto i stabilnie
  • nie chcesz wpychać dekodera i driverów liczników do ESP
  • wolisz mieć dekodowanie na HA/Linux (łatwiej debugować, łatwiej aktualizować)

To nie jest dla Ciebie, jeśli:

  • upierasz się, że wszystko ma się dekodować lokalnie na ESP i bez MQTT

==========================================================================

1. Projekt A czyli ESP - przykład yaml w katalogu examples:

Po kompilacji i uruchomieniu w logach ESP powinno być widoczne:

[09:34:44.750][I][app:215]: ESPHome version 2026.2.1 compiled on 2026-02-24 09:32:34 +0100
[09:34:44.786][I][app:222]: ESP32 Chip: ESP32-S3 rev0.2, 2 core(s)
[09:34:44.786][I][wmbus:371]: Have data (77 bytes) [RSSI: -56dBm, mode: T1 A]
[09:34:46.128][W][wmbus:341]: DROPPED packet: reason=decode_failed mode=T1 want=0 got=0 raw_got=134 RSSI=-93dBm
[09:34:46.174][W][wmbus:348]: DROPPED raw(hex)=73471c8dc5a595ab1664e58b35359a2cd69a4e64e95965965965b434b3934d358d59658c6b138e3a566ca5a98b2ce5a9b2959658d5965965965965965965965965962e659a2e32f45965965965964ec59659672358d5963a658e59659c58b5966964f1f2548b59672578b596b2358b5962da59c596c7259c5966a57263b4599596596d2364e5
[09:34:46.736][W][wmbus:341]: DROPPED packet: reason=decode_failed mode=T1 want=0 got=0 raw_got=134 RSSI=-92dBm
[09:34:46.775][W][wmbus:348]: DROPPED raw(hex)=73471c8bc5a535c6a564b58b35359370d9a94e66535965965965b434b65694b58d59659c6b13933a566cc8b8d62ce5a9b295965965965965965965965965965965966935933727235965965965966695965963b258d5965a558e596ca358e5966b194ba4b58b5969b259c5964d95995962d659a596cb159a596391c96c4b5935965962f168b5
[09:34:47.403][W][wmbus:341]: DROPPED packet: reason=decode_failed mode=T1 want=0 got=0 raw_got=134 RSSI=-95dBm
[09:34:47.409][W][wmbus:348]: DROPPED raw(hex)=73471c8dc5a164db1164e58b35359a94d70b4e63a5596d965965b434a94b69a58d59659c6b138e3a566c7134ec2ce5a9b29596596596596596596196596796596596c6c599d344db5961965965963a55965964d359659636658d5969ac59c7964d9d1a16359e5964f158e596a7158e796db258bd9671359c59649339671c599596596d2364e5
[09:34:50.144][W][wmbus:341]: DROPPED packet: reason=dll_crc_failed mode=C1 want=60 got=60 raw_got=62 RSSI=-94dBm
[09:34:50.149][W][wmbus:348]: DROPPED raw(hex)=54cd334468502001748427047cbc7a5f002025d0253529bec493809604c76e68a936dc88093d76e0a95456724e5483f9ad7e0946db6bcd0f7e8d72c571dd
[09:34:50.260][I][wmbus:371]: Have data (77 bytes) [RSSI: -55dBm, mode: T1 A]
[09:34:50.663][I][wmbus:371]: Have data (77 bytes) [RSSI: -59dBm, mode: T1 A]
[09:34:50.850][I][wmbus:371]: Have data (77 bytes) [RSSI: -89dBm, mode: T1 A]
[09:34:57.027][I][wmbus:371]: Have data (77 bytes) [RSSI: -64dBm, mode: T1 A]
[09:35:02.405][I][wmbus:371]: Have data (77 bytes) [RSSI: -78dBm, mode: T1 A]
[09:35:04.675][I][wmbus:371]: Have data (77 bytes) [RSSI: -76dBm, mode: T1 A]
[09:35:06.905][W][wmbus:341]: DROPPED packet: reason=decode_failed mode=T1 want=0 got=0 raw_got=84 RSSI=-94dBm
[09:35:06.909][W][wmbus:348]: DROPPED raw(hex)=3a971c6ac6562dc38e65970d4dc68e65ac7198e59a9692cb70d5a9b165992e35965965965a35a935a5a94e64d334b34b36636635934d3565b234e35c34b34d34e35c35c34b97435936636334b5a335635a60bc96
[09:35:06.909][I][wmbus:371]: Have data (143 bytes) [RSSI: -57dBm, mode: T1 A]
[09:35:08.445][I][wmbus:371]: Have data (77 bytes) [RSSI: -47dBm, mode: T1 A]
[09:35:09.713][I][wmbus:371]: Have data (77 bytes) [RSSI: -83dBm, mode: T1 A]
[09:35:16.472][I][wmbus:371]: Have data (77 bytes) [RSSI: -78dBm, mode: T1 A]
[09:35:19.921][I][wmbus:371]: Have data (77 bytes) [RSSI: -73dBm, mode: T1 A]
[09:35:19.934][W][wmbus:341]: DROPPED packet: reason=decode_failed mode=T1 want=0 got=0 raw_got=134 RSSI=-94dBm
[09:35:19.934][W][wmbus:348]: DROPPED raw(hex)=73470dcdc5a52cbb0b64e58b35359a64ba1c4e69ac5965965965b434b72d4d658b59659c2b139a3a566c6b23b12ce5a9b2919659649451659659659659659659659668b5b139a18b5965965945968f259659638e58e596b1658b596c8e59c5b62f1a6658b59a5963b25935966565ac5964f64a55968da5a6596c93a537165a35965964cb5a95
[09:35:20.292][I][wmbus:371]: Have data (77 bytes) [RSSI: -75dBm, mode: T1 A]

co będzie świadczyło iż płytka odbiera telegramy z urządzeń.

==========================================================================

Projekt 2 czy Wmbusmeters po stronie HA/Docker:

Po stronie HA należy wejść w Dodatki => Na dole "Sklep z Dodatkami " => prawy górny róg => 3 kropeczki => Repozytoria => Wkleić link:

https://github.com/Kustonium/homeassistant-wmbus-mqtt-bridge.git

“+Dodaj” => Zamknij.

Na dole pokaże się

Wchodzimy => Zainstaluj.
Następnie wchodzimy w zakładkę Konfiguracja

RAW topic wpisujemy : wmbus_bridge/+/telegram

=> Domyślnie dodatek sam wykrywa czy jest uruchomiony w HA i wtedy sam bierze właściwy Broker , można mu wskazac swój =<

Jeżeli pola meters są puste , uruchamiamy dodatek i wchodzimy w zakładkę Logi :

W tym trybie dodatek pokazuje co słyszy.

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun wmbus_mqtt_bridge (no readiness notification)
s6-rc: info: service legacy-services successfully started
[09:43:28] INFO: MQTT broker: core-mosquitto:1883
[09:43:28] INFO: Subscribing to: wmbus_bridge/telegram
[09:43:28] INFO: wmbusmeters loglevel: normal
[09:43:28] INFO: filter_hex_only: true
[09:43:28] INFO: debug_every_n: 0
[09:43:28] INFO: discovery_enabled: true (prefix=homeassistant, retain=true)
[09:43:28] INFO: state_prefix: wmbusmeters (retain=false)
[09:43:28] INFO: options.json:
[09:43:28] INFO: {"raw_topic":"wmbus_bridge/telegram","loglevel":"normal","filter_hex_only":true,"debug_every_n":0,"discovery_enabled":true,"discovery_prefix":"homeassistant","discovery_retain":true,"state_prefix":"wmbusmeters","state_retain":false,"meters":[]}
[09:43:28] INFO: Registering meters ...
[09:43:28] WARNING: No meters configured -> LISTEN MODE.
[09:43:28] WARNING: Zostaw addon chwilę. W logach zobaczysz: 'Received telegram from: XXXXXXXX'.
[09:43:28] WARNING: To jest DLL-ID, które wpisujesz jako meter_id.
[09:43:28] INFO: Generated /data/etc/wmbusmeters.conf:
[09:43:28] INFO: [CONF] loglevel=normal
[09:43:28] INFO: [CONF] device=stdin:hex
[09:43:28] INFO: [CONF] logfile=/dev/stdout
[09:43:28] INFO: [CONF] format=json
[09:43:28] INFO: Meters directory: /data/etc/wmbusmeters.d
[09:43:28] INFO: total 8
[09:43:28] INFO: drwxr-xr-x    2 root     root          4096 Feb  1 09:43 .
[09:43:28] INFO: drwxr-xr-x    3 root     root          4096 Feb  1 09:43 ..
[09:43:28] INFO: Starting wmbusmeters...
Started config hextty on stdin listening on any
No meters configured. Printing id:s of all telegrams heard!
Received telegram from: 41553221
          manufacturer: (TCH) Techem (0x5068)
                  type: Cold water (0x72)
                   ver: 0x74
                driver: mkradio3
[09:43:29] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:29] WARNING: Received telegram from: 41553221
[09:43:29] WARNING: Suggested driver: mkradio3
[09:43:29] WARNING: Paste into add-on options:
[09:43:29] WARNING: meters:
[09:43:29] WARNING:   - id: meter_41553221
[09:43:29] WARNING:     meter_id: "41553221"
[09:43:29] WARNING:     type: mkradio3
[09:43:29] WARNING:     key: NOKEY
[09:43:29] WARNING: ==================================
Received telegram from: 03534275
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Water meter (0x07)
                   ver: 0x17
                driver: hydrodigit
[09:43:30] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:30] WARNING: Received telegram from: 03534275
[09:43:30] WARNING: Suggested driver: hydrodigit
[09:43:30] WARNING: Paste into add-on options:
[09:43:30] WARNING: meters:
[09:43:30] WARNING:   - id: meter_03534275
[09:43:30] WARNING:     meter_id: "03534275"
[09:43:30] WARNING:     type: hydrodigit
[09:43:30] WARNING:     key: NOKEY
[09:43:31] WARNING: ==================================
Received telegram from: 41551279
          manufacturer: (TCH) Techem (0x5068)
                  type: Warm water (0x62)
                   ver: 0x74
                driver: mkradio3
[09:43:33] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:33] WARNING: Received telegram from: 41551279
[09:43:33] WARNING: Suggested driver: mkradio3
[09:43:33] WARNING: Paste into add-on options:
[09:43:33] WARNING: meters:
[09:43:33] WARNING:   - id: meter_41551279
[09:43:33] WARNING:     meter_id: "41551279"
[09:43:33] WARNING:     type: mkradio3
[09:43:33] WARNING:     key: NOKEY
[09:43:33] WARNING: ==================================
Received telegram from: 03528495
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Warm Water (30°C-90°C) meter (0x06)
                   ver: 0x17
                driver: hydrodigit
[09:43:33] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:33] WARNING: Received telegram from: 03528495
[09:43:33] WARNING: Suggested driver: hydrodigit
[09:43:33] WARNING: Paste into add-on options:
[09:43:33] WARNING: meters:
[09:43:33] WARNING:   - id: meter_03528495
[09:43:33] WARNING:     meter_id: "03528495"
[09:43:33] WARNING:     type: hydrodigit
[09:43:33] WARNING:     key: NOKEY
[09:43:33] WARNING: ==================================
Received telegram from: 03534157
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Water meter (0x07)
                   ver: 0x17
                driver: hydrodigit
[09:43:33] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:33] WARNING: Received telegram from: 03534157
[09:43:33] WARNING: Suggested driver: hydrodigit
[09:43:33] WARNING: Paste into add-on options:
[09:43:33] WARNING: meters:
[09:43:33] WARNING:   - id: meter_03534157
[09:43:33] WARNING:     meter_id: "03534157"
[09:43:33] WARNING:     type: hydrodigit
[09:43:33] WARNING:     key: NOKEY
[09:43:33] WARNING: ==================================
Received telegram from: 03534249
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Water meter (0x07)
                   ver: 0x17
                driver: hydrodigit
[09:43:38] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:38] WARNING: Received telegram from: 03534249
[09:43:38] WARNING: Suggested driver: hydrodigit
[09:43:38] WARNING: Paste into add-on options:
[09:43:38] WARNING: meters:
[09:43:38] WARNING:   - id: meter_03534249
[09:43:38] WARNING:     meter_id: "03534249"
[09:43:38] WARNING:     type: hydrodigit
[09:43:38] WARNING:     key: NOKEY
[09:43:38] WARNING: ==================================
Received telegram from: 03528302
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Warm Water (30°C-90°C) meter (0x06)
                   ver: 0x17
                driver: hydrodigit
[09:43:38] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:38] WARNING: Received telegram from: 03528302
[09:43:38] WARNING: Suggested driver: hydrodigit
[09:43:38] WARNING: Paste into add-on options:
[09:43:38] WARNING: meters:
[09:43:38] WARNING:   - id: meter_03528302
[09:43:38] WARNING:     meter_id: "03528302"
[09:43:38] WARNING:     type: hydrodigit
[09:43:38] WARNING:     key: NOKEY
[09:43:38] WARNING: ==================================
Received telegram from: 41467340
          manufacturer: (TCH) Techem (0x5068)
                  type: Cold water (0x72)
                   ver: 0x74
                driver: mkradio3
[09:43:38] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:38] WARNING: Received telegram from: 41467340
[09:43:38] WARNING: Suggested driver: mkradio3
[09:43:38] WARNING: Paste into add-on options:
[09:43:38] WARNING: meters:
[09:43:38] WARNING:   - id: meter_41467340
[09:43:38] WARNING:     meter_id: "41467340"
[09:43:38] WARNING:     type: mkradio3
[09:43:38] WARNING:     key: NOKEY
[09:43:38] WARNING: ==================================
Received telegram from: 03551587
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Water meter (0x07)
                   ver: 0x17
                driver: hydrodigit
[09:43:39] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:39] WARNING: Received telegram from: 03551587
[09:43:39] WARNING: Suggested driver: hydrodigit
[09:43:39] WARNING: Paste into add-on options:
[09:43:39] WARNING: meters:
[09:43:39] WARNING:   - id: meter_03551587
[09:43:39] WARNING:     meter_id: "03551587"
[09:43:39] WARNING:     type: hydrodigit
[09:43:39] WARNING:     key: NOKEY
[09:43:39] WARNING: ==================================
Received telegram from: 03528099
          manufacturer: (BMT) BMETERS, Italy (0x9b4)
                  type: Warm Water (30°C-90°C) meter (0x06)
                   ver: 0x17
                driver: hydrodigit
[09:43:44] WARNING: === NEW METER CANDIDATE DETECTED ===
[09:43:44] WARNING: Received telegram from: 03528099
[09:43:44] WARNING: Suggested driver: hydrodigit
[09:43:44] WARNING: Paste into add-on options:
[09:43:44] WARNING: meters:
[09:43:44] WARNING:   - id: meter_03528099
[09:43:44] WARNING:     meter_id: "03528099"
[09:43:44] WARNING:     type: hydrodigit
[09:43:44] WARNING:     key: NOKEY
[09:43:44] WARNING: ==================================

Co pozwala w sposób jednoznaczny ustalić przez użytkownika jego liczniki, które w następnym kroku dodajemy w oknie Konfiguracji jako meters po naciśnięciu Utwórz:

id => przyjazna nazwa
meter_id => cyfra urządzenia użytkownika
type => tzw driver z rozwijalnej listy lub tryb auto
key = > klucz szyfrujący ( jeżeli urządzenie nie ma klucza nic nie wpisujemy ).

I na końcu Utwórz.

Po utworzenie zatwierdzamy zmiany

Potwierdzamy że dodatek ma się zrestartować.

Wchodzimy z powrotem do zakładki Logi dodatku :

[09:55:24] INFO: MQTT broker: core-mosquitto:1883
[09:55:24] INFO: Subscribing to: wmbus_bridge/telegram
[09:55:24] INFO: wmbusmeters loglevel: normal
[09:55:24] INFO: filter_hex_only: true
[09:55:24] INFO: debug_every_n: 0
[09:55:24] INFO: discovery_enabled: true (prefix=homeassistant, retain=true)
[09:55:24] INFO: state_prefix: wmbusmeters (retain=false)
[09:55:24] INFO: options.json:
[09:55:24] INFO: {"raw_topic":"wmbus_bridge/telegram","loglevel":"normal","filter_hex_only":true,"debug_every_n":0,"discovery_enabled":true,"discovery_prefix":"homeassistant","discovery_retain":true,"state_prefix":"wmbusmeters","state_retain":false,"meters":[{"meter_id":"03528221","id":"Zimna Woda","type":"hydrodigit"},{"id":"Ciepła woda","meter_id":"03534159","type":"hydrodigit"}]}
[09:55:24] INFO: Registering meters ...
[09:55:24] INFO: Added /data/etc/wmbusmeters.d/meter-0001 (name=Zimna Woda, driver=hydrodigit, id=03528221)
[09:55:24] INFO: Added /data/etc/wmbusmeters.d/meter-0002 (name=Ciepła woda, driver=hydrodigit, id=03534159)
[09:55:24] INFO: Generated /data/etc/wmbusmeters.conf:
[09:55:24] INFO: [CONF] loglevel=normal
[09:55:24] INFO: [CONF] device=stdin:hex
[09:55:24] INFO: [CONF] logfile=/dev/stdout
[09:55:24] INFO: [CONF] format=json
[09:55:24] INFO: Meters directory: /data/etc/wmbusmeters.d
[09:55:24] INFO: total 16
[09:55:24] INFO: drwxr-xr-x    2 root     root          4096 Feb  1 09:55 .
[09:55:24] INFO: drwxr-xr-x    3 root     root          4096 Feb  1 09:43 ..
[09:55:24] INFO: -rw-r--r--    1 root     root            56 Feb  1 09:55 meter-0001
[09:55:24] INFO: -rw-r--r--    1 root     root            58 Feb  1 09:55 meter-0002
[09:55:24] INFO: Starting wmbusmeters...
Started config hextty on stdin listening on any
{"_":"telegram","media":"water","meter":"hydrodigit","name":"Ciepła woda","id":"03534159","backflow_m3":0,"meter_datetime":"2026-02-01 10:01","total_m3":17.593,"voltage_v":3.7,"contents":"BATTERY_VOLTAGE FRAUD_DATE LEAK_DATE BACKFLOW","fraud_date":"2000-00-00","fraud_type":"no type info","leak_date":"2000-00-00","timestamp":"2026-02-01T08:56:01Z"}
[09:56:01] INFO: MQTT discovery published for id=03534159 (topic=homeassistant/sensor/wmbus_03534159/total_m3/config)

I czekamy aż dane urządzenie prześle swoje dane - tu widać że przesłało.

Finalnie wchodzimy w ustawienia => Urządzenia oraz usługi => MQTT:

Na moim przykładzie widać dodany licznik od ciepłej wody.

5 polubień

Pewnie za duzo miałeś w YAMLu. Ja na moim komponencie od poczatku jadę tylko w trybie gateway i nic sie nie wiesza.

Oczywiście że miał tu jest ten problem że jest za dużo funkcji w yamlu. ESPHome jeszcze dociążyli niepotrzebnie jakimiś głupotami i w twoim komponencie jest ustawiony trochę mały stały bufor.

@_Szczepan Nie. Jak kupiłem od Ciebie Readera to chodził i nie ruszałem . Potem to co opisałem czyli wada OLED i od tego momentu zaczęły się schody bo kompilowałem nowy kod.
Ten dodatek by nie powstał bo miałem takie schizo i mi się nudziło.
A nie korzystałem z Twojego gateweya bo chyba nigdy postu nie zamieściłeś.

@Allon Przeczytaj wątek źródłowy od początku. Ile płytek tyle problemów

Proszę możnesz edytować post nie pisz posta pod postem taki tip jeśli odnosisz się w tym wpisie do kogoś innego mozesz użyć @nazwa_użytkownika. Utrzymujesz wtedy porządek w wątku.

Odniosłem się to twojego posta o czymś świadczy znaczek:

Wiem ale możesz zrobić to przez edycje posta:

A następnie oznaczyć
@Allon Przeczytaj wątek źródłowy od początku. Ile płytek tyle problemów”


Kliknij na siebie to zobaczysz do czego się odnosze - bez cytowania.

Gateway jest zawarty w komponencie, wystarczy nie ustawiac sensorow itp. :wink:

Teraz to po frytkach :wink:

1 polubienie

OFF TOPIC
Przez kilka lat istnienia tego forum stwierdziliśmy, że forum płaskie, które częściowo imituje forum drzewiaste (discourse) jest średnio przyjaznym rozwiązaniem i preferujemy większe upakowanie treści w postach (w taki sposób jak wyżej zasugerował @Allon). Prekursorem tego rozwiązania był jeden z moderatorów, którego już nie ma z nami, ale to był jeden z dobrych pomysłów, który jakoś udaje się wprowadzać w życie.

Ponieważ poprzeczkę mam postawioną bardzo wysoko a mój projekt to raczej nisza …
Zaimplementowałem tworzenie encji bez edycji pliku configuration.yaml

.

Oczywiście ciągle jest to w fazie testów.

U siebie w domu testy zakończyłem bo nie mam co więcej czytać.

Więc na razie projekt działa ale nie mam już na czym ćwiczyć.

1 polubienie

Mały update : dodałem możliwość korzystania z własnego Brokera.
W planach wersja pod instalacje w Dockerze.

Update 2026/02/14 :
Docker zrobiony i startuje na linuksie.

jeszcze cofnij forka do wersji z tego tematu i będzie dobrze. SX1262 inclusion causes receive issues in SX1276 on Heltec WiFi LoRa 32(V2) · Issue #320 · SzczepanLeon/esphome-components Lepszy zasięg i częściej odbiera ramki.

Na razie walcze z Heltec V4 od 2 dni bo mi robi to samo co czytam na Forum.

I zwalczyłem. Heltec V4:

# SPI (Heltec V4)
spi:
  clk_pin: GPIO9
  mosi_pin: GPIO10
  miso_pin: GPIO11

# Heltec V4 FEM (to robi różnicę: RX ma być LNA ON, PA OFF)
# Ustawiamy na sztywno:
#  - FEM_EN  = 1
#  - V_FEM_Ctrl = 1
#  - FEM_PA  = 0
switch:
  - platform: gpio
    id: fem_en
    pin: GPIO2
    restore_mode: ALWAYS_ON

  - platform: gpio
    id: fem_ctrl
    pin: GPIO7
    restore_mode: ALWAYS_ON

  - platform: gpio
    id: fem_pa
    pin: GPIO46
    restore_mode: ALWAYS_OFF

wmbus_radio:
  radio_type: SX1262

  cs_pin: GPIO8
  reset_pin: GPIO12
  busy_pin: GPIO13

  irq_pin:
    number: GPIO14
    mode:
      input: true
      pullup: true
INFO Starting looking for IP in topic esphome/discover/esphome-web-ca0448
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/esphome-web-ca0448
INFO Found IP: ['192.168.100.84']
INFO Starting log output from 192.168.100.84 or esphome-web-ca0448.local using esphome API
INFO Successfully resolved esphome-web-ca0448 @ 192.168.100.84 in 0.075s
INFO Successfully connected to esphome-web-ca0448 @ 192.168.100.84 in 0.005s
INFO Successful handshake with esphome-web-ca0448 @ 192.168.100.84 in 0.016s
[15:38:36.495][I][app:210]: ESPHome version 2026.1.5 compiled on 2026-02-18 15:31:52 +0100
[15:38:36.540][I][app:217]: ESP32 Chip: ESP32-S3 r0.2, 2 core(s)
[15:38:38.099][I][wmbus:065]: Have data (77 bytes) [RSSI: -76dBm, mode: T1 A]
[15:38:39.218][I][wmbus:065]: Have data (77 bytes) [RSSI: -90dBm, mode: T1 A]
[15:38:41.475][I][wmbus:065]: Have data (77 bytes) [RSSI: -83dBm, mode: T1 A]
[15:38:45.333][I][wmbus:065]: Have data (143 bytes) [RSSI: -87dBm, mode: T1 A]
[15:38:49.834][I][wmbus:065]: Have data (77 bytes) [RSSI: -85dBm, mode: T1 A]
[15:38:50.397][I][wmbus:065]: Have data (77 bytes) [RSSI: -33dBm, mode: T1 A]
[15:38:51.221][I][wmbus:065]: Have data (77 bytes) [RSSI: -86dBm, mode: T1 A]
[15:38:51.973][I][wmbus:065]: Have data (77 bytes) [RSSI: -74dBm, mode: T1 A]
[15:38:54.995][I][wmbus:065]: Have data (77 bytes) [RSSI: -86dBm, mode: T1 A]

Działa.

Odchudziłem maksymalnie kod poprzez wyłączenie kombajnu wmbusmeters w kodzie ESP - jest tylko czysty HEX. Zmieniłem opis.

Możesz opisać konfigurację trybu getaway ?

Błąd podczas kompilacji na wersji esphome 2026.1.5 jak i 2026.2.0. Dla obu źródeł repo i SX’ów. Clean robiny.

external_components:
  - source: github://Kustonium/esphome-wmbus-bridge-rawonly@main
    components: [wmbus_radio]
    refresh: 0s

oraz

external_components:
  - source: github://Kustonium/esphome-wmbus-bridge@main
    components: [wmbus_common,wmbus_radio]
    refresh: 0s
Compiling .pioenvs/sih-readerv17pcb/src/esphome/components/wmbus_common/address.cc.o
src/esphome/components/wmbus_common/address.cc:18:10: fatal error: address.h: No such file or directory

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

   18 | #include "address.h"
      |          ^~~~~~~~~~~
compilation terminated.
*** [.pioenvs/sih-readerv17pcb/src/esphome/components/wmbus_common/address.cc.o] Error 1
========================= [FAILED] Took 165.57 seconds =========================
src/esphome/components/wmbus_common/address.cc:18:10: fatal error: address.h: No such file or directory

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

   18 | #include "address.h"
      |          ^~~~~~~~~~~
compilation terminated.
Compiling .pioenvs/sih-readerv17pcb/src/esphome/components/wmbus_common/aescmac.cc.o
*** [.pioenvs/sih-readerv17pcb/src/esphome/components/wmbus_common/address.cc.o] Error 1
src/esphome/components/wmbus_common/aes.cc:42:10: fatal error: aes.h: No such file or directory

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

   42 | #include "aes.h"
      |          ^~~~~~~
compilation terminated.
*** [.pioenvs/sih-readerv17pcb/src/esphome/components/wmbus_common/aes.cc.o] Error 1
src/esphome/components/wmbus_common/aescmac.cc:18:10: fatal error: aescmac.h: No such file or directory

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

   18 | #include "aescmac.h"
      |          ^~~~~~~~~~~
compilation terminated.
*** [.pioenvs/sih-readerv17pcb/src/esphome/components/wmbus_common/aescmac.cc.o] Error 1
========================== [FAILED] Took 7.06 seconds ==========================

Sprawdziłem na moim tesotwym HA który ma tylko ESPHome i nic więcej.

Dla kodu :

substitutions:
  devicename: esphome-web-ca0448

esphome:
  name: esphome-web-ca0448
  friendly_name: Heltec V4
  min_version: 2026.1.3
  name_add_mac_suffix: false

esp32:
  variant: esp32s3
  flash_size: 16MB
  cpu_frequency: 240MHZ
  framework:
    type: esp-idf

psram:
  mode: quad

external_components:
  - source: github://Kustonium/esphome-wmbus-bridge-rawonly@main
    components: [wmbus_radio]
    refresh: 0s

#logger:
#  level: debug
#  logs:
#    mqtt: warn
#    component: warn
#    wmbus: debug
#    SX1262: debug

# Włącza gotowe sensory diagnostyczne w ESPHome
debug:
  
logger:
  level: info                  # Zmień na 'warn' jeśli chcesz ciszej w logach
  logs:
    mqtt: warn                 # Ucisza MQTT (zostawia warningi)
    component: warn           # Ucisza ogólne gadanie ESPHome
    #wmbus: info              # (opcjonalnie) wymuś logi wmbus, jeśli kiedyś znikną
mdns:
  disabled: false

api:

ota:
  - platform: esphome

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

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password
  log_topic:
    topic: "${devicename}/debug"
    level: DEBUG

# SPI (Heltec V4)
spi:
  clk_pin: GPIO9
  mosi_pin: GPIO10
  miso_pin: GPIO11

# Heltec V4 FEM (to robi różnicę: RX ma być LNA ON, PA OFF)
# Ustawiamy na sztywno:
#  - FEM_EN  = 1
#  - V_FEM_Ctrl = 1
#  - FEM_PA  = 0
switch:
  - platform: gpio
    id: fem_en
    pin: GPIO2
    restore_mode: ALWAYS_ON

  - platform: gpio
    id: fem_ctrl
    pin: GPIO7
    restore_mode: ALWAYS_ON

  - platform: gpio
    id: fem_pa
    pin: GPIO46
    restore_mode: ALWAYS_OFF
          
wmbus_radio:
  radio_type: SX1262

  cs_pin: GPIO8
  reset_pin: GPIO12
  busy_pin: GPIO13

  irq_pin:
    number: GPIO14
    mode: input

  diagnostic_topic: "wmbus/diag/error"
  diagnostic_verbose: false          # startowo cisza
  diagnostic_publish_raw: false      # startowo bez raw
  diagnostic_summary_interval: 60s   # summary co 60s
 
  # SX1262 tuning
  dio2_rf_switch: true
  rx_gain: boosted
  has_tcxo: true   # jakby było gorzej/„cisza”, zmień na false i tyle

  on_frame:
    then:
      - if:
          condition:
            lambda: |-
              return frame->as_hex().size() >= 30;
          then:
            - mqtt.publish:
                topic: "wmbus_bridge/telegram"
                payload: !lambda |-
                  return frame->as_hex();

Kompilacja :

INFO ESPHome 2026.2.0
INFO Reading configuration /config/esphome/sx1262.yaml...
INFO Updating https://github.com/Kustonium/esphome-wmbus-bridge-rawonly.git@main
WARNING GPIO46 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 Compiling app... Build path: /data/build/esphome-web-ca0448
********************************************************************************
If you like PlatformIO, please:
- star it on GitHub > https://github.com/platformio/platformio-core
- follow us on LinkedIn to stay up-to-date on the latest project news > https://www.linkedin.com/company/platformio/
- try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide
********************************************************************************

Processing esphome-web-ca0448 (board: esp32-s3-devkitc-1; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip)
--------------------------------------------------------------------------------
Platform Manager: Installing https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
INFO Installing https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
..........
Creating ESP32S3 image...
Successfully created ESP32S3 image.
Linking .pioenvs/esphome-web-ca0448/firmware.elf
                            Memory Type Usage Summary                             
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Memory Type/Section ┃ Used [bytes] ┃ Used [%] ┃ Remain [bytes] ┃ Total [bytes] ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ Flash Code          │       648268 │          │                │               │
│    .text            │       648268 │          │                │               │
│ Flash Data          │       126968 │          │                │               │
│    .rodata          │       126712 │          │                │               │
│    .appdesc         │          256 │          │                │               │
│ DIRAM               │        95711 │    28.01 │         246049 │        341760 │
│    .text            │        58023 │    16.98 │                │               │
│    .data            │        19328 │     5.66 │                │               │
│    .bss             │        18360 │     5.37 │                │               │
│ IRAM                │        16384 │    100.0 │              0 │         16384 │
│    .text            │        15356 │    93.73 │                │               │
│    .vectors         │         1028 │     6.27 │                │               │
└─────────────────────┴──────────────┴──────────┴────────────────┴───────────────┘
Total image size: 868971 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:   [=         ]  11.5% (used 37688 bytes from 327680 bytes)
Flash: [=         ]  10.7% (used 868715 bytes from 8126464 bytes)
Building .pioenvs/esphome-web-ca0448/firmware.bin
Creating ESP32S3 image...
Successfully created ESP32S3 image.
merge_factory_bin([".pioenvs/esphome-web-ca0448/firmware.bin"], [".pioenvs/esphome-web-ca0448/firmware.elf"])
Info: bootloader.bin not found - skipping
Info: partition-table.bin not found - skipping
Info: ota_data_initial.bin not found - skipping
Info: esphome-web-ca0448.bin not found - skipping
Using FLASH_EXTRA_IMAGES from PlatformIO environment
Merging binaries into /data/build/esphome-web-ca0448/.pioenvs/esphome-web-ca0448/firmware.factory.bin
Merging binaries with esptool
SHA digest in image updated.
Wrote 0xe4300 bytes to file '/data/build/esphome-web-ca0448/.pioenvs/esphome-web-ca0448/firmware.factory.bin', ready to flash to offset 0x0.
Successfully created /data/build/esphome-web-ca0448/.pioenvs/esphome-web-ca0448/firmware.factory.bin
esp32_copy_ota_bin([".pioenvs/esphome-web-ca0448/firmware.bin"], [".pioenvs/esphome-web-ca0448/firmware.elf"])
Copied firmware to /data/build/esphome-web-ca0448/.pioenvs/esphome-web-ca0448/firmware.ota.bin
======================== [SUCCESS] Took 276.58 seconds ========================
INFO Build Info: config_hash=0x87d64687 build_time_str=2026-02-20 10:38:46 +0100
INFO Successfully compiled program.
INFO Starting looking for IP in topic esphome/discover/esphome-web-ca0448
INFO Connected to MQTT broker!
INFO Send discover via MQTT broker topic: esphome/ping/esphome-web-ca0448
INFO Found IP: ['192.168.100.84']
INFO Timeout resolving IP address: Timeout while resolving IP address for ['esphome-web-ca0448.local'] (using 1 already resolved IP addresses)
INFO Connecting to 192.168.100.84 port 3232...
ERROR Connecting to 192.168.100.84 port 3232 failed: [Errno 113] No route to host
ERROR Connection failed.
WARNING Failed to upload to ['MQTTIP', 'esphome-web-ca0448.local']

Nie mam podłączonej płytki więc dlatego jest błąd na końcu - puściłem tylko dla walidacji i sprawdzenia.

Repo : github://Kustonium/esphome-wmbus-bridge@main
jest już nieaktywne