/ws/devices
May 21, 2026 ยท View on GitHub
WebSocket endpoints provide real-time updates for long-running operations and dynamic data.
/ws/devices
Protocol: WebSocket
Description: Provides real-time updates on device topology, including USB connections, provisioning status, and device states.
Message Format:
Server sends JSON messages with current topology:
{
"type": "topology",
"timestamp": 1706191845000,
"nodes": [
{
"id": "1-1.4",
"parentId": "server",
"isHub": false,
"vendor": "0a5c",
"product": "2712",
"productName": "BCM2712 Boot",
"serial": "c561b701c85be8ea",
"state": "provisioning",
"image": "raspios-2025-04-01.img",
"model": "CM5",
"ip": "192.168.1.100",
"modelGen": 5
}
],
"removed": ["1-1.3"]
}
Notes:
-
Automatically sends topology snapshot on connection
-
Broadcasts updates when devices connect/disconnect or state changes
-
Includes placeholder nodes for empty hub ports
-
The
removedarray lists device IDs that were disconnected
/ws/sha256
Protocol: WebSocket
Description: Provides real-time progress updates for SHA256 hash calculations of image files.
Client Messages:
Request SHA256 calculation:
{
"action": "get_sha256",
"image_name": "raspios-2025-04-01.img"
}
Server Messages:
Progress update:
{
"image_name": "raspios-2025-04-01.img",
"status": "pending",
"progress": 0.45,
"progress_percent": 45
}
Complete:
{
"image_name": "raspios-2025-04-01.img",
"status": "complete",
"sha256": "abc123def456..."
}
Error:
{
"image_name": "raspios-2025-04-01.img",
"status": "error",
"error": "Failed to read file"
}
Notes:
-
Multiple clients can subscribe to the same image calculation
-
Progress updates are sent approximately every 5% of completion
-
Calculations are automatically cancelled when no clients are listening
-
SHA256 sidecar files (.sha256) are not hashable and will return an error