⚠️ TOTA.json looks like it was overwritten with an incompatible format — 0 valid towers found even though the file isn't empty. Click "🛠️ Restructure TOTA.json" below to fix it automatically.
0 towers
📋 All towers with coordinates
Reference
Name
Province
Coordinates
Action
🔍 No towers found
➕ Add new tower
To edit an existing tower, go to the 🗼 Towers tab and click "✏️ Edit" next to it.
✏️ Edit tower
E.g. the tower was demolished. QSOs from this date on no longer count for this reference (not as activation, not as hunt). Everything logged before this date keeps counting.
📥 Import XLSX – TOTA
Select or drag the TOTA xlsx file below. You'll see a preview of the changes before anything is saved.
📊
Click to browse or drag the .xlsx file here
.xlsx files only
Status
Reference
Name
Changes
🗑️ Delete tower?
📋 JSON Importeren – TOTA
📤 Upload ADIF files
For the tower reference (e.g. ONR-0101) to be recognised, it must be in the
SIG_INFO, MY_SIG_INFO or comment field of each QSO. Regular users upload their own logs via
the public login page — those first go through "📥 ADI Uploads" for admin approval before
landing here.
ONR-
📁 Uploaded ADIF files
File
QSOs
Size
Date
✏️ Edit
Raw ADIF content — edit with care.
🌐 WWTOTA Sync
Pulls Belgian (ONR-) tower QSOs from the external wwtota.com log API into their
own wwtotaadi/ folder — completely separate from our own adifs/.
That data still counts towards activations/QSOs/awards, but is never mixed into our own log
files. Nothing runs until an API key is saved and Start is pressed.
⚠️ New ADIF logs were added since the last sync. Press Start or Sync now below to bring wwtota.com up to date.
✅ Everything is synced. There's nothing new to send — safe to press Stop if you don't need it running.
⏸️ Stopped
⚠️ Reset & re-sync everything from scratch
Deletes wwtotaadi/wwtota_sync.adi and forgets the last sync date, so the
next Start/Sync pulls and re-converts every record again from wwtota.com
(useful after a fix like the band-name normalisation). This does not touch
wwtota.com's own data — only what we've stored locally.
⚙️ Automatic syncing via cron (optional)
Start/Stop only run a sync when you click them. For automatic periodic syncing while
"enabled", ask your hosting provider to add a cron job (e.g. hourly) that calls:
curl -X POST https://on3moh.be/TOTA/wwtota_api.php -H "Content-Type: application/json" -d '{"action":"cron","secret":"…"}'
Date
Time
Activator
Tower
Worked
Band
Mode
RST S/R
R2R
Inspects the last raw API response (saved automatically after every sync) to figure out
exactly which fields, band/mode formats and reference prefixes wwtota.com uses — the
information needed to eventually build the "push our logs to wwtota" side of this
integration. Run a sync on the Settings tab first if nothing shows up here yet.
✅ Live. wwtota.com confirmed their CRON validation/import step is finished —
QSOs pushed from here now go through the same validation and scoring as a normal ADIF
import on their end, and get transferred into their production log. This is no longer
testing-only; double-check what you push before clicking, same as any real submission.
Sends our own local ADIF logs (adifs/ — never wwtotaadi/, that
would just be sending their own data back to them) to wwtota.com's Log Upload API. Already-
sent QSOs are tracked and never resent, so it's safe to click "Push now" repeatedly as new
logs come in.
— wwtota's CRON import is confirmed live, so this now sends real, scored submissions.
Re-syncs from wwtota.com and checks how many of our pushed QSOs now come back through the pull.
This is exactly what visitors see at ranking/ranking.html — it refreshes itself
automatically after uploads/approvals/wwtota syncs, so this preview may be a moment behind
the very latest change until you click "🔄 Refresh preview".
➕ Add new award
⚙️ Manage levels
📋 Current awards
Name
Type
Band
Level
Threshold
Award Settings
Set the position of the callsign and date on the award images.
📡 Callsign
37%
67%
46‰
📅 Date
43%
91%
26‰
Preview image
📨 Tower requests
New towers proposed through the website. Mark a request as read once it has been handled — unread requests stay on top.