BLE Scanner — Virtual Gateway
Overview
The BLE Scanner page turns the device you are currently using — a laptop, tablet, phone, or desktop computer — into a virtual BLE gateway. Instead of requiring dedicated hardware receivers to be installed throughout a building, you can open this page and your device will start listening for nearby Bluetooth Low Energy (BLE) badges and report their presence to the mustering system in real time.
Observations sent by the virtual gateway flow through exactly the same pipeline as observations from fixed physical gateways (such as MikroTik KNOTs), so personnel locations are updated on the dashboard and floor plan just as they would be with permanent hardware.
Note: The virtual gateway supplements your fixed infrastructure; it does not replace it. Use it when you need temporary coverage in a new area, during drills, or when you are carrying a device around a space and want to confirm badge detection.
Scanning Modes
The scanner automatically selects the best available scanning method for your device and browser. The active mode is shown as a coloured badge at the top of the page.
Native App (iOS and Android)
When you open the NISC Muster mobile app on a phone or tablet, the scanner uses the device's native Bluetooth hardware directly via the Capacitor BLE plugin.
- No browser flags or special configuration required.
- Full passive scanning: all nearby BLE devices are detected without any user selection step.
- On Android, real MAC addresses are captured. On iOS, stable CoreBluetooth UUIDs are used instead (Apple restricts MAC address access at the operating system level).
- Background scanning on Android is supported via a foreground service, so detection continues while you use other apps.
- Bluetooth and location permissions are requested automatically the first time you start a scan.
Server-Side Scan (Linux Desktop)
If the NISC system is running on a Linux host that has a Bluetooth adapter, the server can perform scanning directly and stream results to your browser over a real-time connection. When this is available, a "Start Server Scan" button appears and is the recommended option because it detects all nearby devices without any browser permission prompts.
Passive Web Bluetooth (Chrome / Edge with experimental flag)
On desktop or Android Chrome and Edge browsers, passive scanning is available when the following experimental flag is enabled:
chrome://flags/#enable-experimental-web-platform-featuresHow to enable:
- Copy the address above or click the "Copy" button next to it on the BLE Scanner page.
- Paste it into your Chrome or Edge address bar and press Enter.
- Find the "Experimental Web Platform features" entry and set it to Enabled.
- Click Relaunch when prompted.
- Return to the BLE Scanner page.
With this flag enabled, the scanner detects all nearby BLE devices automatically — you do not have to select them individually. The mode badge will show "Passive".
Note: This flag also enables other experimental browser features. It is safe to enable on a work device used for mustering operations.
Manual Web Bluetooth (no flag required)
Without the experimental flag, Chrome and Edge still support Bluetooth through a device-picker dialog. In this mode, you must select each device you want to monitor from a list. The scanner will then watch those devices for advertisement updates.
This mode is labelled "Manual" in the mode badge. It is less convenient for wide-area scanning but works without any browser configuration.
USB Dongle (Web Serial)
If a BLE USB dongle is connected to your computer and your browser supports Web Serial (Chrome and Edge on desktop), a "USB Dongle" button appears. Clicking it opens a port selector where you choose the dongle. This mode is useful on machines that do not have a built-in Bluetooth adapter.
Browser Requirements
| Browser | Passive Scan | Manual Scan | USB Dongle |
|---|---|---|---|
| Chrome (desktop, flag enabled) | Yes | Yes | Yes |
| Chrome (desktop, no flag) | No | Yes | Yes |
| Edge (desktop, flag enabled) | Yes | Yes | Yes |
| Edge (desktop, no flag) | No | Yes | Yes |
| Chrome (Android) | Yes | Yes | No |
| Safari (iOS, in-browser) | No | No | No |
| Firefox | No | No | No |
| NISC Muster iOS app | Yes (native) | — | — |
| NISC Muster Android app | Yes (native) | — | — |
Tip: If Web Bluetooth scanning is not available in your browser, the page will explain exactly what is missing and show the flag URL. Your fixed gateway receivers continue to work regardless of browser support.
Starting a Scan
- Navigate to BLE Scanner in the main menu (requires login).
- If you are on a device where multiple scan modes are available, choose the most appropriate button:
- Start Server Scan — appears when a Linux Bluetooth adapter is detected on the server. Use this first if available.
- Start BLE Scan — uses the device's own Bluetooth (native app or Web Bluetooth).
- USB Dongle — use a connected BLE USB dongle via Web Serial.
- If prompted by the browser or operating system, grant Bluetooth or location permissions.
- If using manual Web Bluetooth mode, select one or more devices from the picker that appears.
- The "Scanning" badge will appear at the top of the page once the scan is active.
Note: Once scanning starts, it continues in the background even if you navigate to other pages in the application. You can check the Dashboard or Floor Plan while the scanner is running.
Stopping a Scan
- Navigate back to the BLE Scanner page (or it may already be open in a tab).
- Click the Stop button.
- The "Scanning" badge will disappear and the device list will clear.
Understanding the Discovered Devices List
While scanning, all detected BLE devices are shown in a table or card grid (use the Table / Cards toggle to switch views).
Columns (Table View)
| Column | Description |
|---|---|
| Name | The device's advertised name, if available. Devices without names show "Unknown Device". Manufacturer and product type appear in small text below the name when recognised. |
| ID | The device's transmitter identifier — typically a MAC address displayed in colon-separated format (e.g. AA:BB:CC:DD:EE:FF). An "RPA" tag appears if the address was resolved from a Resolvable Private Address. |
| RSSI | Signal strength in dBm. Colour indicates proximity: green (strong, above -50 dBm), blue (moderate, -50 to -70 dBm), yellow (weak, -70 to -85 dBm), red (very weak, below -85 dBm). The value shown is a smoothed average over a sliding window; the raw instantaneous reading appears in parentheses. |
| Distance | Estimated distance in metres, calculated from RSSI using a log-distance path loss model. This is an approximation and depends on the environment setting (see below). |
| Last Seen | How long ago the device last sent an advertisement packet. Devices that have not been seen for 60 seconds are automatically removed from the list. |
| Signal | A horizontal bar showing signal strength as a percentage. |
Personnel Badges Shown First
Devices whose transmitter IDs match a registered personnel badge in the system are highlighted with a person icon and a distinct row style. These devices appear at the top of the list, sorted ahead of unrecognised devices.
Why does my badge not appear? Your badge must first be registered in the system under Administration > Personnel. The badge's transmitter ID (MAC address or beacon UUID) must be saved against your personnel record.
Environment Setting
The environment selector adjusts the path-loss model used to estimate distances:
- Indoor — suitable for enclosed spaces such as offices, corridors, and rooms.
- Outdoor — suitable for open areas with less obstruction.
- Indoor (dense) — for heavily obstructed environments such as warehouses or server rooms with metal shelving.
Choose the setting that best matches your location for the most accurate distance estimates.
Personnel Only Filter
Toggle the "Personnel Only" switch to hide unrecognised devices and show only badges that match registered personnel. This is useful during a muster check when you want a focused view of who is nearby.
Reports Sent Counter
The status bar at the bottom of the scanning view shows:
- Virtual Gateway ID — the identifier under which this device is registered as a gateway receiver in the system.
- Reports sent — the total number of observation batches sent to the backend since scanning started. Reports are sent approximately every 4 seconds while any devices are visible.
- Last report — how long ago the most recent report was sent.
- Mode — the active scanning mode.
- Personnel beacons — how many of the detected devices are matched to known personnel.
Tip: If the reports sent counter is not increasing, check that your internet connection is active and you are still logged in. The scanner will attempt to re-register itself automatically on reconnection.
Mobile App vs Browser Differences
| Feature | Mobile App (iOS/Android) | Browser (Chrome/Edge) |
|---|---|---|
| Requires Chrome flag | No | Yes (for passive scan) |
| Detects all devices automatically | Yes | Yes (passive); one by one (manual) |
| MAC addresses | Android: real MAC; iOS: CoreBluetooth UUID | Opaque browser ID (may extract MAC from manufacturer data) |
| Background scanning | Yes (Android) | No — tab must remain open |
| USB dongle support | No | Yes (Web Serial) |
| Requires Bluetooth permission prompt | First use only | Each session (browser policy) |
Troubleshooting
The page says "Web Bluetooth Scanning not available" Your browser does not support the required APIs. Use Chrome or Edge, enable the experimental flag described above, or use the NISC Muster mobile app.
Bluetooth permission was denied Go to your browser's site settings (click the lock icon in the address bar) and reset Bluetooth permissions for this site. Then refresh the page and try again.
Devices appear briefly then disappear Devices are removed after 60 seconds without a signal. If a badge is at the edge of Bluetooth range it may drop in and out. Move closer to the badge, or check that the badge battery is not depleted.
Personnel badges are not being recognised Confirm the badge's transmitter ID is saved in Administration > Personnel for the relevant person. The ID must match exactly (the system normalises to lowercase with no separators for comparison).
Reports sent is stuck at 0 The virtual gateway may have failed to register with the backend. Check the error area below the scan controls for a message, and confirm you are logged in to the application.