Czym jest MeshMonitor
MeshMonitor to otwarta aplikacja webowa do nadzoru sieci mesh z panelu w przeglądarce. Instaluje się ją na własnym komputerze lub serwerze, najczęściej jako kontener Docker – gotową paczkę z programem i wszystkim, czego on potrzebuje. Łączy się z radiami Meshtastic i MeshCore oraz z brokerami MQTT, czyli serwerami, do których bramki przesyłają odebrane pakiety.
Raport zasięgu (Coverage Report) pojawił się 25 września 2026 roku w testowym wydaniu 4.16.2-rc3, a 29 września trafił do stabilnej wersji 4.16.2.
Raport zastępuje moduł Range Test, usunięty z firmware Meshtastic 2.8. W Range Test dwa węzły wymieniały specjalne pakiety testowe; tu punktem pomiarowym jest każdy odbiornik, który usłyszy zwykłą pozycję nadawcy.
Jak przygotować przejazd pomiarowy
Kanał zajmuje tylko węzeł pomiarowy: urządzenie z GPS, które w czasie jazdy lub spaceru rozgłasza pozycję. Dokumentacja zaleca dla niego hop_limit 0 (inne węzły nie przekazują pozycji dalej, więc mapa pokazuje zasięg bezpośredni), włączone smart position i odstęp co najmniej 30 s. Przy ustawieniu LongFast, wysyłce pozycji co 30 s i hop_limit 0 węzeł pomiarowy zajmuje według szacunku dokumentacji około 2% czasu kanału. Tak krótki odstęp działa tylko na prywatnym kanale; na kanale z domyślnym kluczem firmware wydłuża go do co najmniej 5 minut. Odbiorniki z firmware starszym niż 2.7.20 odrzucają pakiety z hop_limit 0 – wtedy lepszy jest hop_limit 1. Pozostaw opcję Override duty cycle wyłączoną. Jej włączenie usuwa programowe ograniczenie czasu nadawania i może doprowadzić do przekroczenia dopuszczalnego limitu.
Co trafia na mapę
Raport jest dostępny w sekcji Reports → Coverage. Zapisuje pozycję nadawcy wraz z informacją, które odbiorniki usłyszały pakiet, oraz dostępnymi wartościami SNR, RSSI i liczbą przeskoków, czyli tym, ile razy inne węzły przekazały pakiet dalej. SNR określa stosunek sygnału do szumu, a RSSI poziom odebranego sygnału. Kolor punktu zależy od SNR albo RSSI, do wyboru. Gdy radio nie podało odczytu, punkt ma kolor „brak danych”.
Kliknięcie punktu pokazuje każdy odbiór tej pozycji: odbiornik, SNR, RSSI, drogę pakietu (bezpośrednio albo przez inny węzeł) i odległość od odbiornika.
Meshtastic i MeshCore zbierają dane inaczej
Dla źródeł radiowych Meshtastic rejestracja odebranych pozycji działa automatycznie. Źródła MQTT zapisują odbiory dopiero po włączeniu opcji Settings → Coverage recording w ustawieniach danego źródła; domyślnie jest wyłączona. Odbiornikiem jest wtedy bramka, która przesłała pakiet wraz ze zmierzonym przez siebie SNR i RSSI. Pozwala to porównywać odbiór tego samego przejazdu przez kilka bramek, bez przypisywania ich pomiarów lokalnemu radiu.
W MeshCore pozycję niosą tylko adverty – ogłoszenia, którymi węzeł przedstawia się sieci. Źródło typu companion (radio MeshCore podłączone do MeshMonitor) zapisuje każdy odebrany advert z lokalizacją, a źródła Observer (węzły obserwacyjne MeshCore przekazujące dane przez MQTT) – po włączeniu Coverage recording. Węzeł pomiarowy wysyła w czasie przejazdu adverty zero-hop, mniej więcej co 60 s; na repeaterze służy do tego polecenie advert.zerohop. Advertów rozsyłanych przez całą sieć (flood) do pomiaru się nie używa, a taki właśnie wysyła przycisk Send advert w MeshMonitor. Advert niesie zapisaną w węźle lokalizację, nie bieżący odczyt GPS, więc trzeba sprawdzić, czy zmienia się ona podczas ruchu.
Jak czytać zasięg, żeby się nie pomylić
Najważniejszy jest filtr liczby przeskoków. Dla odbioru bezpośredniego, oznaczonego jako 0 hops, sygnał pochodzi od obserwowanego nadawcy. Jeśli pakiet przekazał po drodze inny węzeł, SNR i RSSI opisują ostatni odcinek do odbiornika. Punkt nadal leży w miejscu nadawcy, ale jego kolor nie dowodzi bezpośredniej łączności na całej tej odległości.
Przy kilku zaznaczonych odbiornikach kolor punktu odpowiada najlepszemu odczytowi w wybranym zestawie. Aby ocenić konkretną stację, należy zawęzić widok do niej. Pusty obszar nie jest natomiast dowodem braku zasięgu: mogło tam nie być nadającego węzła, aktualnej pozycji albo danych dostępnych dla użytkownika. Przerywane linie prawdopodobnych luk, widoczne po wybraniu jednego nadawcy, też są tylko wskazówką: program wylicza je z odstępów między odebranymi pozycjami i nie wie, dlaczego pakietów zabrakło.
Rzadka mapa nie zawsze oznacza słaby zasięg. Firmware Meshtastic pomija wysyłkę pozycji, gdy kanał w ostatniej minucie był zajęty w ponad 25% (dla roli TRACKER w ponad 40%), a w wersji 2.8 moduł Traffic Management na kanałach z domyślnym kluczem odrzuca powtórzoną pozycję tego samego nadawcy z tej samej kratki siatki. Taki pakiet nie dociera do MeshMonitor i na mapie wygląda tak samo jak pakiet, którego radio nie usłyszało.
Porównanie przejazdów i zachowanie wyników
Oprócz punktów dostępny jest widok siatki, podsumowanie odbiorów i wykres odległości względem SNR. Filtry pozwalają wybrać nadawcę, odbiorniki i czas obserwacji, a eksport CSV lub GeoJSON przenosi wczytane wyniki do dalszej analizy. To przydatne, gdy kolejne przejazdy mają pokazać różnicę po zmianie lokalizacji odbiornika lub anteny.
Odbiory są domyślnie przechowywane przez siedem dni; w Global Settings → Coverage Report można ustawić od 1 do 90 dni. Udany przejazd lepiej zapisać jako survey (sesję pomiarową): Start survey nagrywa na żywo do 24 godzin, a Save as survey zapisuje oglądany zakres, do 7 dni. Odbiory z zapisanej sesji zostają, dopóki sesja istnieje, i trafiają do kopii zapasowej.
Włączenie rejestracji dla źródła MQTT może mocno powiększyć bazę danych. Według dokumentacji regionalny strumień danych dodaje około 12 000–14 000 wpisów dziennie (35–50 MB przy siedmiodniowym przechowywaniu), a ogólnoświatowy temat msh/# nawet około miliona wpisów dziennie i kilka GB tygodniowo. Poza czasem przechowywania nie ma żadnego limitu, dlatego przełącznik prosi o potwierdzenie.
Czyje pozycje trafiają do raportu
Raport zapisuje pozycje wszystkich węzłów, których pakiety z lokalizacją usłyszy radio, także cudzych – z identyfikatorem nadawcy, czasem odbioru, SNR i RSSI – i układa je w historię tras. Pokazuje tylko pozycje, które MeshMonitor pokazałby też na mapie analizy: bez węzłów ukrytych na mapie, prywatnych pozycji, do których użytkownik nie ma uprawnień, i kanałów bez wyświetlania na mapie. O tym, jak Meshtastic 2.8 zmienia domyślne udostępnianie pozycji, piszemy w tekście Meshtastic 2.8 Alpha: co sprawdzić przed migracją węzła. Kto nie ma prawa odczytu źródła, nie widzi z niego niczego, a niezalogowani goście nie widzą zapisanych sesji. Węzeł z wyłączoną opcją „OK to MQTT” nie trafia do raportu przez bramki na publicznych brokerach. Eksport CSV i GeoJSON może zawierać trasy innych użytkowników sieci.
Stabilne 4.16.2 i testowe 4.17.0
MeshMonitor 4.16.2 z 29 września 2026 roku zamknął serię sześciu wersji testowych (release candidate, RC – kandydat do wydania) i 12 października 2026 roku jest najnowszym stabilnym wydaniem. Przy pierwszym uruchomieniu wykonuje piętnaście migracji bazy danych (168–182), więc przed aktualizacją dobrze zrobić jej kopię. Trwają testy wersji 4.17.0 (4.17.0-rc9 z 11 października 2026 roku); od 4.17.0-rc3 raport wyróżnia pozycje wysłane przez jedno z własnych źródeł i usłyszane przez inne (filtr Cross-source only).
Mapa pokazuje tylko, gdzie odbiornik słyszał nadawcę. Czy nadawca usłyszałby odbiornik, z niej nie wynika.
Artykuł powstał na podstawie not wydań MeshMonitor 4.16.2-rc3, 4.16.2 i 4.17.0-rc3, dokumentacji Coverage Report, README projektu oraz opisów zmian w repozytorium Yeraze/meshmonitor na GitHubie.
