Connect Device
1. Select transport (BLE or USB) 2. For BLE: optionally enter a serial number to filter devices For USB:
serial number is auto-extracted from the device name 3. Press "Connect" to pair and auto-initialize all
interfaces
🔍 Device Capabilities
Press "Check Capabilities" to query the device for its supported interfaces (local data, secure connection) and MDN hostname.
📡 Sync
Ready
Press "Start Sync" — server URL auto-resolves via getDeviceAssignment(). Optionally check "Override server
URL" for manual testing. Note: Sync and UTO share the same transport — starting sync will stop UTO if
active.
⚙️ UTO Interaction
Press "Init UTO" to start UTO communication. Note: UTO and Sync share the same transport — only one can be
active at a time.
🔐 Secure UTO (Companion Auth)
Runs the full handshake: keypair → cert (POST /api/1/companion/cert) → AT+COMPCERT → ECS → encrypted
UTO. Inputs are persisted in localStorage. Requires the debug transport (AT channel).
Dev only: the cert request is rerouted to the Vite dev server (same-origin) and the host below is forwarded as the
Dev only: the cert request is rerouted to the Vite dev server (same-origin) and the host below is forwarded as the
x-target-host header so CORS doesn't apply. Production builds call the host
directly.
skews every minted stamp — the device clock follows the STAMPS query (CA-392)
Phase: idle
Fill in MDN host + access token + subject UUID, then press "Init Secure UTO" to run the
CompanionAuthManager flow. Phases will appear above and in the Console panel.
🔄 Offline Sync
Download the site DB from the companion-sync endpoint and reconcile it with the connected
device. Host and token are shared with the Companion Auth fields above.
Requires an active UTO connection (plain or encrypted).
Connect and authenticate first.
🗂️ DDE Mapper
Downloads the connected device's site-db and app-data-db (site_info → apmid/version →
DDE "xml"), parses the DDE, and reads a config container or a timeseries range through
the
DdeMapper. Host and token are shared with the Companion Auth / Offline
Sync fields above. Requires an active UTO connection.
Connect and press "Init UTO", then "Load Databases".
📡 Live Mode
Sends ESC LIVE_ON on the open UTO link and collects the device's unsolicited / live histdata
frames into an in-memory overlay (never written to the site DB). Requires an active UTO
connection and a loaded DDE — press "Load Databases" in the DDE Mapper sub-panel first. The
flag
online must be set on the device (cn-set-lifecycle), otherwise an
interval-mode device sends nothing.
State: ⚪ idle
| Container | Stamp (UTC) | Kind | Age |
|---|
🐛 Debug Console
Quick:
📊 Local Data
Not checked
Press "Check Support" to verify the device supports local data, then "Fetch Metadata" to load data point descriptors.
📶 RM2M State
Press "Fetch State" to query AT+RM2MSTATE? and display the parsed result.