McApp je webová aplikácia určená na pohodlnú prácu s MeshCom uzlom. Beží na Raspberry Pi a poskytuje rozhranie dostupné z moderného webového prehliadača. Raspberry Pi pritom funguje ako ľahký server a sprostredkovateľ komunikácie medzi MeshCom zariadením a webovým klientom. McApp podporuje pripojenie uzla cez Bluetooth Low Energy (BLE) aj cez UDP.
V článku sa dočítate
Čo je McApp a na čo slúži
Zmyslom McApp nie je nahradiť MeshCom, ale vytvoriť praktické používateľské rozhranie pre jeho každodennú prevádzku. V prehliadači sú dostupné funkcie pre chat, mapu prijatých pozičných reportov, MHeard a konfiguráciu. Rozhranie je navrhnuté ako responzívna webová aplikácia, takže ho možno používať na počítači, tablete alebo telefóne. Podporované je aj pridanie aplikácie na domovskú obrazovku ako PWA.
Prečo Raspberry Pi?
Raspberry Pi Zero 2 W je pre túto úlohu vhodný najmä svojou nízkou hardvérovou náročnosťou. Projekt uvádza podporu pre Raspberry Pi Zero 2 W a ďalšie zariadenia s ARM Cortex-A53. Požadovaný systém je Raspberry Pi OS Lite 64-bit založený na Debian Bookworm alebo Trixie, pričom dokumentácia uvádza 512 MB RAM a SD kartu s kapacitou najmenej 8 GB. Desktopové prostredie na Pi Zero nie je potrebné.
Pi môže byť umiestnené priamo pri MeshCom uzle. Používateľ potom pristupuje k McApp cez sieť z počítača alebo mobilného zariadenia. Tým vzniká oddelenie medzi rádiovou časťou a používateľským rozhraním bez potreby pripájať počítač priamo k MeshCom zariadeniu.
Ako je McApp technicky postavený
Frontend McApp je webová aplikácia založená na TypeScripte a Vue.js. Backend používa Python a FastAPI. Na komunikáciu medzi prehliadačom a backendom sa používajú REST API a SSE (Server-Sent Events). Pred backendom je lighttpd, ktorý poskytuje webové rozhranie a zároveň sprostredkuje požiadavky na FastAPI. Nastavenia aplikácie sa ukladajú do databázy SQLite.
Pri BLE komunikácii sa používa samostatná BLE služba, ktorá komunikuje s MeshCom uzlom cez Bluetooth GATT. Pri UDP komunikácii môže McApp pracovať s MeshCom uzlom cez UDP port 1799. Projekt zároveň uvádza možnosť pripojiť viac uzlov cez UDP.
Chat – hlavná funkcia McApp
Chatové rozhranie je koncipované podobne ako moderné komunikačné aplikácie. Podporuje osobné aj skupinové správy, filtrovanie podľa volacej značky alebo skupiny a potvrdenie doručenia. Správy sa najskôr ukladajú do odosielacej fronty, aby sa MeshCom uzol nezahltil. Aktuálne nastavené oneskorenie medzi odosielanými správami je 12 sekúnd, pričom dokumentácia upozorňuje, že ani tento interval nemusí byť vždy dostatočný pre spoľahlivú RF prevádzku.
Mapa MeshCom siete
Mapa zobrazuje prijaté POS reporty MeshCom uzlov. Jednotlivé stanice možno vyhľadávať a po výbere uzla zobraziť ďalšie informácie. McApp podporuje aj satelitné zobrazenie a tmavý režim. Pri uzloch s telemetriou môže zobrazovať napríklad teplotu, vlhkosť a atmosférický tlak.

MHeard – užitočný nástroj pre rádioamatéra
Pre technicky orientovaného rádioamatéra je zaujímavá funkcia MHeard. McApp zobrazuje počuté stanice spolu s údajmi RSSI a SNR a dokáže zobraziť aj relay path, teda cestu, ktorou sa stanica dostala do sledovaného uzla. Po výbere stanice možno jej trasu zvýrazniť na mape. To umožňuje sledovať nielen aktivitu siete, ale aj kvalitu jednotlivých rádiových spojení a použité relé.

BLE verzus UDP
BLE je zaujímavé najmä pri lokálnom spojení Raspberry Pi s MeshCom uzlom. Dokumentácia mu dáva prednosť aj preto, že umožňuje získať viac informácií vrátane RSSI a SNR. McApp pri BLE používa keep-alive a pri strate spojenia sa pokúša komunikáciu automaticky obnoviť. UDP je vhodné tam, kde je MeshCom uzol dostupný cez IP sieť.
Aktualizácie a vzdialený prístup
Inštalácia, aktualizácia aj oprava McApp sú riešené pomocou bootstrap skriptu. Projekt podporuje aj aktualizáciu priamo z webového rozhrania. OTA mechanizmus používa tri nasadzovacie sloty, kontrolu funkčnosti novej verzie a automatický návrat na predchádzajúcu verziu pri zlyhaní.
Pre vzdialený prístup možno voliteľne nastaviť HTTPS pomocou Caddy a certifikátov Let’s Encrypt. Dokumentácia uvádza podporu služieb DuckDNS, Cloudflare, deSEC.io a Cloudflare Tunnel. Vzdialený prístup preto nie je nutnou súčasťou lokálnej inštalácie, ale je dostupnou voliteľnou funkciou.
Bezpečnosť a validácia správ
McApp kontroluje prijímané údaje z hľadiska UTF-8 a APRS kompatibility. Znaky, ktoré je možné bezpečne odstrániť, filtruje. Správy obsahujúce problematické binárne dáta sú odmietnuté. Tento mechanizmus má zabrániť tomu, aby poškodené dáta z MeshCom uzla spôsobovali problémy v používateľskom rozhraní alebo pri ďalšom spracovaní.
Pre koho má McApp zmysel?

McApp dáva najväčší zmysel rádioamatérovi, ktorý už používa MeshCom a chce mať pohodlné webové rozhranie dostupné z viacerých zariadení. Zaujímavý je najmä pre prevádzku s Raspberry Pi, sledovanie siete pomocou MHeard a mapy, vyhodnocovanie RSSI a SNR alebo pre experimentovanie s viacerými MeshCom uzlami cez UDP. Projekt pritom zostáva nadstavbou nad existujúcim MeshCom systémom, nie jeho náhradou.
