Documentación de API
Centro de ayuda/Documentación de API/API de dispositivos y Device Hub

API de dispositivos y Device Hub

Última actualización 2026-10-13

Registro de dispositivos en la nube, emparejamiento del hub y protocolo local de Device Hub.

Registro de dispositivos en la nube#

GET /api/wms/print-devices
GET /api/wms/print-devices?warehouse_id=<uuid>&hub_id=<uuid>&page=1&page_size=50
// -> items: id, name, model, device_type, connection, address,
//    is_default_label_printer, status, last_seen_at, hub_id, hub_name,
//    warehouse_id, warehouse_name, created_at

En línea/fuera de línea se calcula desde last_seen_at (umbral de 2 minutos). El Hub sincroniza las impresoras automáticamente tras el emparejamiento.

Protocolo local de Device Hub#

El emparejamiento y la impresión local pasan por la app Device Hub vía WebSocket en ws://127.0.0.1:18443 (JSON con action + params; eventos como { event, data }). hub.info y hub.pair no requieren auth; el resto requiere el token del emparejamiento.

Emparejar con el código de 6 dígitos
// 1. user reads the 6-digit code shown in the Device Hub tray app
// 2. pair (no auth required):
ws -> { "action": "hub.pair", "params": { "code": "482910" }, "id": "1" }
ws <- { "id": "1", "ok": true, "data": { "token": "<hub-token>" } }
// 3. store the token locally; all later requests send it (see device-hub lib).
//    success envelope: { id, ok: true, data }
//    error envelope:   { id, ok: false, error: { code, message } }
  • hub.info — versión/plataforma del hub, sin auth.
  • printer.list → { printers }; printer.discover inicia escaneo USB + red (mDNS), resultados vía eventos printer.discovered.
  • printer.print { device_id, data: "<zpl>", copies } → { job_id }; finalización/fracaso vía evento print.job_completed.
  • printer.status { device_id } — estado en tiempo real (sin papel/cinta, tapa abierta).
  • device.register { device_id, name, is_default } — registra un dispositivo descubierto (también informa al registro en la nube).

Vinculación del relé en la nube#

hub.cloud_bind — habilitar el relé en la nube
ws -> { "action": "hub.cloud_bind", "params": {
  "supabase_url": "https://<ref>.supabase.co",
  "supabase_anon_key": "<anon-key>",
  "organization_id": "<uuid>",
  "warehouse_id": "<uuid>"        // optional
}, "id": "2" }
ws <- { "id": "2", "ok": true, "data": {} }
// after binding, the Hub pulls print_jobs with its cloud credentials and syncs the device ledger.