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/statusResponse:
{
"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/configPOST /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/restartBridge 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:
sensor.led_matrix_presence- Current presence statussensor.led_matrix_uptime- Device uptimebutton.led_matrix_restart- Restart devicenumber.led_matrix_brightness- Adjust brightness
mDNS Discovery
Devices advertise themselves via mDNS as _ledmatrix._tcp.local with the following properties:
version- Firmware versionmode- Operation mode (webex/bridge/meraki)chip- ESP32 or ESP32-S3
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-manifestQuery Parameters:
format=esp-web-tools- Returns manifest in ESP Web Tools format for web flashing
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"