CONFIGURATION GUIDE
Configuring SafetyIQ
Complete setup guide for SafetyIQ — from first launch to a fully running safety monitor. Complete each section in order.
Version
0.7.5
Platform
RPi 5 · Windows · Linux
Status
Active development · not yet released
SafetyIQ is not yet publicly released. This guide documents the configuration process as it will work on public release. Some details may change before the final version.
1. Installation
Before configuring SafetyIQ, complete the installation steps from the Download page. SafetyIQ must be running and accessible in a browser before any configuration can be done.
Once SafetyIQ is running, open a browser and navigate to:
http://localhost:5000
On a Raspberry Pi accessible from another device on the same network:
http://safetyiq.local:5000
The map-first dashboard will load. Click the ⚙ Setup button in the top-right corner of the map to open the configuration drawer.
2. Tab 1 — Location
This is the first and most important step. SafetyIQ uses your coordinates to automatically discover the best local weather stations, activate regional weather services for your country, and run the AI pattern discovery for your specific location.
2.1 — Enter your callsign
Type your amateur radio callsign in the Callsign field. This is used for identification in alerts and the community registry.
2.2 — Set your coordinates
Click Locate me to use your browser’s location, or type your latitude and longitude manually. Use decimal degrees — for example, 38.726499 and -9.324387. Precision to four decimal places is sufficient.
2.3 — Set your units
Choose Metric (km/h, °C, hPa) or Imperial (mph, °F, inHg). This affects all displays and alert messages.
2.4 — Run detection
Click Detect. SafetyIQ will identify your country, timezone, elevation, nearest METAR station, and the best NWP model for your region. These are shown in the Detected panel below the map. Verify they look correct for your location.
2.5 — Save
Click Save. SafetyIQ will restart the weather pipeline using your location. The first startup takes slightly longer as it discovers and validates nearby weather stations.
3. Tab 2 — AI Selection
SafetyIQ uses an AI pipeline to discover the wind patterns specific to your location and select the best weather stations to monitor them. This tab shows the status of that pipeline and lets you trigger it manually.
Phase A — Pattern discovery
SafetyIQ analyses 25 years of ERA5 reanalysis data for your grid cell and identifies the dominant wind patterns that produce dangerous conditions at your location. This runs automatically on first startup and refreshes every 90 days. The result is a set of named pattern profiles — for example, Atlantic SW low, North wind gradient, Thermal sea breeze — each with a confidence score.
Phase B — Station selection
Using the discovered patterns, the AI selects the best upstream weather stations to monitor — stations that show early signals of each pattern before it reaches your mast. These are selected automatically. You do not need to do anything in this tab unless you want to force a re-run.
If you have an Anthropic API key configured in Tab 3, the full AI pipeline runs. Without a key, SafetyIQ uses a rule-based fallback that selects stations by distance — still functional, less adaptive.
4. Tab 3 — Services
All API keys are managed in this tab as a dynamic registry. Each row is one service. You can add as many services as you need with the + Add Service button.
Roles:
- ai — Anthropic API key for AI threat assessment and narrative generation
- weather — Tomorrow.io, Weather Underground, AEMET, Netatmo
- map — MapTiler (animated weather layers), Windy Map (GFS animated layer)
- other — any other service
Adding a key:
Click + Add Service. Enter the service name, paste your API key, select the role, and enable the row. Click Test to verify the key works — the result appears inline. Click Save when done.
Key security:
Keys are masked in the display after saving — only the last four characters are shown. Full keys are never transmitted to the browser. To update a key, click the field and type the new key — the masked placeholder will be replaced.
SafetyIQ works without any API keys. METAR, Open-Meteo, NOAA, Blitzortung, NHC, and JTWC are all free with no registration. API keys unlock additional depth — not baseline functionality.
5. Tab 4 — Towers
Add every antenna tower at your station. This is what SafetyIQ uses to compute structural wind load limits and display tower status on the dashboard.
Adding a tower:
Click + Add Tower. Fill in the fields:
- Name — free text, used on dashboard buttons and alerts. For example: North Yagi, 20m Vertical, South Beam
- Type —
fixed_with_trolley(telescopic, can be lowered),guyed(guyed tower, not lowered),fixed(fixed installation) - Has guys — check this if the tower has guy wires. Guyed towers do not get Lower/Raise control buttons — they appear as status-only on the dashboard
- h_min — minimum height when fully lowered, in metres. Use
0for a tower that folds completely flat - h_max — maximum height when fully raised, in metres
- DSM preset — structural model identifier. For example:
ROHN65G,HDX572. Leave blank if your tower type is not yet validated
Click Save when done. The dashboard will immediately update with a status pill for each tower and a Lower/Raise button for each tower without guys.
6. Tab 5 — Safety Actions
This tab configures the alert delivery channels and autonomous safety action behaviour.
6.1 — Email alerts
Enter your SMTP server details — server address, port, username, and password. Use an app-specific password if your email provider requires it (Gmail, Outlook). Enter the destination email address where alerts should be sent. Click Test to send a test alert.
6.2 — Telegram alerts
Create a Telegram bot via BotFather (@BotFather in Telegram). Copy the bot token into the Token field. Send a message to your bot, then click Get Chat ID to retrieve your Chat ID automatically. Click Test to send a test message.
6.3 — Auto-act countdown
Set the number of minutes SafetyIQ waits after sending an alarm alert before executing autonomous safety actions. The default is 15 minutes. Set to 0 to disable autonomous actions entirely — SafetyIQ will warn but never act without human confirmation.
6.4 — Presence detection
Configure the three layers of presence detection:
- Thetis TCI — add one row per radio. Enter the hostname and port of each Thetis instance on your LAN (default:
thetis.local, port50001). Click Test to verify the connection. If any radio shows PS1 (radio on), SafetyIQ considers the operator present - Phone on LAN — enter your phone’s MAC address. SafetyIQ checks ARP tables every 60 seconds. If your phone is on the home network, the operator is considered present
- Grace period — number of minutes after the last presence signal before Guardian mode activates. Default is 15 minutes. Prevents false Guardian on brief TCI disconnects or phone ARP misses
7. First run verification
After completing all tabs, close the Setup drawer and observe the dashboard for a few minutes:
- The threat badge (top-left) should show CLEAR in green
- The gust reading should update within 2–3 minutes with a real wind speed from the nearest METAR station
- The presence badge (top-right) should show Advisory (green) if the operator is considered present, or Guardian (red) if absent
- The tower pills (bottom-right) should show one pill per configured tower
- The animated wind layer should appear on the map if a MapTiler or Windy Map key is configured
If the gust reading shows -- m/s after 5 minutes, check that SafetyIQ can reach the internet. METAR data is fetched from aviationweather.gov — if that endpoint is blocked, SafetyIQ will fall back to Open-Meteo forecast wind.
8. Installing as a Progressive Web App
SafetyIQ is a Progressive Web App — it can be installed on your phone or tablet home screen and opens as a full-screen app without browser chrome.
On iPhone / iPad (Safari):
Open SafetyIQ in Safari. Tap the Share button → Add to Home Screen → Add. The SafetyIQ icon will appear on your home screen.
On Android (Chrome):
Open SafetyIQ in Chrome. Tap the three-dot menu → Add to Home Screen → Add. Or wait for Chrome to show the install prompt automatically.
On desktop (Chrome / Edge):
Open SafetyIQ in Chrome or Edge. Look for the install icon in the address bar (a small screen with a plus). Click it → Install. SafetyIQ opens as a standalone app.
Once installed, SafetyIQ works offline — the dashboard UI is cached locally. Live weather data requires an internet connection, but the interface itself loads instantly.
9. Remote access from outside the home network
To access SafetyIQ remotely without a VPN, forward a single TCP port on your router to the Raspberry Pi running SafetyIQ (default port 5000). The alert Email and Telegram messages already contain a secure one-tap link to the remote panel — this link works over the internet once port forwarding is configured.
The remote panel is token-authenticated. Each alert generates a unique token that expires after 4 hours. The token is single-use for destructive actions (lowering towers). Anyone with the link can view status; only the token holder can act.
For operators who use Thetis for remote SDR operation, ThetisTunnelC by MW0LGE (github.com/ramdor/ThetisTunnel) tunnels the HL2 UDP protocol over TCP — full remote radio operation via a single port-forward, no VPN required. SafetyIQ’s presence detection works alongside ThetisTunnelC — if the operator connects Thetis remotely and the radio shows PS1, SafetyIQ switches automatically to Advisory mode.