# Series 3 Watcher v1.4.4 Monitors Instantel **Series 3 (Minimate)** call-in activity on a Blastware server. Runs as a **system tray app** that starts automatically on login, reports heartbeats to terra-view, and self-updates from Gitea. --- ## Deployment (Recommended — Installer) The easiest way to deploy to a field machine is the pre-built Windows installer. 1. Download `series3-watcher-setup.exe` from the [latest release](https://gitea.serversdown.net/serversdown/series3-watcher/releases) on Gitea. 2. Run the installer on the target machine. It installs to `C:\Program Files\Series3Watcher\` and adds a shortcut to the user's Startup folder. 3. On first launch the **Setup Wizard** opens automatically — fill in the terra-view URL and Blastware path, then click **Save & Start**. 4. A coloured dot appears in the system tray. Done. The watcher will auto-start on every login from that point on. ### Auto-Updates The watcher checks [Gitea](https://gitea.serversdown.net/serversdown/series3-watcher) for a newer release approximately every 5 minutes. When a newer `.exe` is found it downloads it silently, swaps the file, and relaunches — no user action required. Updates can also be pushed remotely from terra-view → **Settings → Developer → Watcher Manager**. --- ## Building & Releasing See [BUILDING.md](BUILDING.md) for the full step-by-step process covering: - First-time build and installer creation - Publishing a release to Gitea - Releasing hotfix updates (auto-updater picks them up automatically) --- ## Running Without the Installer (Dev / Debug) ``` pip install -r requirements.txt python series3_tray.py # tray app (recommended) python series3_watcher.py # console-only, no tray ``` `config.ini` must exist in the same directory. Copy `config-template.ini` to `config.ini` and edit it, or just run `series3_tray.py` — the wizard will create it on first run. --- ## Configuration All settings live in `config.ini`. The Setup Wizard covers every field, but here's the reference: ### API / terra-view | Key | Description | |-----|-------------| | `API_ENABLED` | `true` to send heartbeats to terra-view | | `API_URL` | Terra-View base URL, e.g. `http://192.168.1.10:8000` — the `/api/series3/heartbeat` endpoint is appended automatically | | `API_INTERVAL_SECONDS` | How often to POST (default `300`) | | `SOURCE_ID` | Identifier for this machine (defaults to hostname) | | `SOURCE_TYPE` | Always `series3_watcher` | ### Paths | Key | Description | |-----|-------------| | `SERIES3_PATH` | Blastware autocall folder, e.g. `C:\Blastware 10\Event\autocall home` | | `MAX_EVENT_AGE_DAYS` | Ignore `.MLG` files older than this (default `365`) | | `LOG_FILE` | Path to the log file | ### Scanning | Key | Description | |-----|-------------| | `SCAN_INTERVAL_SECONDS` | How often to scan the folder (default `300`) | | `MLG_HEADER_BYTES` | Bytes to read from each `.MLG` header for unit ID (default `2048`) | | `RECENT_WARN_DAYS` | Log unsniffable files newer than this window | ### Logging | Key | Description | |-----|-------------| | `ENABLE_LOGGING` | `true` / `false` | | `LOG_RETENTION_DAYS` | Auto-clear log after this many days (default `30`) | ### Auto-Updater | Key | Description | |-----|-------------| | `UPDATE_SOURCE` | `gitea` (default) or `url` — where to check for updates | | `UPDATE_URL` | Base URL of the update server when `UPDATE_SOURCE = url` (e.g. terra-view URL). The watcher fetches `/api/updates/series3-watcher/version.txt` and `/api/updates/series3-watcher/series3-watcher.exe` from this base. | --- ## Tray Icon | Colour | Meaning | |--------|---------| | Grey | Starting / no scan yet | | Green | All detected units OK | | Yellow | At least one unit Pending | | Red | At least one unit Missing, or error | Right-click the icon for: status, per-unit list, Settings, Open Log Folder, Exit. --- ## terra-view Integration When `API_ENABLED = true`, the watcher POSTs a telemetry payload to terra-view on each heartbeat interval. terra-view updates the emitter table and tracks the watcher process itself (version, last seen, log tail) in the Watcher Manager. To view connected watchers: **Settings → Developer → Watcher Manager**. --- ## Requirements - Windows 7 or later - Python 3.8 (only needed if running from source — not needed with the installer) - Blastware 10 event folder accessible on the local machine --- ## Versioning Follows **Semantic Versioning**. Current release: **v1.4.4**. See `CHANGELOG.md` for full history. --- ## License Private / internal — Terra-Mechanics Inc.