Gratulacje! Trzymasz w ręku MeterRadioBridge — gotowe urządzenie do nasłuchiwania radiowych liczników (wodomierzy, ciepłomierzy, gazomierzy, podzielników kosztów), które nadają w standardzie wireless M-Bus (868 MHz) — tym samym, którego używa większość liczników z odczytem radiowym w Polsce i Europie.
Urządzenie łapie ich transmisje, odszyfrowuje je (o ile masz klucz) i pokazuje odczyty w panelu — na telefonie albo komputerze. Dane może też przekazywać dalej: do Home Assistant przez MQTT lub do własnego systemu przez webhook.
Firmware jest już wgrany. Ta instrukcja poprowadzi Cię przez uruchomienie i po kolei przez wszystkie funkcje. Nie instalujesz żadnego programu, nie podłączasz kabla do komputera — robisz wszystko w przeglądarce.
- Urządzenie MeterRadioBridge — kompletne, w obudowie, z dołączoną anteną (dostajesz gotowy produkt, nie osobne moduły do złożenia).
- Zasilanie USB-C (ładowarka telefonu 5 V lub port USB komputera).
- Telefon lub komputer z Wi-Fi i przeglądarką.
- Twoja domowa sieć Wi-Fi 2,4 GHz (urządzenie nie obsługuje 5 GHz).
- Opcjonalnie: klucze AES-128 do Twoich liczników (jeśli nadają zaszyfrowane) — dostajesz je od dostawcy/administratora liczników.
📡 Antena: upewnij się, że antena jest dokręcona przed włączeniem. Zasięg jest najlepszy, gdy urządzenie stoi centralnie, z dala od powierzchni metalowych.
Podłącz urządzenie kablem USB-C. Po chwili odezwie się dioda LED: dwa błyski, sekundy przerwy i znowu dwa — to znaczy, że urządzenie wstało i wystawiło własną sieć konfiguracyjną. Co oznaczają pozostałe sposoby mrugania, opisuje rozdział 3.
Przy pierwszym uruchomieniu (lub gdy nie zna jeszcze Twojego Wi-Fi) urządzenie tworzy własną sieć Wi-Fi:
| Nazwa sieci (SSID) | MeterRadioBridge-Setup |
| Hasło | meterbridge |
Na telefonie/komputerze połącz się z tą siecią. Większość urządzeń od razu otworzy stronę konfiguracji. Jeśli nie — wpisz w przeglądarce adres:
http://192.168.4.1
W panelu wejdź w Ustawienia → WiFi:
- Kliknij Skan otoczenia → Skanuj, żeby zobaczyć sieci w zasięgu.
- Wybierz swoją sieć (pole Sieć (SSID)) i wpisz Hasło.
- Zapisz. Urządzenie połączy się z Twoim Wi-Fi i zrestartuje.
Jeśli sieci nie ma na liście — sprawdź, czy to pasmo 2,4 GHz (5 GHz nie jest obsługiwane). Niektóre routery rozgłaszają oba pod tą samą nazwą; to w porządku.
Po połączeniu urządzenie jest dostępne w Twojej sieci pod adresem:
http://meterradiobridge.local
Gdyby meterradiobridge.local nie działało (część routerów tego nie wspiera), sprawdź adres
IP urządzenia na liście klientów routera i wejdź pod http://<adres-ip>.
📱 Dodaj do ekranu domowego: na iPhonie otwórz
meterradiobridge.localw Safari → Udostępnij → Dodaj do ekranu początkowego. Panel będzie się otwierał jak normalna aplikacja.
Na urządzeniu jest jeden przycisk i jedna dioda LED. Ilekroć w tej instrukcji pada słowo „przycisk" albo „dioda LED", chodzi właśnie o nie — nie ma innych, więc nie ma czego mylić.
| Dioda | Co się dzieje |
|---|---|
| powoli rozjaśnia się i gaśnie, jak oddech (cykl ok. 6 s) | praca normalna — urządzenie jest w Twoim Wi-Fi i nasłuchuje liczników |
| dwa błyski, potem ok. 2 s ciemno — i tak w kółko | urządzenie wystawia własną sieć MeterRadioBridge-Setup: albo nie zna jeszcze Twojego Wi-Fi, albo nie potrafi się do niego połączyć |
| szybkie miganie, kilka razy na sekundę | trzymasz przycisk — trwa odliczanie do przywrócenia ustawień fabrycznych |
| trzy szybkie błyski i restart | ustawienia fabryczne przywrócone |
Dioda nie sygnalizuje odbioru ramek — mruga tak samo, gdy liczniki nadają, jak i wtedy, gdy w eterze jest cisza. To, czy urządzenie coś słyszy, sprawdzisz w zakładce Logi.
Krótkie naciśnięcie nie robi nic i tak ma być. (Dawniej przełączało tryb radia, ale T1 i C1 są dziś nasłuchiwane jednocześnie, więc nie ma czego przełączać — patrz rozdział 7 → Radio.) Przycisk służy do jednej rzeczy: przywrócenia ustawień fabrycznych.
Przydaje się, gdy zapomnisz hasła do panelu, przenosisz urządzenie do zupełnie innej sieci albo oddajesz je komuś dalej i chcesz zabrać z niego swoje dane.
- Urządzenie ma być zasilone i normalnie pracować. Nic nie odłączasz, nie ma żadnego trybu serwisowego.
- Wciśnij przycisk i trzymaj. Po pół sekundy dioda zacznie szybko migać — to znak, że odliczanie ruszyło.
- Trzymaj przez 5 sekund. Gdy czas minie, dioda błyśnie trzy razy, a urządzenie samo się zrestartuje. Wtedy możesz puścić przycisk.
- Po restarcie urządzenie znów wystawia sieć
MeterRadioBridge-Setup(hasłometerbridge) — konfigurujesz je od nowa, tak jak w rozdziale 2.
Puszczenie przycisku przed upływem 5 sekund przerywa procedurę: nic nie zostaje skasowane, dioda wraca do zwykłego mrugania. Przypadkowe naciśnięcie jest więc nieszkodliwe.
⚠️ Reset kasuje wszystko, co ustawiłeś. Przepadają: nazwa i hasło Twojego Wi-Fi, hasło do panelu, lista liczników razem z nazwami i kluczami AES, ustawienia MQTT, webhooka, REST API i strefy czasowej oraz historia odczytów. Zostaje wgrane oprogramowanie — reset nie cofa wersji firmware ani nie przywraca tej, z którą urządzenie wyszło z fabryki.
💾 Zanim zresetujesz, zrób kopię. Ustawienia → Zarządzanie → Eksport konfiguracji zapisuje liczniki i klucze do pliku, a po resecie wracają jednym kliknięciem (Import konfiguracji). Jest tu haczyk: jeśli resetujesz właśnie dlatego, że nie pamiętasz hasła panelu, to eksport jest niedostępny (wymaga zalogowania) i klucze AES trzeba będzie wpisać ręcznie jeszcze raz. Warto trzymać kopię zawczasu.
Jeśli chcesz tylko zrestartować urządzenie, a nie czyścić ustawień, użyj Ustawienia → Zarządzanie → Uruchom ponownie. Przycisk takiej funkcji nie ma.
Na dole są trzy zakładki:
- Liczniki — lista wykrytych urządzeń i ich odczyty.
- Logi — strumień ostatnich odebranych ramek radiowych (podgląd i diagnostyka).
- Ustawienia — Wi-Fi, integracje, radio, dostęp do panelu, informacje o systemie i zarządzanie urządzeniem.
Każdy licznik, który urządzenie usłyszy, pojawia się tu automatycznie — nie musisz nic konfigurować, żeby go zobaczyć. Konfiguracja przydaje się, by nadać mu nazwę i (dla zaszyfrowanych) odczytać wartości.
Na górze listy jest pole „Szukaj" (filtruje po nazwie lub numerze licznika) oraz filtry — „pigułki" z liczbą sztuk: Wszystkie, Skonfigurowane i wg rodzaju: Woda, Ciepła woda, Ciepło, HCA (podzielniki), Energia, Gaz, Czujniki. Filtry rodzajowe pokazują się tylko wtedy, gdy masz takie liczniki. Kliknij pigułkę, by zawęzić listę.
Przy każdym liczniku zobaczysz:
| Symbol / pole | Znaczenie |
|---|---|
| 🔒 kłódka | Transmisja jest zaszyfrowana — potrzebny klucz AES, by odczytać wartości |
| 🔋 ikona baterii | Licznik zgłasza niski poziom baterii |
| Licznik zgłasza błąd/alarm | |
| pasek sygnału (RSSI) | Siła odbioru — im bliżej 0, tym lepiej (np. −60 jest lepsze niż −90) |
| czas | Kiedy ostatnio słyszano licznik |
Kliknij licznik, żeby otworzyć jego szczegóły: aktualny odczyt, zużycie, ostatnie pomiary i zakres min–max, a niżej konfigurację.
Panel i logi pokazują numer licznika normalnie — tak, jak czytasz go z tarczy. Ale jeśli zajrzysz w surową ramkę (hex w zakładce „Logi" lub przy analizie), ten sam numer wygląda inaczej: jest zapisany bajtami w odwrotnej kolejności (kodowanie BCD, little-endian). To normalne dla wM-Bus, nie błąd.
Numer dzieli się na pary cyfr (bajty), a w telegramie idą one od końca:
numer na liczniku: 12 34 56 78
w surowej ramce: 78 56 34 12
Żeby odczytać numer z ramki, robisz to samo wstecz — bierzesz cztery bajty adresu i odwracasz ich kolejność. Urządzenie robi to za Ciebie, więc na liście i w odczytach masz już numer w czytelnej postaci; odwrócony zapis zobaczysz tylko patrząc bezpośrednio w bajty telegramu.
Drobiazg na później: u niektórych liczników za nadawanie odpowiada osobny moduł radiowy z własnym numerem — wtedy na liście jako
idwidać numer nadajnika, a numer z tarczy bywa przenoszony w środku telegramu (firmware pokazuje go w logach jako „↳ licznik …"). Jeśli numery się nie zgadzają, to może być właśnie ten przypadek — porównaj, zanim uznasz licznik za obcy.
Wodomierze Techem to najczęstszy przypadek, w którym jeden licznik nadaje dwie różne ramki: jedną niekodowaną (jawną) i jedną zaszyfrowaną. Nie jest to błąd ani duplikat — to dwa równoległe „światy" tego samego modułu radiowego. Warto rozumieć, który numer skąd pochodzi, bo w grę wchodzą trzy identyfikatory naraz.
Trzy numery, które trzeba rozróżnić:
| Numer | Skąd | Gdzie go widać |
|---|---|---|
| Numer z tarczy | wydrukowany na liczniku wody | na liście jako dial / „numer z tarczy" |
| ID modułu radiowego (DLL) | nadany fabrycznie modułowi-nadajnikowi | na liście jako id, adres w nagłówku ramki |
| — | (payload zaszyfrowany) | niedostępny bez klucza |
Moduł radiowy jest fizycznie osobnym urządzeniem doczepionym do wodomierza, więc ma własny numer, inny niż ten z tarczy. Stąd biorą się dwa numery dla jednego licznika.
Jak wyglądają obie ramki — na Twoich rzeczywistych licznikach:
┌─ RAMKA NIEKODOWANA (jawna) ────────────────┐
│ tryb T1 · sterownik mkradio3 │
│ adres w ramce = ID MODUŁU │
Zimna woda │ NIESIE: odczyt objętości │
tarcza 35205528 ──────┤ numer z tarczy NIE występuje w tej ramce │
moduł 01411489 └───────────────────────────────────────────┘
┌─ RAMKA KODOWANA (zaszyfrowana) ────────────┐
│ tryb C1 · typ 0x37 „konwerter radiowy" │
│ adres w ramce = ID MODUŁU (ten sam) │
│ jawny nagłówek: NUMER Z TARCZY 35205528 │
│ payload: zaszyfrowany (mode 5) 🔒 │
└───────────────────────────────────────────┘
Ten sam schemat dla ciepłej wody: tarcza 34541205 ↔ moduł 10279416.
Zależności między numerami — o co tu chodzi:
- ID modułu (
01411489,10279416) to numer, którym licznik przedstawia się w eterze — w obu ramkach jest taki sam. To jego adres na liście. - Numer z tarczy (
35205528,34541205) — ten, który znasz z licznika — nie pojawia się w ramce jawnej w ogóle. Występuje tylko w jawnym nagłówku ramki zaszyfrowanej. Dlatego urządzenie potrafi go pokazać przy liczniku (para moduł ↔ tarcza), mimo że sam klucz jest nieznany. - Odczyt (objętość wody) niesie wyłącznie ramka niekodowana. To na niej
stoi cały odczyt Techema — dlatego liczniki działają automatycznie, sterownik
mkradio3, bez żadnego klucza. - Ramka zaszyfrowana jest przydatna z jednego powodu: to z niej wyciągamy numer z tarczy do sparowania. Co niesie jej payload — nie wiadomo i bez klucza się nie dowiemy (patrz niżej).
🔒 Klucza do ramki Techem nie da się odzyskać. W odróżnieniu od niektórych liczników z fabrycznym lub uproszczonym kluczem, Techem używa pełnego, losowego klucza per licznik — bruteforce nie wchodzi w grę. Ale nie jest on do niczego potrzebny: cały odczyt masz z ramki jawnej. Klucz zmieniłby coś tylko, gdybyś chciał zajrzeć do zaszyfrowanego payloadu, a ten i tak najpewniej powtarza dane, które już widzisz.
W skrócie: jeśli na liście zobaczysz przy jednym wodomierzu Techem numer
idinny niż numer z tarczy — tak ma być.idto moduł radiowy, numer z tarczy urządzenie dokłada z osobnej, rzadszej ramki zaszyfrowanej. Nie kasuj „obcego" licznika, zanim nie sprawdzisz, czy to nie moduł Twojego własnego.
W szczegółach licznika (lub przyciskiem + Dodaj licznik, jeśli chcesz dodać go ręcznie, zanim się odezwie) ustawiasz:
- ID licznika (8 cyfr) — numer urządzenia (przy ręcznym dodawaniu).
- Nazwa — przyjazna etykieta, np. „Zimna woda · łazienka".
- Sterownik — sposób dekodowania odczytów:
- auto (generyczny DIF/VIF) — dobry domyślny wybór, działa dla większości standardowych liczników.
- konkretny sterownik — wybierz, jeśli wiesz, jakiego producenta jest licznik i „auto" nie pokazuje sensownych wartości.
- Typ urządzenia — np. Wodomierz (zimna/ciepła woda), Ciepłomierz, Gazomierz, Licznik energii elektrycznej, Podzielnik kosztów (HCA), Czujnik/inne. Wpływa tylko na ikonę i opis; jeśli zostawisz „Nieznany", dostroi się z odebranej ramki.
- Klucz AES-128 — 32 znaki szesnastkowe (0–9, A–F). Wpisz, jeśli licznik nadaje zaszyfrowany (kłódka 🔒). Bez prawidłowego klucza wartości nie zostaną odczytane. Przycisk Usuń zapisany klucz czyści wcześniej zapisany klucz.
Wodomierze Sensus iPerl (i pokrewne Itron) — na tarczy numer bywa wydrukowany z prefiksem, np. „8 SEN 2086 3703". Do pola ID licznika wpisz po prostu osiem cyfr po oznaczeniu „SEN" (tu:
20863703) — firmware sam dopasuje je do ramki (nie odwracasz bajtów, nie przeliczasz na hex). iPerl ma wbudowany klucz fabryczny, więc pola Klucz AES nie wypełniasz — licznik czyta się automatycznie (sterownikiperl).
Zapisz przyciskiem Dodaj licznik. Licznik do usunięcia: Usuń licznik.
🔑 Skąd wziąć klucz AES? Od administratora/dostawcy liczników (spółdzielnia, firma rozliczeniowa, producent). Urządzenie samo nie złamie szyfrowania — bez klucza zobaczysz, że licznik istnieje i jak mocny ma sygnał, ale nie odczyty. Czy Twój model w ogóle potrzebuje klucza, sprawdzisz w macierzy zgodności — część liczników nadaje jawnie, a część ma klucz wbudowany w urządzenie.
Strumień ostatnich odebranych ramek radiowych. Najprostszy sposób sprawdzić, czy urządzenie w ogóle coś słyszy. U góry jest licznik ramek i przycisk Wyczyść (czyści tylko podgląd — nie kasuje liczników ani historii). Kropka przy ikonie zakładki sygnalizuje nowe ramki od ostatniego wejścia.
Gdy lista jest pusta, urządzenie jeszcze nic nie odebrało — sprawdź antenę, tryb radia (Ustawienia → Radio) i ustawienie urządzenia względem liczników.
Sekcje opisane w kolejności od góry panelu. Sekcja Moduł MRB-P1 ma własny rozdział — patrz rozdział 8.
Ustaw Użytkownik i Hasło, żeby panel wymagał logowania. Puste pole użytkownika = brak hasła (każdy w sieci ma dostęp do podglądu i ustawień).
🔐 Operacje wrażliwe wymagają ustawionego hasła. Dopóki nie ustawisz hasła panelu, zablokowane są (zwracają błąd 403):
- Aktualizacja firmware (OTA) — żeby nikt z Twojej sieci nie wgrał obcego oprogramowania na świeżym urządzeniu,
- Eksport i import konfiguracji — bo plik zawiera klucze AES Twoich liczników.
Podgląd liczników i pierwsza konfiguracja Wi-Fi działają bez hasła, ale by aktualizować firmware lub robić kopie — najpierw ustaw hasło tutaj. Tym bardziej, jeśli wpisujesz klucze AES.
🛡️ Ochrona przed zgadywaniem hasła: po kilku błędnych próbach logowania urządzenie chwilowo blokuje kolejne (na ok. minutę). To normalne — odczekaj i wpisz poprawne hasło.
Sieć, z którą łączy się urządzenie. Tu też zmienisz ją na inną (Skan otoczenia pomaga wybrać). Po zmianie urządzenie się zrestartuje.
Pozwala wysyłać odczyty do Home Assistant lub innego brokera MQTT.
- Włącz MQTT — przełącznik.
- Host / IP, Port (zwykle 1883; z TLS zwykle 8883), Użytkownik, Hasło — dane brokera.
- TLS / SSL i Certyfikat CA (PEM) — szyfrowanie połączenia, opis niżej.
- Prefix — początek tematów MQTT (np.
wmbus). - Alerty MQTT — dodatkowe powiadomienia.
Po włączeniu liczniki z nadaną nazwą pojawią się w Home Assistant automatycznie (autodiscovery) jako encje — nie trzeba nic dopisywać w konfiguracji HA.
Zmiany ustawień MQTT stosują się od razu, bez restartu urządzenia — mostek sam rozłącza się i łączy z nowymi parametrami.
Część liczników Techem nie nadaje przez radio stanu liczydła wprost, tylko dwie liczby związane z okresem rozliczeniowym — a mostek publikuje ich sumę. Co ta suma znaczy, zależy od rodzaju licznika:
- Wodomierze Techem (sterowniki
mkradio3/mkradio4) nadają stan liczydła w dniu rozliczenia oraz zużycie od tego dnia. Suma to po prostu bieżący stan liczydła — rośnie płynnie przez cały rok, także w dniu rozliczeniowym. Statystyki i panel Energia działają bez niespodzianek. - Ciepłomierze Techem (sterowniki
compact5/vario451) nadają zużycie poprzedniego okresu i zużycie bieżącego okresu — stanu liczydła w ogóle nie ma w ramce. W dniu rozliczenia suma spada: stare zużycie wypada, bieżące startuje od zera. Home Assistant traktuje spadek sumy narastającej jak wymianę licznika i tego jednego dnia dopisze do statystyk zawyżone zużycie.
Jeśli taki ciepłomierz jest dodany do panelu Energia, raz w roku — po dniu rozliczeniowym — trzeba poprawić statystykę ręcznie: Narzędzia deweloperskie → Statystyki → wybierz encję → Dostosuj sumę. Encje „Energia poprz. okresu" i „Energia bież. okresu" są tylko informacyjne: mostek celowo nie tworzy dla nich statystyk długoterminowych, więc nie da się ich (błędnie) dodać do panelu Energia.
Osobna sprawa to aktualizacja z wersji sprzed 1.16.79. Zmieniła się wtedy tożsamość encji, więc Home Assistant założył je od nowa, a panel Energia bywa zatrzymany w dniu aktualizacji, choć odczyty lecą normalnie. Historia nie przepada — zostaje pod starą nazwą i da się do niej wrócić. Procedura z gotowym skryptem jest na meterradiobridge.pl/ha-statystyki.
Włączenie TLS / SSL szyfruje połączenie z brokerem (podsłuch w sieci nie zobaczy danych ani hasła MQTT). Przełącznik sam podpowie port 8883.
Samo szyfrowanie nie sprawdza jednak, z kim rozmawiasz. Do tego służy pole Certyfikat CA (PEM) — wklej tu certyfikat urzędu (CA), który podpisał certyfikat Twojego brokera:
- broker w chmurze (np. HiveMQ Cloud) — certyfikat CA znajdziesz w dokumentacji dostawcy;
- własny broker (np. Mosquitto) — plik
ca.crtz przepisu poniżej.
Z ustawionym CA mostek weryfikuje certyfikat brokera (podpis, adres, daty
ważności) i odmówi połączenia z podszywającym się serwerem. Pod polem
widać, komu mostek ufa: nazwę CA, wystawcę, datę ważności i odcisk SHA-256
— możesz go porównać z odciskiem na serwerze
(openssl x509 -in ca.crt -noout -fingerprint -sha256).
Zasady pola: puste przy zapisie = zachowaj obecny certyfikat; wklejony tekst = ustaw nowy; Usuń CA = wróć do samego szyfrowania bez weryfikacji.
Weryfikacja certyfikatu wymaga poprawnego czasu — urządzenie musi mieć synchronizację NTP (sekcja System pokaże
NTP: ✓ OK).
Na maszynie z brokerem (przykład: Linux, mosquitto 2.x):
⚠️ Łączysz się po adresie IP? Wpisz ten adres w certyfikacie dwa razy: raz jakoIP.1i raz jakoDNS.1. Mostek (mbedtls w ESP32) sprawdza adres tylko po wpisachDNS— bez tego drugiego odrzuci certyfikat, a w logu brokera zobaczyszbad certificate. Widać to w polu[alt]poniżej.
# 1. Własny urząd (CA) — 10 lat; klucz ca.key trzymaj w tajemnicy
openssl genrsa -out ca.key 2048
openssl req -x509 -new -key ca.key -sha256 -days 3650 \
-subj "/CN=MQTT-CA-MOJDOM" -out ca.crt
# 2. Certyfikat serwera — w SAN adresy, którymi łączą się klienci
# (adres IP jako IP.x ORAZ DNS.x — patrz uwaga nad blokiem)
cat > san.cnf <<EOF
[req]
distinguished_name = dn
req_extensions = ext
prompt = no
[dn]
CN = MQTT-MOJDOM
[ext]
subjectAltName = @alt
keyUsage = critical,digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth
[alt]
IP.1 = 192.168.1.100
DNS.1 = 192.168.1.100
DNS.2 = localhost
EOF
openssl genrsa -out server.key 2048
openssl req -new -key server.key -config san.cnf -out server.csr
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-days 3650 -sha256 -extensions ext -extfile san.cnf -out server.crt
# 3. Konfiguracja mosquitto — dodatkowy listener TLS (jawny 1883 może zostać)
sudo install -m 644 server.crt /etc/mosquitto/certs/
sudo install -m 640 -g mosquitto server.key /etc/mosquitto/certs/
sudo tee /etc/mosquitto/conf.d/tls.conf >/dev/null <<EOF
listener 8883
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
EOF
sudo systemctl restart mosquittoW panelu mostka: Port 8883, TLS / SSL włączone, do pola
Certyfikat CA (PEM) wklej zawartość ca.crt — i Zapisz. Test z innego
komputera: mosquitto_sub -h 192.168.1.100 -p 8883 --cafile ca.crt -v -t 'wmbus/#'.
Wysyła odczyt jako HTTP POST (JSON) pod wskazany adres przy każdym pomiarze nazwanego licznika — przydatne do własnych skryptów/systemów.
- Włącz webhook, URL (HTTP POST) — np.
http://serwer:5678/webhook.
Włącz REST API, by odpytywać urządzenie z własnych skryptów/systemów. Adresy
zaczynają się od http://meterradiobridge.local (lub adresu IP), a odpowiedzi są w formacie
JSON. Jeśli ustawiłeś hasło panelu, zapytania wymagają go (HTTP Basic Auth,
np. curl -u użytkownik:hasło ...).
Najważniejsze endpointy:
| Metoda | Adres | Opis |
|---|---|---|
| GET | /api/status |
Stan urządzenia: wersja, czas pracy, Wi-Fi, NTP oraz diag (liczniki ramek, błędów, CRC, nieudanych deszyfrowań, duplikatów, resetów) |
| GET | /api/meters |
Lista wykrytych liczników z ostatnimi odczytami, sygnałem i statusem |
| GET | /api/drivers |
Lista dostępnych sterowników (do pola „Sterownik") |
| GET | /api/frames |
Ostatnie surowe ramki radiowe (podgląd/diagnostyka) |
| GET | /api/settings |
Bieżące ustawienia urządzenia |
| GET | /api/wifi_scan |
Skan sieci Wi-Fi w zasięgu |
| GET | /api/config/export |
Pobranie kopii konfiguracji liczników (JSON) |
| POST | /api/config/import |
Wgranie zapisanej konfiguracji liczników |
| POST | /api/meter |
Dodanie/zmiana licznika — {id, name, driver, key, active} |
| GET / DELETE | /api/meter/<id> |
Odczyt / usunięcie pojedynczego licznika |
| POST | /api/restart |
Restart urządzenia |
Przykład — szybki podgląd statusu z komputera:
curl http://meterradiobridge.local/api/status
T1 + C1 (868.95 MHz) — automatycznie. Tryby T1 i C1 nadają na tej samej częstotliwości (różni je tylko sposób kodowania), więc urządzenie nasłuchuje ich jednocześnie i samo rozpoznaje tryb każdej odebranej ramki. Nie musisz nic wybierać ani przełączać — liczniki T1 (np. wodomierze) i C1 (np. podzielniki ciepła Qundis) są łapane razem, bez utraty ramek.
- Alert „licznik zaginął" — godziny — po ilu godzinach ciszy wysłać alert,
że licznik przestał nadawać (
0= wyłączone). Wymaga włączonego MQTT i nadanej nazwy licznika; alert idzie na temat{prefix}/{id}/alert.
- Strefa — żeby czasy w panelu były lokalne. (Do systemów zewnętrznych dane wychodzą zawsze w czasie uniwersalnym UTC — to celowe i prawidłowe.)
Pola tylko do odczytu — bieżący stan urządzenia: Wersja oprogramowania,
IP, WiFi RSSI (siła sygnału), Wolny heap (wolna pamięć), Uptime
(czas pracy), liczba Liczników, Odbiór radiowy oraz status NTP
(synchronizacja zegara z internetu — daje poprawne znaczniki czasu). Te same
liczniki diagnostyczne są też dostępne pod
http://meterradiobridge.local/api/status (pole diag).
Dwa z tych pól ostrzegają, zanim zauważysz brak odczytów:
- Liczniki pokazują zapełnienie listy, np.
37 / 64. Urządzenie pamięta najwyżej 64 liczniki, a w bloku łapie też liczniki sąsiadów. Gdy lista jest pełna, nowy licznik wchodzi na miejsce wpisu bez nazwy i klucza, który milczy ponad 6 godzin — liczniki, którym nadałeś nazwę, nigdy nie są usuwane automatycznie. Jeśli pole zrobi się pomarańczowe, usuń z listy liczniki, których nie potrzebujesz. - Odbiór radiowy pokazuje
✓ OK, dopóki spływają ramki. Gdy przez pół godziny nie przyjdzie żadna, pojawi sięcisza …— urządzenie samo przestawia wtedy odbiornik co 30 minut. Jeśli cisza nie mija, sprawdź antenę i to, czy licznik jest w zasięgu.
Urządzenie z dostępem do internetu samo sprawdza mniej więcej co 6 godzin, czy jest nowe wydanie — ale nigdy nie instaluje go bez Twojej zgody. O instalacji zawsze decydujesz Ty.
- Sprawdzaj automatycznie — gdy pojawi się nowa wersja, zobaczysz ją
w tej sekcji panelu, a przy włączonym MQTT urządzenie wyśle alert
update_availablena temat{prefix}/bridge/alert. - Sprawdź teraz — sprawdza od razu i pokazuje wynik z krótkim opisem wydania.
- Zainstaluj teraz — pojawia się, gdy jest dostępna nowsza wersja. Po potwierdzeniu urządzenie pobiera wydanie, instaluje je i restartuje się na kilkanaście sekund; odczyty i ustawienia zostają. Instalacja wymaga ustawionego hasła panelu.
Każde wydanie jest podpisane cyfrowo — urządzenie odrzuci obraz uszkodzony albo podmieniony.
🌐 Urządzenie w sieci bez internetu? Od 6 września 2026 nie udostępniamy plików firmware do pobrania — aktualizacje idą wyłącznie przez OTA. Jeśli mostek nie ma dostępu do internetu, napisz do nas; pomożemy zaktualizować go w inny sposób. Pole Zarządzanie → Aktualizacja z pliku zostaje w panelu i działa, ale plik musisz otrzymać od nas.
Od wersji 1.16.85 instalacja OTA uruchamiana z panelu pobiera razem firmware i pasujący do niego interfejs — nie trzeba aktualizować panelu osobno, i to jest dziś jedyna droga aktualizacji. Pole interfejs w Zarządzanie → Aktualizacja z pliku zostaje dla obrazów przekazanych bezpośrednio przez nas. Przy aktualizacji z plików wgraj najpierw firmware, a po restarcie interfejs. Odczyty i ustawienia zostają.
Na dole zakładki Ustawienia:
- Eksport konfiguracji — pobiera plik z ustawieniami liczników (nazwy, sterowniki, klucze). Trzymaj go jako kopię zapasową.
- Import konfiguracji — wgrywa wcześniej zapisany plik (np. po wymianie urządzenia lub przywróceniu).
- Aktualizacja z pliku (.bin) — ręczne wgranie wydania otrzymanego
bezpośrednio od nas (plików firmware nie udostępniamy do pobrania ze strony):
wskaż plik
firmware.bini podpis.sig, urządzenie zweryfikuje podpis wydania i po wgraniu się zrestartuje. Strona ma też drugie pole — interfejs (littlefs.bin, sam panel web) — używane przy aktualizacjach interfejsu. Ustawienia (liczniki, MQTT, hasło…) są zachowane. - Uruchom ponownie — zwykły restart.
🔐 Eksport, import i aktualizacja firmware wymagają ustawionego hasła panelu (Ustawienia → Dostęp do panelu). Bez hasła te funkcje są zablokowane (błąd 403) — to ochrona kluczy AES i przed wgraniem obcego oprogramowania. Ustaw hasło, żeby z nich korzystać.
Twoje ustawienia liczników (nazwy, klucze) są zapisane w trwałej pamięci urządzenia i przeżywają restart oraz aktualizację firmware. Mimo to warto od czasu do czasu zrobić Eksport konfiguracji — to Twoja kopia na wszelki wypadek.
Konfiguracja liczników (nazwy, sterowniki, klucze AES) jest cenna — warto mieć jej kopię. Masz trzy mechanizmy; pierwszy wystarcza większości użytkowników.
1. Eksport / import ręczny (zalecane). W Ustawienia → Zarządzanie:
Eksport konfiguracji pobiera plik .json (na telefon/komputer), Import
konfiguracji go przywraca — jednym kliknięciem. Plik trzymaj w bezpiecznym
miejscu (zawiera klucze AES). Wymaga ustawionego hasła panelu (Dostęp do
panelu) — bez niego eksport/import są zablokowane (ochrona kluczy).
2. Przypominanie o kopii (przełącznik „Przypominaj o kopii", domyślnie WŁ.). Po dodaniu/zmianie licznika panel przypomni Ci o zrobieniu kopii. Możesz wyłączyć w Ustawienia → Kopia zapasowa.
3. Kopia do MQTT (retained) — opcjonalne, domyślnie WYŁĄCZONE.
Po włączeniu urządzenie publikuje całą konfigurację jako wiadomość retained na
temat {prefix}/_backup/config. Broker przechowuje ostatnią wersję, więc kopia
żyje poza urządzeniem i przetrwa nawet jego wymianę (przywracasz, wczytując tę
wiadomość z brokera/Home Assistant i importując).
⚠️ ZAGROŻENIE BEZPIECZEŃSTWA — przeczytaj przed włączeniem. Konfiguracja zawiera klucze AES Twoich liczników. Włączając kopię do MQTT:
- klucze AES opuszczają urządzenie i trafiają na broker, i to trwale (wiadomość retained zostaje, dopóki jej nie skasujesz),
- każdy z dostępem do brokera uzyskuje te klucze — a więc może odczytywać dane Twoich liczników (zużycie), a w pewnych scenariuszach je podszywać,
- na publicznym lub źle zabezpieczonym brokerze oznacza to wyciek kluczy.
Włączaj wyłącznie na własnym, zaufanym, zabezpieczonym brokerze: z uwierzytelnianiem i listami ACL, najlepiej po TLS, nieeksponowanym do internetu. Przy włączaniu panel poprosi o potwierdzenie tego ryzyka.
Wyłączenie: po wyłączeniu przełącznika i restarcie urządzenie czyści wiadomość retained (publikuje pustą). Pamiętaj jednak, że broker mógł ją wcześniej zalogować/zreplikować — w razie wątpliwości rozważ wymianę kluczy w licznikach.
Jeśli nie masz pewności — nie włączaj kopii do MQTT i korzystaj z eksportu ręcznego. Daje tę samą ochronę bez wystawiania kluczy poza urządzenie.
W panelu nie ma takiego przycisku — ustawienia fabryczne przywraca się
przyciskiem na urządzeniu: wciskasz go i trzymasz przez 5 sekund, aż
dioda LED błyśnie trzy razy i urządzenie się zrestartuje. Kasuje to wszystkie
ustawienia, liczniki (z kluczami AES) i historię, a urządzenie wraca do sieci
MeterRadioBridge-Setup jak przy pierwszym uruchomieniu. Krok po kroku i co
dokładnie ginie — rozdział 3.
Liczniki energii elektrycznej często nie nadają przez radio, za to mają przewodowy port P1 (gniazdo RJ12) do odczytu lokalnego. MRB-P1 to osobne urządzenie, które podłączasz do tego portu; odczyty przekazuje do mostu drogą radiową. Most traktuje je jak każdy inny licznik — pojawia się w zakładce Liczniki, trafia do MQTT i do Home Assistant na tych samych zasadach.
Wszystko ustawiasz w panelu mostu, w Ustawienia → Moduł MRB-P1. Do samego modułu nie podłączasz komputera i niczego w nim nie wpisujesz.
🔐 Najpierw ustaw hasło panelu (rozdział 7 → Dostęp do panelu). Parowanie i przekazanie kluczy to operacje wrażliwe. Bez zalogowania panel odpowie Panel wymaga zalogowania i nic nie zapisze.
Aktywny port P1. Gniazdo bywa fizycznie obecne, ale wyłączone — operator włącza je na wniosek. W Stoen służy do tego „Wniosek o uruchomienie / wyłączenie interfejsu lokalnego licznika zdalnego odczytu"; aktywacja jest bezpłatna, a operator zastrzega na nią do dwóch miesięcy. Złóż wniosek, zanim zaczniesz montaż.
Klucze EK i AK. Dane z portu P1 są zaszyfrowane. Operator wydaje do nich dwa różne sekrety: EK (klucz szyfrujący) i AK (klucz uwierzytelniający, którym moduł sprawdza, czy ramka jest prawdziwa). Poproś o oba w tym samym wniosku. Każdy ma 32 znaki szesnastkowe, czyli 16 bajtów.
Metryczkę urządzenia. To kartonik wielkości wizytówki, dołączony do MRB-P1 w pudełku. Znajdziesz na nim numer urządzenia, identyfikator, kod parowania i dwa kody QR. Bez metryczki nie sparujesz modułu z mostem — trzymaj ją przy dokumentacji, tak jak klucze, i nie zostawiaj przy urządzeniu.
Metryczka z kodami QR należy do MRB-P1. Każde urządzenie ma własną, więc nie mieszaj ich ze sobą — kody z jednej nie sparują drugiego.
Otwórz Ustawienia → Moduł MRB-P1. Dopóki moduł nie jest sparowany, panel pokazuje formularz parowania.
- Przepisz numer urządzenia do pola Numer urządzenia MRB-P1. Na
metryczce stoi w postaci
MRB-P1-70000042; do panelu wpisujesz same cyfry, czyli70000042. - Zeskanuj telefonem górny kod QR (podpisany
DEVICE ID), skopiuj wynik i wklej go w pole Identyfikator urządzenia (DEVICE ID). - Zeskanuj dolny kod (podpisany
KOD PAROWANIA) i wklej w pole Kod parowania. - Kliknij Sparuj moduł.
- Panel pokaże Czekam, aż właściwy moduł MRB-P1 zgłosi się radiowo. Moduł odzywa się co kilkadziesiąt sekund, więc parowanie zwykle trwa chwilę.
Wielkość liter, spacje i myślniki nie mają znaczenia — panel je porządkuje. Liczy się, żeby po wklejeniu było 32 znaki; inaczej zobaczysz Identyfikator i kod parowania muszą mieć po 32 znaki hex.
⚠ Oba kody wyglądają tak samo. Każdy to 32 znaki, żaden nie mówi o sobie, którym jest — rozróżnia je wyłącznie podpis na metryczce. Wklejone odwrotnie nie zostaną odrzucone od razu: parowanie po prostu się nie uda, a panel napisze Moduł nie potwierdził parowania, tak samo jak przy module bez zasilania. Jeśli to zobaczysz, najpierw sprawdź, czy kody nie zamieniły się miejscami.
Jeśli kod QR jest uszkodzony albo nie masz czym go zeskanować, przepisz obie wartości ręcznie — po lewej stronie metryczki, pod nagłówkami IDENTYFIKATOR URZĄDZENIA (DEVICE ID) i KOD PAROWANIA, stoją te same znaki w grupach po cztery. Spacje możesz pominąć albo wpisać, to bez różnicy.
Most sparuje wyłącznie urządzenie zgodne z metryczką. Numer urządzenia to ten sam numer, pod którym moduł pojawi się później w zakładce Liczniki.
Panel ma jeszcze przycisk Wczytaj kartę recovery, który przyjmuje plik JSON i wypełnia wszystkie trzy pola naraz. To ścieżka serwisowa — plik powstaje przy produkcji modułu i zwykle nie trafia do klienta. Jeśli go dostałeś, użyj go zamiast kroków 1–3.
Jeden most obsługuje jeden moduł. Jeżeli spróbujesz sparować drugi, panel odmówi: bridge already has a paired MRB-P1; local recovery required. Zmiana wymaga lokalnej procedury recovery na module.
Po sparowaniu w tej samej sekcji pojawia się karta Klucze licznika P1.
- Wpisz Klucz szyfrujący EK — 32 znaki hex.
- Wpisz Klucz uwierzytelniający AK — 32 znaki hex.
- System title (opcjonalnie) zostaw pusty. Wypełnij go tylko wtedy, gdy operator przekazał tę wartość dla Twojego licznika; ma wtedy 16 znaków hex.
- Kliknij Przekaż klucze do modułu.
Przycisk Pokaż przy polu odsłania wpisaną wartość, żeby dało się ją porównać z pismem od operatora.
Przy złej długości panel nie wyśle niczego i napisze wprost: EK i AK muszą mieć po 32 znaki hex. System title pozostaw pusty albo wpisz 16 znaków hex.
Nowe klucze nie zastępują od razu działającej konfiguracji. Najpierw trafiają do modułu jako kandydat i muszą się sprawdzić na prawdziwej ramce z licznika. Zobaczysz kolejno:
| Komunikat | Co znaczy |
|---|---|
| Klucze przekazane | moduł potwierdził odbiór |
| Klucze są zapisane. Moduł czeka na poprawną ramkę z licznika P1 | trwa sprawdzanie na żywych danych |
| Moduł potwierdził poprawne odszyfrowanie i odczyt danych P1 | klucze są aktywne |
Dzięki temu pomyłka przy przepisywaniu nie kasuje konfiguracji, która działała. Jeżeli stan długo nie wychodzi poza czekanie na ramkę, sprawdź, czy operator faktycznie włączył port, czy przewód siedzi w gnieździe i czy EK z AK nie zamieniły się miejscami.
Klucze wpisujesz w jedną stronę. Panel nie pokaże ich ponownie i nie umieszcza ich w kopii konfiguracji mostu.
Karta Stan MRB-P1 odpowiada na pytanie „czy to w ogóle działa". Przycisk Sprawdź teraz odpytuje moduł od razu, bez czekania na kolejny heartbeat.
Wiersz Łączność ma sześć wartości:
| Łączność | Znaczenie |
|---|---|
| Działa | moduł, radio i wejście P1 działają poprawnie |
| Bez ramki | moduł odpowiada radiowo, ale nie odebrał jeszcze ramki z portu P1 |
| Dane P1 nieaktualne | moduł odpowiada, lecz od ponad 3 minut nie odczytał poprawnej ramki |
| Brak kluczy | moduł odpowiada, ale nie ma ani aktywnej, ani testowej konfiguracji EK/AK |
| Brak kontaktu | moduł nie odpowiedział — sprawdź jego zasilanie i zasięg |
| Brak danych | most jeszcze o nic nie pytał; naciśnij Sprawdź teraz |
Pozostałe wiersze przydają się przy zgłaszaniu problemu: Ostatni kontakt, Ostatni poprawny odczyt P1, Firmware MRB-P1, Czas pracy, Ostatni restart, Sygnał radiowy, Ramki P1 poprawne / odebrane, Błędy P1: transport / szyfr / tag / zapis NVS, Radio: nadane / odrzucone / awarie oraz Konfiguracja EK/AK.
Rozdzielenie „poprawne / odebrane" mówi więcej niż sama liczba odczytów. Ramki odbierane, ale nieodszyfrowane, wskazują na klucze; brak odbieranych w ogóle — na port albo przewód.
Karta Zbieranie ramki P1 pobiera z modułu jeden surowy telegram, żeby dało się go obejrzeć bez rozbierania instalacji.
- Rozpocznij zbieranie — moduł zapisze najbliższą pełną ramkę z licznika.
- Pobierz zebraną ramkę, gdy stan zmieni się na Gotowa.
- Usuń wynik sesji, kiedy plik nie jest już potrzebny.
Zbieranie idzie w tle: Możesz opuścić ten ekran — urządzenie pracuje dalej. Zanim zaczniesz nową sesję, zakończ poprzednią (Przerwij zbieranie), inaczej panel odpowie Najpierw przerwij aktywne zbieranie. Jeżeli transmisja się urwie, zobaczysz Nie dotarła cała ramka. Spróbuj ponownie.
Pobrany plik zawiera zaszyfrowane dane licznika i liczniki diagnostyczne. Nie ma w nim EK ani AK, więc możesz go dołączyć do zgłoszenia.
| Problem | Co zrobić |
|---|---|
| Panel pokazuje tylko formularz parowania | Moduł nie jest sparowany. Wczytaj kartę recovery i kliknij Sparuj moduł. Przy wpisywaniu kluczy przed parowaniem zobaczysz Najpierw sparuj moduł MRB-P1 z tym mostem. |
| Moduł nie potwierdził parowania | Trzy przyczyny, w tej kolejności: kody QR wklejone w odwrotne pola (patrz ostrzeżenie w kroku 1), moduł bez zasilania albo za daleko, metryczka od innego egzemplarza. |
| Karta recovery jest niekompletna albo uszkodzona | Wczytany plik JSON nie ma wszystkich trzech wartości. Przepisz dane z metryczki ręcznie albo zeskanuj kody. |
| Moduł nie potwierdził odebrania kluczy | Moduł nie odpowiedział na przekazanie konfiguracji. Sprawdź zasilanie i zasięg, potem spróbuj ponownie. |
| Moduł odrzucił niepoprawną konfigurację kluczy | Klucze dotarły, ale moduł ich nie przyjął. Zweryfikuj EK i AK z pismem od operatora. |
| Moduł obsługuje już inną operację | Trwa parowanie, przekazywanie kluczy albo zbieranie ramki. Odczekaj i powtórz. |
| Łączność: Bez ramki przez dłuższy czas | Port P1 nie jest aktywny albo przewód nie przewodzi. Zacznij od potwierdzenia u operatora, że interfejs został włączony. |
| Łączność: Dane P1 nieaktualne | Odczyty przychodziły, a przestały. Sprawdź przewód i zasilanie modułu; Ostatni poprawny odczyt P1 pokaże, kiedy urwały się dane. |
| Licznik wersji konfiguracji został wyczerpany | Skończył się zapas numerów wersji konfiguracji. Wymagana jest lokalna procedura recovery na module. |
- EK i AK są przypisane do odczytu Twojego licznika. Nie wysyłaj ich sprzedawcy urządzenia i nie pokazuj na zrzutach ekranu.
- Metryczkę trzymaj razem z dokumentacją urządzenia, nie przy module. Kody QR niosą kod parowania — kto je sfotografuje, ten może sparować moduł z innym mostem.
- Kopia konfiguracji mostu nie zawiera kluczy P1 ani kodu parowania.
- Przywrócenie ustawień fabrycznych mostu (rozdział 3) kasuje również parowanie z modułem. Po nim trzeba je wykonać od nowa, z metryczką.
| Problem | Co zrobić |
|---|---|
| Nie widzę żadnych liczników | Daj kilka–kilkanaście minut (niektóre liczniki nadają rzadko, nawet raz na godzinę). Sprawdź, czy antena jest dokręcona, i ustaw urządzenie bliżej liczników. T1 i C1 są nasłuchiwane jednocześnie — trybu nie trzeba zmieniać. |
| Licznik widoczny, ale bez odczytów, z kłódką 🔒 | Jest zaszyfrowany — wpisz Klucz AES-128 w jego konfiguracji. |
| Wartości wyglądają bez sensu | Zmień Sterownik z „auto" na właściwy dla producenta, albo sprawdź Typ urządzenia. |
meterradiobridge.local nie otwiera się |
Wejdź po adresie IP urządzenia (znajdziesz go na liście klientów routera). |
| Nie pamiętam hasła do panelu | Przywróć ustawienia fabryczne: trzymaj przycisk na urządzeniu przez 5 s, aż dioda błyśnie trzy razy (rozdział 3). Skasuje to również liczniki i klucze AES — trzeba je wpisać na nowo. |
| Dioda mruga „dwa błyski i przerwa", choć urządzenie ma być w moim Wi-Fi | Nie udało mu się połączyć, więc wystawił sieć MeterRadioBridge-Setup — połącz się z nią i sprawdź nazwę sieci oraz hasło (rozdział 2). Częsta przyczyna: sieć jest na paśmie 5 GHz albo router jest za daleko. |
| Nie mogę zaktualizować firmware / wyeksportować konfiguracji (błąd 403) | Te funkcje wymagają ustawionego hasła panelu — ustaw je w Ustawienia → Dostęp do panelu i spróbuj ponownie. |
| „Za dużo prób logowania" (błąd 429) | Zbyt wiele błędnych haseł pod rząd — odczekaj ok. minutę i wpisz poprawne hasło. |
| Słaby sygnał (RSSI ~ −90) | Przesuń urządzenie bliżej liczników / wyżej / z dala od powierzchni metalowych i innych nadajników. |
| Zgubiłem Wi-Fi (zmiana routera) | Urządzenie po pewnym czasie samo wystawi awaryjną sieć MeterRadioBridge-Setup — połącz się i skonfiguruj nowe Wi-Fi. |
| MQTT z TLS nie łączy się (a bez TLS działa) | 1) Sprawdź port (TLS zwykle 8883). 2) Sprawdź NTP (System → NTP: ✓ OK) — weryfikacja certyfikatu wymaga poprawnego czasu. 3) Jeśli łączysz się po adresie IP z własnym CA: adres musi być w certyfikacie serwera wpisany w SAN także jako DNS (patrz przepis w sekcji MQTT po TLS); objaw po stronie brokera to bad certificate w logu. 4) Upewnij się, że wkleiłeś CA brokera, nie inny certyfikat — pod polem widać nazwę i odcisk zaufanego CA. |
Czasem licznik jest widoczny (urządzenie odbiera jego ramki), ale:
- pokazuje „Inny"/brak sterownika i żadnych odczytów, albo
- pokazuje bezsensowne wartości mimo wybranego sterownika.
To znaczy, że dla tego konkretnego modelu nie mamy jeszcze poprawnego dekodera. Możesz pomóc go dorobić — i to bardzo skutecznie, bo najlepszym materiałem do napisania dekodera są prawdziwe ramki z prawdziwego licznika wraz ze stanem z jego tarczy. Z takich zgłoszeń budujemy bazę testową, dzięki której kolejne wersje firmware rozpoznają coraz więcej liczników.
💡 Najważniejsza rzecz: odczyt z tarczy/wyświetlacza licznika (np.
123,456 m³) zapisany razem z datą i godziną. To „punkt odniesienia", bez którego ramka jest tylko ciągiem bajtów — a z nim da się rozłożyć ją na czynniki i napisać dekoder. Jeśli licznik ma kilka pól (np. stan bieżący i rozliczeniowy), spisz wszystkie.
Zanim zbierzesz materiał, zajrzyj do macierzy zgodności. Część modeli ma tam opisany status — od „potrzebny klucz indywidualny" po „format własnościowy, nieobsługiwany" — więc od razu widać, czy brakuje dekodera, czy tylko klucza.
- Kilka ramek tego licznika (im więcej, tym lepiej — najlepiej zebrane w różnym czasie, np. co kilka godzin/dni, żeby wartości się zmieniły).
- Odczyt z tarczy licznika + data i godzina odczytu (patrz ramka wyżej).
- Oznaczenia z naklejki/tabliczki licznika: producent, model, numer seryjny.
- (opcjonalnie) Klucz AES, jeśli licznik jest zaszyfrowany (kłódka 🔒) i chcesz, żeby dało się go zdekodować — patrz uwaga o prywatności niżej.
Sposób A — jedna ramka, najprościej. Włącz REST API (Ustawienia →
REST API) i pobierz szczegóły licznika — z komputera w tej samej sieci
(<numer> = numer licznika z panelu):
curl http://meterradiobridge.local/api/meter/<numer>
W odpowiedzi pole raw_hex to surowa ramka w hex — skopiuj cały ten ciąg.
Wystarczy na początek, ale do dekodera lepiej zebrać kilka.
Sposób B — wiele ramek, zalecane. Pobierz ostatnie ramki do pliku:
curl http://meterradiobridge.local/api/frames > ramki.json
Plik zawiera listę ostatnich ramek; każda ma m.in. pola:
id_str— numer licznika (po nim rozpoznasz „swój"),mfr,type— producent i typ urządzenia,enc— czy zaszyfrowana,parsed— czy się zdekodowała,raw_hex— surowa ramka (to jest najważniejsze).
Powtórz pobranie po jakimś czasie i dołącz kilka plików — wtedy widać, jak zmieniają się wartości (to bardzo pomaga w odgadnięciu, który bajt jest licznikiem).
Jeśli
meterradiobridge.localnie działa, użyj adresu IP urządzenia (lista klientów routera albo Ustawienia). Gdy ustawiłeś hasło panelu, dodaj-u użytkownik:hasło.
Zgłoszenia o nieczytających się / nierozpoznanych licznikach przyjmujemy jako issue w publicznym repozytorium projektu:
🐙 github.com/jchrzaniuk/MeterRadioBridge/issues → przycisk New issue. Potrzebne jest darmowe konto GitHub.
W zgłoszeniu dołącz (im więcej, tym szybciej powstanie dekoder):
- Ramki hex — wklej zawartość pliku
ramki.jsonalbo same wartościraw_hex(możesz w bloku kodu ``` … ```). - Odczyt z tarczy licznika + data i godzina odczytu.
- Model licznika z naklejki: producent, model, numer seryjny.
- (opcjonalnie) klucz AES, jeśli licznik jest zaszyfrowany — patrz uwaga o prywatności niżej (issue jest publiczne, więc klucza i numeru seryjnego nie podawaj, jeśli traktujesz je jako wrażliwe).
⚠️ Issue na GitHubie jest PUBLICZNE — widzi je każdy. Wszystko, co tam wkleisz, staje się jawne. Przemyśl to:
- Ramka nieszyfrowana zawiera bieżący odczyt Twojego licznika (zużycie). Jeśli traktujesz to jako dane wrażliwe — rozważ, zanim wkleisz publicznie.
- Klucza AES NIE wklejaj do publicznego issue. To sekret Twojego licznika — pozwala odczytać wszystkie jego transmisje. Bez klucza też pomożesz (ramka + model i odczyt z tarczy). Jeśli dekoder będzie wymagał klucza, poprosimy o przesłanie go kanałem prywatnym (np. wiadomość prywatna na GitHubie).
- Numer seryjny bywa wrażliwy — możesz go pominąć lub zamazać; producent i model wystarczą do rozpoznania.
🙌 Dzięki takim zgłoszeniom lista wspieranych liczników rośnie. Każdy nowy, potwierdzony odczytem z tarczy egzemplarz trafia do testów i zostaje wsparty w kolejnych aktualizacjach firmware (OTA).
- Ustaw hasło panelu (Dostęp do panelu) — zwłaszcza z kluczami AES.
- Zrób eksport konfiguracji po skonfigurowaniu liczników.
- Postaw urządzenie centralnie względem liczników, z dobrą widocznością radiową.
- Zasilaj ze stabilnego źródła (dobra ładowarka USB) — urządzenie pracuje 24/7.
Urządzenie ma wbudowany zestaw sterowników rozpoznających liczniki różnych
producentów. Dla większości standardowych liczników (Kamstrup, Landis+Gyr, Sensus,
Diehl i inne nadające zgodnie z normą EN 13757) wystarcza auto (generyczny
DIF/VIF) — po odszyfrowaniu czyta je bez dedykowanego sterownika. Konkretny
sterownik z listy poniżej wybierz dopiero wtedy, gdy „auto" nie pokazuje sensownych
wartości (sekcja 5 → Sterownik). Pełną, aktualną listę masz zawsze w panelu (pole
Sterownik) oraz pod GET /api/drivers.
🔑 Szczegółowa macierz zgodności jest na stronie. Tabele poniżej to skrót. Pod adresem meterradiobridge.pl/zgodnosc znajdziesz to samo z wersjami telegramów, rodzajem wymaganego klucza i informacją, co jest potwierdzone prawdziwą ramką, a co dopiero czeka na próbkę. Jest tam też osobna tabela B METERS oraz lista urządzeń, których dziś nie odczytamy.
Liczniki nadające zgodnie z normą EN 13757 urządzenie czyta samo, bez wybierania sterownika — jawne od razu, zaszyfrowane po wpisaniu klucza AES (sekcja 5). Poniżej rodziny i modele potwierdzone, że działają na „auto" (większość zweryfikowana realnymi ramkami). To nie wymaga żadnego z dedykowanych sterowników z dalszej części.
| Medium | Producent / model | Klucz |
|---|---|---|
| 💧 Woda | Minol / Zenner (Minomess), Sontex (Supercom 587), Qundis / Zenner (QWater 5.5) | bez klucza |
| 💧 Woda | Axioma (Qalcosonic), Kamstrup, Sensus, Diehl i inne EN 13757 | jawne: bez; szyfrowane: 🔒 |
| 🔥 Ciepło | Landis+Gyr (UltraHeat T550 / UH50), Qundis (QHeat 5.5) | bez klucza |
| 🔥 Ciepło | Kamstrup (Multical), Techem / L+G (OEM) i inne EN 13757 | jawne: bez; szyfrowane: 🔒 |
| 🔥 Gaz | Elster / Honeywell, Diehl (Aerius) | bez klucza |
| ⚡ Energia | ABB (B23 / B24) i inne EN 13757 | jawne: bez; szyfrowane: 🔒 |
| 🌡️ HCA | Sontex (868) | bez klucza |
Jeśli Twojego producenta nie ma na liście, a licznik nadaje wg EN 13757 (większość nowych liczników radiowych) — i tak zostanie odczytany na „auto". Dedykowane sterowniki poniżej są tylko dla formatów własnościowych, gdzie sam EN nie wystarcza.
Poniżej dedykowane sterowniki do formatów własnościowych (gdzie sam EN nie wystarcza), w podziale na medium. Pogrubione = potwierdzone na realnych licznikach. 🔒 = wymaga klucza AES licznika (od dostawcy/administratora).
| Sterownik | Producent / linia | Klucz |
|---|---|---|
mkradio3, mkradio3a, mkradio4, mkradio4a |
Techem MK Radio 3/4 | bez klucza |
izar |
Diehl / IZAR / Sappel (SAP) / Hydrometer (PRIOS) | bez klucza |
apator162 |
Apator AT-WMBUS-16-2 | klucz zerowy wbudowany |
apatorna1 |
Apator NA-1 | indywidualny klucz AES 🔒 |
apator_water_b6 |
Apator AT-WMBUS (wodomierz, format 05/07 lub 08/07) | klucz zerowy wbudowany |
apator172 |
Apator AT-WMBUS-17-2 (nakładka JS-02 Smart+/C+) | bez klucza w potwierdzonym wariancie |
iperl |
Sensus iPerl | klucz fabryczny (wbudowany) |
hydrus |
Diehl Hydrus | klucz fabryczny (auto); per-instalacja 🔒 |
bmt |
BMeters Hydrodigit | bez klucza (auto) |
istawater |
ista | 🔒 |
| Sterownik | Producent / linia | Klucz |
|---|---|---|
compact5, vario451 |
Techem | bez klucza |
sharky |
Diehl Sharky | klucz fabryczny |
bmt |
BMeters (Hydrocal M3) | bez klucza |
| standard EN | Techem / Landis+Gyr (OEM) | jawne: bez; szyfrowane: 🔒 |
| Sterownik | Producent / linia | Klucz |
|---|---|---|
fhkvdataiii, fhkvdataiv |
Techem FHKV | iii: bez; iv: 🔒 |
bfw240radio |
BFW (podzielnik radiowy) | bez klucza |
qcaloric |
Qundis (kompakt CI=0x72; Caloric 5.5) | bez klucza |
apatoreitn |
Apator EITN (podzielnik elektroniczny) | bez klucza |
| Sterownik | Producent / linia | Klucz |
|---|---|---|
amiplus |
Iskra IE.5 / Apator / Elgama GAMA | EGM (Tauron/PGE): 🔒 |
omnipower |
Kamstrup OmniPower | 🔒 |
| Sterownik | Producent / linia | Klucz |
|---|---|---|
unismart |
Apator UniSmart / Amiteq | bez klucza (auto) |
apator08 |
Apator (gazomierz/wodomierz, format 08) | bez klucza |
| standard EN „1A" | Apator / Apt (jawne) | bez klucza |
Klucze: część liczników (Diehl/Sappel PRIOS, wodne Apatora, BMeters, niektóre Techemy) nadaje nieszyfrowane mimo własnościowego formatu — urządzenie odczyta je bez klucza. Pozostałe wymagają klucza AES (🔒), który dostajesz od dostawcy/administratora liczników.
Repeater w sieci? Urządzenia infrastruktury (np. repeater Fidelix) urządzenie rozpoznaje i oznacza — nie pomyli ich z licznikiem.
Lista rośnie z każdą aktualizacją firmware — jeśli Twojego licznika brakuje, patrz sekcja 10 („Nierozpoznany licznik? Pomóż ulepszyć dekodowanie").
- wM-Bus — radiowy standard liczników mediów (woda, ciepło, gaz) na 868 MHz.
- T1 / C1 — warianty trybu nadawania liczników; oba na 868.95 MHz, łapane jednocześnie. T1 to najczęstszy tryb wodomierzy, C1 m.in. podzielniki Qundis.
- id (adres nadawcy) — numer identyfikujący nadawcę w telegramie. Zwykle
równy numerowi na liczniku; gdy nadaje osobny moduł radiowy, to numer modułu,
a numer z tarczy bywa w środku telegramu (patrz „↳ licznik" /
tplid). - AES-128 — szyfrowanie transmisji; klucz to 32 znaki szesnastkowe.
- Sterownik (driver) — sposób interpretacji danych konkretnego producenta.
- RSSI — siła odbieranego sygnału w dBm (bliżej 0 = mocniejszy).
- MQTT — protokół do przesyłania danych m.in. do Home Assistant.
- OTA — bezprzewodowa aktualizacja oprogramowania, przez przeglądarkę.
Wersję oprogramowania i czas pracy sprawdzisz w Ustawienia → System. Przy
problemach technicznych pomocne są liczniki diagnostyczne — w tej samej sekcji
oraz pod adresem http://meterradiobridge.local/api/status (pole diag).