Ak používate RUMlogNG na Macu ako staničný denník a zároveň prevádzkujete webový logovací systém Wavelog, doteraz ste stáli pred otázkou, ako tieto dve prostredia udržiavať v súlade. Most RUMlog–Wavelog Bridge, ktorý napísal Oliver Bross, OM0RX, tento problém rieši natívnou macOS aplikáciou – bez potreby externých skriptov, Pythonu ani manuálneho exportu ADIF.
V článku sa dočítate
Ako RUMlog–Wavelog Bridge funguje
Bridge je natívna SwiftUI aplikácia pre macOS 13 a novší. Na strane RUMlogNG číta otvorený súbor .rlog výhradne cez SQLite spojenie s príznakom READONLY a PRAGMA query_only=ON – teda nikdy nezapisuje do databázy denníka. Nové QSO importuje cez Apple-event ADIF rozhranie RUMlogNG, vzdialené zmeny prenáša cez natívny RUMlog TCP peer protokol (port 12060). Na strane Wavelog komunikuje cez REST API v2 s tokenmi uloženými výhradne v macOS Keychain – nie v konfiguračnom súbore ani v logoch.
Synchronizácia prebieha obojsmerne: nové QSO sa prenesú z RUMlogNG do Wavelog aj opačne, vrátane editácií polí ako frekvencia, pásmo, mód, RST, lokátor, meno, QTH, výkon, IOTA, CQ/ITU zóna a satelit. Každých päť minút prebieha automatická plná kontrola rozdielov; pri konflikte – keď obe strany zmenili ten istý QSO záznam – most konflikt nahlási a nechá ho nevyriešený namiesto toho, aby uhádol správnu verziu.
Konfigurácia na strane Wavelog

V nastaveniach Wavelog vygenerujte API v2 token s oprávneniami station:read, qso:read a qso:write. Token začína prefixom wl2_…. V Bridge zadajte celú URL Wavelog inštalácie vrátane /index.php, vložte token a stlačte Save & Test Connection. Z vráteného zoznamu vyberte správny staničný profil. Token sa uloží do Keychain a v rozhraní aplikácie nie je ďalej viditeľný.
Konfigurácia na strane RUMlogNG
V Bridge ukážte na súbor .rlog, ktorý máte práve otvorený v RUMlogNG, a potvrďte peer port 12060 (ak ste ho v RUMlog nemenili). Stlačte Save & Test Open logbook – most overí, že posledné QSO v súbore je viditeľné cez bežiaci RUMlog. V RUMlogNG nastavte: Preferences → UDP → Listen to other RUMlog instances na rovnakom porte; Window → Network → zaškrtnite Import pre Wavelog Bridge. Bridge musí hlásiť stav Peer connected.
Prvé spustenie vyžiada v macOS povolenie pre Automation (System Settings → Privacy & Security → Automation) – bez neho Apple-event ADIF rozhranie nefunguje.
Bootstrap a priebežná synchronizácia
Po konfigurácii spustite Start Bootstrap jedenkrát. Most stránkuje existujúce QSO z Wavelog cez ADIF, porovnáva ich so sémantickou identitou QSO v RUMlogu a importuje len tie, ktoré chýbajú. Bootstrap je obnoviteľný po prerušení – checkpointuje každú stránku. Po úspešnom dokončení spustite manuálnu synchronizáciu a potom zapnite automatický režim s požadovaným intervalom. Automatické mazanie zostáva zámerne vypnuté; zmeny stavu potvrdení QSL sú tiež pozastavené, pretože Wavelog API v2 ich sprístupňuje iba na čítanie.
Inštalácia a praktické obmedzenia
Aktuálna verzia je 0.2.1, dostupná na GitHub (github.com/oliverbross/Rumlog-Wavelog-Bridge). Aplikácia je podpísaná Developer ID certifikátom OM0RX, ale nie je notarizovaná – pri prvom spustení je potrebné otvoriť ju cez Control-click → Open a potvrdiť výnimku v macOS Gatekeeperi. Vyžaduje macOS 13 alebo novší.
Polia špecifické pre Wavelog (SOTA, POTA, WWFF referencie, propagation) sa pri synchronizácii na strane Wavelog zachovajú, ale do RUMlogNG sa neprenášajú – RUMlogNG 6.5.1 ich vo svojej schéme neperzistuje. Ak tieto polia aktívne využívate, Wavelog ostáva ich jediným zdrojom pravdy.
Zdrojový kód, dokumentácia architektúry a návod na kompiláciu sú dostupné na github.com/oliverbross/Rumlog-Wavelog-Bridge. Licencia GPL-3.0.
