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

zmień sobie na

image

zacznie odczytywać normalnie

to dosyc stara wersja, najnowasza chyba 5.1.6, skąd róznice? ta, 5.0.5 ma już obsługę CC1101 i działa z esp-idf?

nie wiem co się zmieniło, wiem, że cofnięcie rozwiązuje problem z odczytami, chyba nie ma cc1101

Cofnięcie wersji nie rozwiązuje problemu a tylko go maskuje.

niech będzie, że go maskuje…czyta

Odpowiem bardziej zrozumiale. Każda zmiana w wersji ESP powoduje że ten konkretny komponent zbliża się do swojej śmierci technicznej ze względu na sposób w jaki został napisany.

1 Like

U mnie na 1276 po aktualizacji do 2026.3.1 zmiana na source: github://SzczepanLeon/esphome-components@5.0.5 nie pomaga. Brak odczytów. W logach widzę:

Ktoś coś podpowie ?
Ewentualnie może ktoś wie dlaczego wali takim komunikatem:
09:09:03 [D] [internal_temperature:077] Ignoring invalid temperature (success=0, value=53.3)

a niby temperaturę CPU wyświetla normalnie?

Tak wygląda sensor:

  - platform: internal_temperature
    name: "CPU Temperature"
    id: cpu_temp
    icon: "mdi:thermometer-low"

Dzięki, już rozumiem :slight_smile:

czy kod z gałęzi @main zaczął działac czy nadal sybie błędami i wywala problem z sygnałem radia?

Jestem w tej chwili na @5.0.4 ichciał bym wrócić na @main ale nie chce znów z tym walczyć.

Cześć,

Od jakiegoś czasu pilnie śledzę ten temat gdyż zainteresowało mnie zdalne odczytywanie danych z urządzeń. Dzięki Claude.ai przy skromnej wiedzy swej w danym temacie ale czasem ten co naciśnie przycisk też jest potrzebny.

Chcę podzielić się działającą konfiguracją komponentu Szczepana w wersji 5.x dla płytki LilyGO T3 LoRa32 V1.6.1 z radiem SX1276. Nie znalazłem nigdzie gotowej konfiguracji dla tej płytki z nową wersją komponentu, więc może komuś zaoszczędzi to kilku dni szukania.


Sprzęt


Problem — trzy pułapki tej płytki

Pułapka 1 — TCXO

Płytka T3 V1.6.1 posiada oscylator temperaturowy TCXO podłączony do pinu DIO3 SX1276. Komponent Szczepana wykrywa go automatycznie (w logach pojawia się TCXO: DIO3) ale nie aktywuje go poprawnie przed inicjalizacją radia. Efekt: radio inicjalizuje się ale kompletnie milczy — zero ramek, zero timeout komunikatów, totalna cisza.

Rozwiązanie: ręczna aktywacja TCXO przez on_boot z wysokim priorytetem przed startem radia.

Pułapka 2 — IRQ pin

Oficjalna dokumentacja ESPHome Devices podaje tylko DIO0=GPIO26 dla tej płytki. Jednak komponent Szczepana v5.x wymaga DIO1 jako IRQ, nie DIO0. Na T3 V1.6.1 zgodnie z oficjalną dokumentacją LilyGO DIO1=GPIO33. Użycie GPIO26 jako irq_pin powoduje ciszę radiową.

Pułapka 3 — framework

Komponent Szczepana v5.x wymaga esp-idf, nie arduino. Użycie arduino kończy się błędem kompilacji WiFiClient.h: No such file or directory.


Działająca konfiguracja

yaml

esphome:
  name: lora-wmbus
  friendly_name: Stacja wM-Bus 868MHz
  on_boot:
    priority: 900
    then:
      - lambda: |-
          // Aktywacja TCXO dla T3 V1.6.1
          // DIO3 SX1276 = GPIO26 na tej płytce
          // MUSI być HIGH zanim wmbus_radio zainicjalizuje radio
          // Bez tego SX1276 milczy mimo poprawnej inicjalizacji
          gpio_set_direction(GPIO_NUM_26, GPIO_MODE_OUTPUT);
          gpio_set_level(GPIO_NUM_26, 1);
          vTaskDelay(pdMS_TO_TICKS(50));
          ESP_LOGI("BOOT", "TCXO GPIO26 HIGH");

esp32:
  board: esp32dev
  framework:
    type: esp-idf      # arduino NIE działa z v5.x!
    version: latest

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    components: [wmbus_common, wmbus_radio, wmbus_meter]
    refresh: 0d

logger:
  level: DEBUG
  logs:
    wmbus: DEBUG
    wmbus_radio: DEBUG
    wmbus_meter: DEBUG

spi:
  clk_pin:
    number: GPIO05
    ignore_strapping_warning: true
  mosi_pin: GPIO27
  miso_pin: GPIO19

wmbus_radio:
  radio_type: SX1276
  cs_pin: GPIO18
  reset_pin: GPIO23
  irq_pin: GPIO33      # DIO1 — nie GPIO26 (DIO0)!

wmbus_meter:
  - id: moj_licznik
    meter_id: 0x00000000   # zastąp swoim ID z logów
    type: amiplus           # dla Gama 350 / Landis+Gyr
    key: "00000000000000000000000000000000"

