Ak používate RUMlogNG na Macu ako staničný denník a zároveň prevádzkujete webový logovací systém Wavelog, dotychczas stawiałeś pytanie, jak te dwa środowiska utrzymywać w zgodzie. Most RUMlog–Most Wavelog, ktorý napísal Oliver Bross, OM0RX, ten problem rozwiązuje natywna aplikacja macOS – bez potrzeby zewnętrznych skryptów, Pythona czy ręcznego eksportu ADIF.
W artykule dowiesz się
Jak działa RUMlog–Wavelog Bridge
Bridge to natywna aplikacja SwiftUI dla macOS 13 i nowszych. Po stronie RUMlogNG odczytuje otwarty plik .rlog wyłącznie przez połączenie SQLite z flagą Tylko do odczytu a PRAGMA query_only=ON – teda nikdy nezapisuje do databázy denníka. Nové QSO importuje przez interfejs Apple-event ADIF RUMlogNG, zdalne zmiany przesyła przez natywny protokół RUMlog TCP peer (port 12060). Po stronie Wavelog komunikuje przez REST API v2 s tokenmi uloženými výhradne v macOS Keychain – nie v konfiguračnom súbore ani v logoch.
Synchronizacja odbywa się dwukierunkowo: nowe QSO są przenoszone z RUMlogNG do Wavelog i odwrotnie, w tym edycje pól takich jak częstotliwość, pasmo, tryb, RST, locator, imię, QTH, moc, IOTA, strefa CQ/ITU i satelita. Co pięć minut odbywa się automatyczna pełna kontrola różnic; w przypadku konfliktu – gdy obie strony zmieniły ten sam rekord QSO – most zgłasza konflikt i pozostawia go nierozwiązanym zamiast zgadywać właściwą wersję.
Konfiguracja po stronie Wavelog

W ustawieniach Wavelog wygeneruj token API v2 z uprawnieniami station:read, qso:read a qso:write. Token zaczyna się od prefiksu wl2_…. W Bridge wprowadź pełny URL instalacji Wavelog, w tym /index.php, vložte token a stlačte Save & Test Connection. Z zwróconej listy wybierz odpowiedni profil stacji. Token zostanie zapisany w Keychain i nie będzie dalej widoczny w interfejsie aplikacji.
Konfiguracja po stronie RUMlogNG
W Bridge wskaż plik .rlog, który masz aktualnie otwarty w RUMlogNG, i potwierdź port peer 12060 (ak ste ho v RUMlog nemenili). Stlačte Save & Test Open logbook – most sprawdzi, czy ostatnie QSO w pliku jest widoczne przez działający RUMlog. W RUMlogNG ustaw: Preferencje → UDP → Listen to other RUMlog instances na rovnakom porte; Window → Network → zaškrtnite Import pre Wavelog Bridge. Bridge musí hlásiť stav Peer connected.
Pierwsze uruchomienie wymaga w macOS zezwolenia na Automatyzację (Ustawienia systemowe → Prywatność i bezpieczeństwo → Automatyzacja) – bez tego interfejs Apple-event ADIF nie działa.
Bootstrap i ciągła synchronizacja
Po konfiguracji uruchom Start Bootstrap raz. Most przetwarza istniejące QSO z Wavelog przez ADIF, porównuje je z semantyczną tożsamością QSO w RUMlogu i importuje tylko te, które brakuje. Bootstrap jest odnawialny po przerwaniu – checkpointuje każdą stronę. Po pomyślnym zakończeniu uruchom ręczną synchronizację, a następnie włącz tryb automatyczny z wymaganym interwałem. Automatyczne usuwanie pozostaje celowo wyłączone; zmiany stanu potwierdzeń QSL są również wstrzymane, ponieważ Wavelog API v2 udostępnia je tylko do odczytu.
Instalacja i praktyczne ograniczenia
Aktualna wersja to 0.2.1, dostępna na GitHub (github.com/oliverbross/Rumlog-Wavelog-Bridge). Aplikacja jest podpisana certyfikatem Developer ID OM0RX, ale nie jest notarizowana – przy pierwszym uruchomieniu należy otworzyć ją przez Control-click → Otwórz i potwierdzić wyjątek w macOS Gatekeeper. Wymaga macOS 13 lub nowszego.
Pola specyficzne dla Wavelog (SOTA, POTA, referencje WWFF, propagacja) są zachowywane podczas synchronizacji po stronie Wavelog, ale nie są przenoszone do RUMlogNG – RUMlogNG 6.5.1 nie przechowuje ich w swojej schemacie. Jeśli aktywnie korzystasz z tych pól, Wavelog pozostaje jedynym źródłem prawdy.
Kod źródłowy, dokumentacja architektury i instrukcja kompilacji są dostępne na github.com/oliverbross/Rumlog-Wavelog-Bridge. Licencja GPL-3.0.
