Ak používate RUMlogNG na Macu ako staničný denník a zároveň prevádzkujete webový logovací systém Wavelog, dosud jste stáli před otázkou, jak tyto dvě prostředí udržovat v souladu. Most RUMlog–Wavelog Bridge, ktorý napísal Oliver Bross, OM0RX, tento problém řeší nativní macOS aplikace – bez potřeby externích skriptů, Pythonu ani manuálního exportu. ADIF.
V článku se dočtete
Jak RUMlog–Wavelog Bridge funguje
Bridge je nativní SwiftUI aplikace pro macOS 13 a novější. Na straně RUMlogNG čte otevřený soubor .rlog výhradně přes SQLite spojení s příznakem POUZE PRO ČTENÍ a PRAGMA query_only=ON – teda nikdy nezapisuje do databázy denníka. Nové QSO importuje přes Apple-event ADIF rozhraní RUMlogNG, vzdálené změny přenáší přes nativní RUMlog TCP peer protokol (port 12060). Na straně Wavelog komunikuje přes REST API v2 s tokenmi uloženými výhradne v macOS Keychain – nie v konfiguračnom súbore ani v logoch.
Synchronizace probíhá obousměrně: nová QSO se přenesou z RUMlogNG do Wavelog i opačně, včetně editací polí jako frekvence, pásmo, mód, RST, lokátor, jméno, QTH, výkon, IOTA, CQ/ITU zóna a satelit. Každých pět minut probíhá automatická plná kontrola rozdílů; při konfliktu – když obě strany změnily stejný QSO záznam – most konflikt nahlásí a nechá ho nevyřešený místo toho, aby hádal správnou verzi.
Konfigurace na straně Wavelog

V nastavení Wavelog vygenerujte API v2 token s oprávněním stanice:číst, qso:číst a qso:psátToken začíná prefixem wl2_…V Bridge zadejte celou URL adresu instalace Wavelog včetně /index.php, vložte token a stlačte Save & Test Connection. Z vráceného seznamu vyberte správný staniční profil. Token se uloží do Keychain a v rozhraní aplikace již nebude viditelný.
Konfigurace na straně RUMlogNG
V Bridge ukažte na soubor .rlog, který máte právě otevřený v RUMlogNG, a potvrďte peer port 12060 (ak ste ho v RUMlog nemenili). Stlačte Save & Test Open logbook – most ověří, že poslední QSO v souboru je viditelné přes běžící RUMlog. V RUMlogNG nastavte: Předvolby → UDP → Listen to other RUMlog instances na rovnakom porte; Window → Network → zaškrtnite Import pre Wavelog Bridge. Bridge musí hlásiť stav Peer connected.
Při prvním spuštění vyžaduje v macOS povolení pro Automatizaci (Nastavení systému → Ochrana soukromí a zabezpečení → Automatizace) – bez toho Apple-event ADIF rozhraní nefunguje.
Bootstrap a průběžná synchronizace
Po konfiguraci spusťte Start Bootstrap jednou. Most stránkuje existující QSO z Wavelog přes ADIF, porovnává je se sémantickou identitou QSO v RUMlogu a importuje pouze ty, které chybí. Bootstrap je obnovitelný po přerušení – checkpointuje každou stránku. Po úspěšném dokončení spusťte ruční synchronizaci a poté zapněte automatický režim s požadovaným intervalem. Automatické mazání zůstává záměrně vypnuto; změny stavu potvrzení QSL jsou také pozastaveny, protože Wavelog API v2 je zpřístupňuje pouze pro čtení.
Instalace a praktická omezení
Aktuální verze je 0.2.1, dostupná na GitHub (github.com/oliverbross/Rumlog-Wavelog-Bridge). Aplikace je podepsána certifikátem Developer ID OM0RX, ale není notarizována – při prvním spuštění je nutné ji otevřít přes Control-click → Otevřít a potvrdit výjimku v macOS Gatekeeperu. Vyžaduje macOS 13 nebo novější.
Pole specifická pro Wavelog (SOTA, POTA, WWFF reference, propagace) se při synchronizaci na straně Wavelog zachovávají, ale do RUMlogNG se nepřenášejí – RUMlogNG 6.5.1 je ve své schémě neperzistuje. Pokud tato pole aktivně využíváte, Wavelog zůstává jejich jediným zdrojem pravdy.
Zdrojový kód, dokumentace architektury a návod na kompilaci jsou dostupné na github.com/oliverbross/Rumlog-Wavelog-Bridge. Licence GPL-3.0.