sensor:
  - platform: wmbus_meter
    parent_id: moj_licznik
    field: "total_energy_consumption_kwh"
    name: "Energia pobrana"
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
```

---

## Potwierdzenie działania

Po poprawnej konfiguracji w logach pojawiają się ramki:
```
[D][packet:097]: Have data from radio (45 bytes)
[D][wmbusmeters:351]: raw packet "..."
[W][wmbus:065]: Telegram not handled by any handler
[W][wmbus:070]: Check if telegram with address XXXXXXXX

Pierwsze złapane ramki to prawdopodobnie liczniki sąsiadów — to normalne i potwierdza działanie radia.


Podsumowanie pinów T3 V1.6.1

Funkcja GPIO Uwaga
SPI CLK GPIO5
SPI MOSI GPIO27
SPI MISO GPIO19
CS GPIO18
RST GPIO23
IRQ (irq_pin) GPIO33 DIO1 — nie DIO0!
TCXO enable GPIO26 aktywować w on_boot!
OLED SDA GPIO21
OLED SCL GPIO22

Uwagi końcowe

  • Czekam jeszcze na klucz AES od OSD (Gama 350) — bez niego ramki są odebrane ale zaszyfrowane

  • FLOWIS+ w okolicy milczy — prawdopodobnie nadaje o określonych porach

  • Jeśli ktoś ma działający odczyt Gamy 350 lub FLOWIS+ na tej płytce — chętnie porównam konfigurację

Dziękuję @_Szczepan i @kubasa za komponent i pomoc na forum, nie mogę także pominąć ogromnego wkładu od Claude.ai który wszystko co znalazłem cierpliwie przetwarzał i testował.

Posiadam SX1276 i czytam z takimi pinami

esp32:
  board: esp-wrover-kit
  framework:
    type: esp-idf
    
external_components:
  - source: github://SzczepanLeon/esphome-components@5.1.6
    components:
      - wmbus_common
      - wmbus_radio
      - wmbus_meter

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: GPIO14
  irq_pin: GPIO35
```

wersja ESPhome 2026.2.4 na 2026.3 już nie odczytuje ramek

Jakby co mogę potestować Twoje ustawienia ale nie wiem czy nie musiałbym przelutowywać pinów na SX1276

@Piratee U mnie brak ingerencji na płytce, wszystko załatwione bez przeróbek, przetnij zworę między pinami, a jak nie zadziała to złączkę “Wago” wypróbujesz do połączeń :grinning_face:. Oczywiście żartuję, sam musisz zdecydować co zrobisz. Pozdrawiam

@Krzykl KK Ja posiadam płytkę samodzielnie lutowaną ESP32 i SX1276, nie pamiętam ale mogę mieć drugą na zapas więc polutuję drugą sztukę.Ale to po świętach.

Koledzy @Piratee @Krzykl może nie wiecie ale jest pod SX1267 projekt od kolegi @kubasa, który użytkownicy chwalą za stabilność:

@angler Dziękuję kolego za pokierowanie, każda wiedza się przyda.

Czy heltec v2 moge za pomoca tego komponentu odczytywac stacje pogodowe Bresser?

nie


Witam, od wczoraj udało mi się czytać moje dwa apator162 za za pomocą LilyGO SX1276 :slight_smile:

Czy i jak mogę tą samą płytką czytać jeszcze Ecowitt WH51 w wersji 868 Mhz ?

Mimo tego samego pasma umownie nazwanego 868MHz urządzenia pracujące protokołem Fine Offset (jak Ecowitt) nadają na częstotliwości 868.35 MHz, a nadające protokołem Wirelees Meter Bus (WmBus) w trybach C1 lub T1 na 868.95 MHz, więc się chyba nie zanosi na to abyś dał radę to opędzić jednym prostym urządzeniem na bazie MCU.
Dwoma osobnymi (każde z innym specjalizowanym oprogramowaniem, dla stacji pogodowych np. tu) pewnie dasz radę…

Sam odbiornik SX1276 wprawdzie umożliwia pracę siekaną, ale szczerze wątpię, że się wkrótce pojawią jakieś wieloprotokołowe komponenty (skoro dekodowanie samego WmBus jest już na granicach możliwości stosowanych w tych projektach MCU, a tymczasem trzeba by dynamicznie dostosowywać szczeliny czasowe do odbieranych liczników, by z wystarczającym marginesem przestrajać radio i z mniejszym priorytetem nasłuchiwać czujników pracujących protokołem stacji pogodowych).

Możesz za to próbować równoczesnego odbioru wykorzystując odbiornik SDR (który jest w stanie nasłuchiwać równocześnie mniej więcej całe pasmo takiej szerokości jak jest wykorzystywana w paśmie 868MHz).

Jeśli chodzi o SDR to z doświadczenia wiem, że jest to możliwe by wykorzystać pracę siekaną (bo nasłuchiwałem pseudo-równocześnie na 433MHz i 868MHz stosując pracę siekaną, czyli przestrajając odbiornik w trakcie pracy na różne pasma) choć wiąże się z utratą ponad połowy telegramów na każdym paśmie, czyli rozwiązanie dla odbiornika SX1276 jest teoretycznie możliwe w analogiczny sposób, ale nie zostało jak dotąd napisane takie oprogramowanie.

Pytanie jest w ogóle poza zakresem tego wątku, ale zajrzyj w takie wątki z tagiem stacja-pogody

1 Like