LED Matrix Webex Display

Device Web API

The LED Matrix Display exposes a local web API for configuration and status monitoring. All endpoints are accessible at http://<device-ip>/api/ or http://led-matrix.local/api/

GET /api/status

Get current device status including presence, WiFi, and system information.

curl http://led-matrix.local/api/status

Response:

{
  "presence": "active",
  "wifi": {
    "ssid": "MyNetwork",
    "rssi": -45,
    "ip": "192.168.1.100"
  },
  "system": {
    "version": "1.0.5",
    "uptime": 3600,
    "free_heap": 123456
  }
}

POST /api/presence

Manually set presence status (overrides Webex for 5 minutes).

curl -X POST http://led-matrix.local/api/presence \
  -H "Content-Type: application/json" \
  -d '{"status": "meeting"}'

Valid status values: active, meeting, dnd, away, inactive

GET /api/config

Get device configuration (non-sensitive fields only).

curl http://led-matrix.local/api/config

POST /api/config

Update device configuration.

curl -X POST http://led-matrix.local/api/config \
  -H "Content-Type: application/json" \
  -d '{"brightness": 50, "mode": "webex"}'

POST /api/restart

Restart the device.

curl -X POST http://led-matrix.local/api/restart

Bridge Server API

When using the optional Node.js bridge server, it exposes WebSocket and REST APIs for managing multiple displays.

WebSocket Connection

Displays connect to ws://<bridge-server>:8080 for real-time presence updates.

// Device registration
{
  "type": "register",
  "deviceId": "led-matrix-001",
  "userId": "[email protected]"
}

// Presence update from server
{
  "type": "presence",
  "status": "active",
  "timestamp": 1234567890
}

Bridge REST API

Management API for the bridge server.

GET /api/devices

List all registered devices.

GET /api/devices/:id

Get specific device status.

POST /api/devices/:id/presence

Set presence for a specific device.

Home Assistant Integration

The Home Assistant add-on provides entity integration:

mDNS Discovery

Devices advertise themselves via mDNS as _ledmatrix._tcp.local with the following properties:

Firmware Version API

Check for firmware updates programmatically via Supabase Edge Functions:

GET /functions/v1/get-manifest

Returns the latest firmware manifest with available versions.

curl https://your-project.supabase.co/functions/v1/get-manifest

Query Parameters:

GET /functions/v1/get-firmware

Returns a signed URL for firmware download (requires HMAC authentication for devices).

curl https://your-project.supabase.co/functions/v1/get-firmware \
  -H "X-Device-Serial: A1B2C3D4" \
  -H "X-Timestamp: 1706367600" \
  -H "X-Signature: base64-hmac-signature"