Kurs Home Assistant od Zera

Lekcja dodatkowa ★ Materiał uzupełniający Protokoły komunikacyjne w smart home

433/868 MHz i wM-Bus w Home Assistant

Jak odbierać 433/868 MHz w Home Assistant. RTL-SDR, rtl_433, wM-Bus, wmbusmeters, OMS, wodomierze, ciepłomierze, MQTT i szyfrowanie AES.

Moduł 3 · Lekcja bonusowa

433/868 MHz i wM-Bus w Home Assistant: RTL-SDR, rtl_433, liczniki i urządzenia RF

Home Assistant może odbierać znacznie więcej niż Zigbee, Wi‑Fi czy Bluetooth. Wokół domu pracują stacje pogodowe, termometry, TPMS, czujniki ogrodowe, wodomierze i ciepłomierze nadające w pasmach 433 i 868 MHz. Ta lekcja pokazuje, jak wejść w ten świat bez zgadywania i bez wrzucania wszystkich transmisji RF do jednego worka.

868 MHz to nie protokół. Najpierw odbierasz sygnał, potem rozpoznajesz protokół, następnie dekodujesz dane i dopiero na końcu tworzysz encję Home Assistant.

Pierwsza część dotyczy rtl_433 i RTL-SDR. Pokazujemy lokalny odbiór stacji pogodowych, Acurite, termometrów, TPMS, czujników ogrodowych i innych prostych urządzeń RF. Dane mogą trafiać bezpośrednio do MQTT, a dodatek MQTT Auto Discovery potrafi tworzyć encje HA automatycznie.

Automatyczne wykrywanie ma też ciemną stronę: dobry SDR potrafi usłyszeć pół osiedla. Dlatego uczymy identyfikować własny sprzęt po modelu, ID, kanale i fizycznej zmianie wartości, porządkować retained discovery oraz świadomie filtrować urządzenia, których nie potrzebujemy.

Druga część to osobny świat wM-Bus i OMS. Tutaj nie rozmawiamy o zwykłym termometrze, lecz o wodomierzach, ciepłomierzach, podzielnikach, gazomierzach i licznikach energii. Pokazujemy architekturę licznik → odbiornik → wmbusmeters → MQTT → Home Assistant oraz różnicę między trybami C1/T1/S1, identyfikatorem licznika, driverem i kluczem AES.

Przykłady z lekcji
  • Apator Ultrimis i E‑ITN;
  • Kamstrup Multical/flowIQ;
  • Diehl Hydrus, IZAR i Sharky;
  • Qundis QWater/QHeat;
  • Itron, Sensus, Zenner, Bmeters;
  • wybrane liczniki energii obsługiwane przez wmbusmeters.

Szczególnie ważny jest temat szyfrowania. Możesz widzieć ID i RSSI swojego licznika, ale nie widzieć zużycia, ponieważ payload jest zaszyfrowany. Wtedy potrzebujesz legalnie pozyskanego klucza AES. Przy Kamstrup pokazujemy pliki KEM, a przy innych producentach podkreślamy, że klucza nie zgadujemy ani nie pozyskujemy z cudzych instalacji.

Case study Apator Ultrimis pokazuje jeszcze jedną pułapkę: driver może poprawnie dekodować licznik, ale Home Assistant nadal nie tworzy encji, jeżeli brakuje konfiguracji MQTT Discovery. To prowadzi do jednej z najważniejszych zasad tej lekcji: odbiór, dekodowanie i integracja z HA to trzy oddzielne etapy.

Porównujemy też odbiorniki RTL-SDR z dedykowanymi donglami IMST/Amber/Metis, pokazujemy zdalny odbiornik w piwnicy lub garażu, kontrolę „ostatniego telegramu”, ręczne sensory MQTT z state_class: total_increasing oraz problemy po aktualizacji driverów wmbusmeters.

Na końcu wyznaczamy bardzo jasną granicę: RTL-SDR słucha, nie nadaje. Temat replay, klonowania pilotów i obchodzenia zabezpieczeń nie jest celem kursu. Budujemy lokalny, pasywny odbiór własnych urządzeń i liczników.

Lekcja prowadzi też przez pierwsze komendy diagnostyczne. Zaczynamy od zwykłego rtl_433 -F json bez Home Assistanta, potem dokładamy MQTT i dopiero na końcu Discovery. Przy wM-Bus używamy --listdrivers, --listfields i --analyze, dzięki czemu najpierw sprawdzamy decoder, a dopiero później tworzymy encje.

Pokazujemy też różnicę między „driver został rozpoznany” a „dane są poprawne”. Qundis i Diehl są dobrymi przykładami, że nowe rewizje urządzeń albo zaszyfrowany payload mogą dawać poprawnie odebrany telegram, ale nadal nie dawać wiarygodnego zużycia.

Na końcu dochodzi test po restarcie Home Assistant, Mosquitto i hosta z donglem, backup konfiguracji odbiornika i kluczy AES oraz zasada, że stary stan licznika nie może przez dwa dni udawać aktualnego tylko dlatego, że odbiornik przestał działać.

Lekcja odpowiada też na praktyczne pytanie „jeden SDR czy dwa?”. Jeden odbiornik wystarcza do nauki i rozpoznania pasm, ale przy ciągłym monitoringu 433 i 868 MHz osobne tunery i anteny mogą być znacznie bardziej przewidywalne. Krótkiego telegramu nie da się odebrać, jeśli tuner w tej sekundzie słucha innego pasma.

Nie kończymy na pierwszym poprawnym telegramie. Po tygodniu sprawdzamy przerwy w danych, restart hosta i brokera, duplikaty encji, świeżość odczytów i zgodność wartości z fizycznym licznikiem. Dzięki temu SDR staje się częścią infrastruktury domu, a nie jednorazowym eksperymentem.

W części licznikowej nie zatrzymujemy się na teorii OMS. Pokazujemy, jak sprawdzić dostępne drivere wmbusmeters, jak użyć --listfields i --analyze oraz dlaczego driver wykryty automatycznie nie zawsze oznacza poprawnie zdekodowane dane. Qundis, Diehl i nowe rewizje liczników dobrze pokazują, że nazwa producenta to za mało — liczą się wersja urządzenia, format telegramu i aktualny decoder.

Osobno omawiamy świeżość danych. Licznik może nadawać rzadziej nocą, dongle może nie wrócić po restarcie, a Home Assistant nadal pokazywać ostatnią wartość. Dlatego uczymy budować kontrolę „ostatniego telegramu”, sensowny timeout i test po restarcie HA, MQTT oraz hosta z odbiornikiem.

Dostajesz także dwa kompletne plany wdrożenia: osobny dla rtl_433 i osobny dla wM-Bus. Dzięki temu kursant nie próbuje od razu uruchamiać SDR, MQTT, Discovery, AES i dashboardu w jednym kroku. Najpierw udowadnia radio, później decoder, potem MQTT i dopiero na końcu Home Assistant.

Po tej lekcji kursant potrafi odróżnić częstotliwość od protokołu, zwykły RF od wM-Bus, odbiór od dekodowania oraz poprawnie zaplanować pierwszy lokalny tor danych do Home Assistant.

🔒

Pełna treść dostępna po zakupie kursu

Za symboliczne 29 zł zyskujesz dostęp do 200+ stron praktycznej wiedzy o Home Assistant — wszystkich lekcji, przykładów i aktualizacji.

  • Dożywotni dostęp do całego kursu
  • Nowe lekcje bez dodatkowych opłat
  • Bez reklam i bez abonamentu

Nikt nie jest nieomylny. Coś nie gra w tej lekcji? Zgłoś błąd