Bay automation runbook
1 · Architecture overview
Five layers in the bay-automation stack. A failure at layer N usually surfaces as a symptom at layer N+1, so triage top-to-bottom.
The local sync agent on each bay PC pushes telemetry to POST /operator/bay-automations/sync every 30s. The "Last sync 18s ago" tile on the dashboard reads this endpoint's last_received_at field — see §4.
2 · Booking lifecycle
Five scheduled commands fire per booking. Times are relative to the booking start; "min" = minutes.
-
T − 10 min
Power on bay PC + monitor Sends
POSTto smart plug · expects{status: "on"}within 10s · retry 3× on timeout -
T − 5 min
Wake monitor · HDMI handshake PC sends DDC "wake" command · waits for monitor EDID response · 60s timeout
-
T − 1 min
Launch simulator software Spawns the FSX or Trackman process · waits for license-server handshake · 90s timeout · falls through to alert if hung
-
T = start
Session active · door code valid SMS door code goes out · ball-tracking idle until first shot · session timer starts
-
T + end
Graceful shutdown Saves session data · closes sim software · monitor sleep · smart plug stays on for 30 min idle
-
T + 30 min idle
Power off if no new booking Cuts smart plug if no booking within 30 min · skipped if a booking starts in the next 15 min (avoids on/off thrash)
Lifecycle is configurable per club — defaults shown above. To change timings see Bay automation configuration ›
3 · Common failures
Four issues account for ~85% of automation failures in the past 90 days. Triage in order.
Power-on timeout
- Tap Force on in the bay tile to manually trigger the smart plug.
- If still no response, walk to the bay and toggle the smart plug button physically.
- If physical toggle works but app doesn't → router reboot. See vendor contacts if router has shipped a firmware update overnight.
Monitor wake fails (HDMI handshake)
- Pull and reseat the HDMI cable at both ends.
- If still black → power-cycle the monitor (button on back, 10 sec).
- If still black → swap the HDMI cable from a spare bay; if that fixes it, the cable is bad.
Simulator launch hangs at "Connecting…"
status.trackman.com / status.foresightsports.com respectively.
- Wait 2 minutes — vendor license servers are usually back within 90s.
- If status page reports green but splash still hangs → close the sim and re-launch from the desktop shortcut.
- If sim launches in offline mode (no license check) → bay is usable but no shot validation. Switch to manual scoring.
Ball-tracking miscalibrated
- Wipe the radar / camera lens with a microfiber cloth.
- Tap Recalibrate in the bay's sim software (Trackman: Tools → Recalibrate; Foresight: settings gear → Recalibrate).
- If still off → take 3 known shots (driver, 7-iron, putter) and compare to expected values. Off by > 15% → call vendor support.
4 · Hardware sync explained
What the "Last sync 18s ago" tile means and what to do when it goes stale.
Each bay PC runs a small local sync agent that posts telemetry (power state, monitor state, sim software heartbeat, current session, last shot timestamp) to POST /operator/bay-automations/sync every 30 seconds. The last_received_at column on the dashboard is when the cloud last got a packet.
What stale means
- 0–60s: healthy. Tile shows "X seconds ago" in green.
- 60–180s: warning. One missed beat is fine; two is a hint.
- 180s+ ("stale"): the sync agent is down. Bay state on the dashboard is now last-known, not current.
How to manually re-sync
- From the bay's detail page, tap Force sync now. This triggers an immediate POST from the local agent.
- If that succeeds, the tile flips green within 5s. If it doesn't, the agent process is dead.
- To restart the agent: remote-desktop into the bay PC and run
net stop snagatime-sync && net start snagatime-sync. - If the agent won't start, check Event Viewer for the snagatime-sync service. Usually a TLS cert refresh or a Windows update is the culprit.
5 · Per-vendor quirks
Vendor-specific behavior that isn't documented well by the vendors themselves.
Trackman
- License-server outages — Trackman's status page lags actual recovery by 5–10 min. If splash hangs, try a re-launch even if status is still red.
- Update behavior — auto-updates run on the first launch of the day. A morning booking can hit a 4-minute update window. Schedule updates manually overnight if morning bookings are critical.
- Recalibration — Tools → Recalibrate. Walk-up calibration takes 30s.
- Support phone — see contacts. The vendor's first-line support reads from a script; if you can describe the issue in their language ("license handshake timeout", "DDC wake failure"), you skip 2 layers.
Foresight
- FSX Play vs FSX 2020 — different config files; check
%PROGRAMDATA%\Foresight\fsx-version.txtfor which is on each bay. - Camera dust — Foresight's overhead camera array is more dust-sensitive than radar. Daily wipe-down recommended for evening leagues.
- USB drift — the GCQuad's USB connection occasionally drops on Windows update reboots. If a bay reads "no device" after a reboot, replug USB once.
- Recalibration — Settings → Calibration → Quick recal. 45s.
6 · Emergency contacts
Escalation order: bay operator → club owner → vendor support → SnagATime ops.
7 · Recent failure history
Last 7 automation failures across all 4 bays. Look for patterns — same bay 3× in a week, same time of day, same vendor.
-
Jun 2 · 7:14 PM
Bay 1 · Sim launch hang · Trackman license server returned 503 for ~90s · operator re-launched at 7:16 PM2 min
-
May 31 · 6:55 PM
Bay 3 · HDMI handshake · monitor stayed black at scheduled wake · operator reseated cable4 min
-
May 29 · 11:42 AM
Bay 1 · Power-on timeout · smart plug unreachable · Wi-Fi credentials rotated by router update overnight22 min
-
May 27 · 5:01 PM
Bay 4 · Ball-track miscal · temperature drift +12°C from morning · operator recalibrated mid-session3 min
-
May 25 · 7:02 PM
Bay 2 · Sim launch hang · Foresight FSX update in progress · 4-min auto-update completed4 min
-
May 22 · 3:30 PM
Bay 3 · HDMI handshake · second occurrence this week — cable replaced8 min
-
May 19 · 8:30 AM
Bay 1 · Sync agent dead · Windows update reboot · agent service didn't auto-restart12 min
Pattern check: Bay 3 had 2 HDMI failures inside 9 days; the cable was replaced on May 22 and the pattern stopped. Worth watching Bay 1 for sync-agent restarts after Patch Tuesday.
Runbook v4.2 · 13 revisions
- v4.2 · Jun 2Mike Smith · added Bay 3 HDMI pattern note + sync-agent restart pattern+18 / −2
- v4.1 · May 30Mike Smith · expanded Trackman license-server section after 5/29 outage+24 / −6
- v4.0 · May 15SnagATime team · added §7 recent-failure history (was external spreadsheet before)+186 / −0
- v3.4 · Apr 28Mike Smith · updated Foresight USB-drift workaround after Win 11 24H2+12 / −4
- v3.3 · Apr 10SnagATime team · rewrote §1 architecture diagram+62 / −38
8 older revisions hidden · load all 13 ›