Guía de la API de QFM

API de QuickFreeze QFM

Consulta el estado en tiempo real y controla tus unidades QFM desde tu sistema de gestión de almacén (WMS) o tu sistema de automatización de edificios: configura los tiempos de ciclo, registra el contenido del palé, pon en pausa y reanuda el funcionamiento de los ventiladores.

Tu software se refiere a cada unidad por su Número de serie de QFM (impreso en la unidad) más el ubicación del estante que tengas registrado para ello. Todo pasa por un único punto de conexión seguro, limitado a las unidades de tu propia instalación. El número de serie es permanente: cuando se reemplaza una caja de control, la API asocia el número de serie a la caja que esté instalada en ese momento, por lo que un cambio no requiere ninguna modificación de tu parte.

Conexión

Punto final
https://qfreeze.com/wp-json/qf/v1/qfm
la misma dirección para todos los clientes — tu clave la limita a tus unidades
Encabezado de autenticación
X-QF-API-Key: {tu-clave-de-API} — emitido por cada instalación; se requiere TLS 1.2 o superior
Métodos
HTTP OBTENER (parámetros de consulta) o PUBLICAR (Cuerpo JSON)
Respuestas
Devuelve el número de lecturas 200 con el estado actual de la unidad; los comandos devuelven 202 aceptado. Cada error es un JSON con una versión estable error código: si falta una clave o está incorrecta, se devuelve 401.
Agente de usuario
Por favor, envíe un agente identificador, por ejemplo:. TuEmpresa-WMS/1.0. Nuestro sistema bloquea algunas firmas conocidas de clientes automatizados; si alguna vez recibes un código de error HTML 403 en lugar de JSON, avísanos y autorizaremos tu cliente.

1. Identificación de una unidad

Cada solicitud conlleva dos identificadores, y ambos deben coincidir con nuestros registros:

ParámetroEjemploNotas
QFM_SERIALQFM-12107Está impreso en la unidad. Permanente: no se borra al cambiar la caja de control.
UBICACIÓN_DEL_RACK2X-001BLa posición en el rack que hemos registrado para ese QFM.
WAREHOUSE_IDDC-EASTOpcional. Tu propio código de sitio o de almacén, que se devuelve sin cambios: se trata de una etiqueta para sistemas con múltiples sitios, no de un permiso.

Si el número de serie existe pero el rack no coincide, la solicitud es rechazado y la respuesta te indica qué rack tenemos registrado (409 discrepancia de rack). Una asignación desactualizada o mal ingresada en el WMS nunca nos hará actuar sobre la unidad equivocada. Un número de serie que pertenece a otro cliente devuelve 403, incluso con un soporte adecuado.

2. Interrogar una unidad (leer el último valor)

COMANDO=poll Es el valor predeterminado y se puede omitir. La consulta es de solo lectura y no puede afectar al equipo.

curl -H "X-QF-API-Key: {tu-clave-de-API}" -H "User-Agent: YourCompany-WMS/1.0" \
  "https://qfreeze.com/wp-json/qf/v1/qfm?QFM_SERIAL=QFM-12107&RACK_LOCATION=2X-001B&COMMAND=poll"

→ 200 {"ok":true,"QFM_SERIAL":"QFM-12107","RACK_LOCATION":"2X-001B",
       "controlBox":"F8B3B74E6E7C","ts":1786143610000,"state":"READY",
 "airtF":3.4,"airtC":-15,89,"deltap":0,01,
 "remaining":172 800,"active":true,"SKU":"I1-123456"}
CampoSignificado
okverdadero en el éxito. Siempre presente.
UBICACIÓN_DEL_RACKEl estante nosotros que tenemos en nuestros archivos para esa unidad.
controlBoxLa caja de control ya está instalada. Aunque no la veas, menciónala cuando reportes un problema.
tsHora de la lectura, milisegundos de época UTC. Verifícalo siempre: una unidad fuera de línea devuelve sus últimos valores conocidos con una marca de tiempo anterior.
estadoEstado actual de la unidad, p. ej.:. LISTO, CORRER, COMPLETO, PAUSA, SELLADO DEFECTUOSO.
airtF / airtCTemperatura del aire en ambas escalas. Las unidades se miden en grados Celsius — leer airtF Si trabajas en grados Fahrenheit, no des por sentado que un valor sin etiquetar está en °F.
deltapPresión diferencial a través de la unidad (calidad del sellado).
restanteSegundos que quedan en el ciclo actual; 0 cuando no está en funcionamiento.
activoSi la unidad está funcionando en este momento.
SKUCódigo de artículo impreso en el ciclo en curso (siempre una cadena). Vacío cuando no hay ningún ciclo en ejecución; la unidad lo borra al finalizar el ciclo.

3. Comandos

Hay tres comandos disponibles: set_cycle, pausa y currículum. Los comandos son asíncrono: validamos y autorizamos la solicitud, devolvemos 202, y luego lo aplicamos a la unidad un momento después. Todo aquello sobre lo que no podamos actuar es rechazado de inmediato con un 4xx y un error código: nunca devolvemos un código 202 para un comando que, en silencio, no haría nada. Para confirmar que el cambio llegó a la unidad, compruébalo posteriormente.

Configurar la duración del ciclo y los detalles del ciclo — set_cycle

ParámetroNotas
INCUBACIÓNTiempo de ejecución en horas, entero o fraccionario (48, 12.5). Persiste hasta que se modifique; si la unidad está fuera de línea, entra en vigor en su próximo registro.
NÚMERO DE ARTÍCULO (o SKU)Tu código de artículo. Está estampado en la unidad correspondiente a este ciclo y te permite consultar el tiempo de funcionamiento en tu biblioteca de SKU (a continuación).
PALLET_TAG, POPalé / LP / LPN y orden de compra, registrados en el ciclo para la generación de informes.

Envía cualquier combinación —al menos una—. Solo PO? Está bien. ¿Los detalles del palé en un ciclo que ya está en ejecución, sin alterar su tiempo de ejecución? Está bien. Si envías cualquiera de estos campos sin un COMANDO, lo consideramos como set_cycle.

curl -H "X-QF-API-Key: {tu-clave-API}" -H "User-Agent: YourCompany-WMS/1.0" \
  "https://qfreeze.com/wp-json/qf/v1/qfm?QFM_SERIAL=QFM-12107&RACK_LOCATION=2X-001B\
&COMMAND=set_cycle&INCUBATION=48&ITEM_NUMBER=I1-123456&PALLET_TAG=LP-4471&PO=PO12345"

→ 202 {"ok":true,"accepted":true,"QFM_SERIAL":"QFM-12107","RACK_LOCATION":"2X-001B",
       "controlBox":"F8B3B74E6E7C","COMMAND":"set_cycle",
 "applied":{"cycleTimeHours":48,"SKU":"I1-123456","PALLET_TAG":"LP-4471","PO":"PO12345"},
 "cycleTimeChanged":true}

aplicado enumera exactamente las medidas que tomamos y cycleTimeChanged indica si el tiempo de ejecución ha cambiado; nunca tienes que darlo por sentado. Un INCUBACIÓN No podemos descartar toda la llamada; no nos limitaremos a aplicar silenciosamente solo los metadatos.

Tiempo de ciclo a partir de la SKU

Que el código del artículo determine el tiempo de ejecución, en lugar de enviar INCUBACIÓN cada llamada: &COMMAND=set_cycle&ITEM_NUMBER=I1-123456. La biblioteca se arma a partir de tus llamadas: la primera llamada que incluye un código de artículo con un explícito INCUBACIÓN nos enseña que el tiempo de ejecución del elemento, y las llamadas posteriores pueden enviar solo el código. Se registra un nuevo elemento sin horas, pero el tiempo de ejecución permanece sin cambios; la respuesta lo indica con cycleTimeChanged:false y un advertencia. Un explícito INCUBACIÓN siempre gana.

Detener / reanudar los ventiladores

pausa apaga los ventiladores y congela el temporizador del ciclo en su posición actual; currículum continúa exactamente de donde se había quedado. DURACIÓN (minutos, opcional) es un mecanismo de reanudación automática por inactividad: si tu sistema nunca envía currículum, la unidad se reinicia automáticamente. Recomendamos enviarla cada vez que haya una pausa.

curl -H "X-QF-API-Key: {tu-clave-de-API}" \
  "https://qfreeze.com/wp-json/qf/v1/qfm?QFM_SERIAL=QFM-12107&RACK_LOCATION=2X-001B&COMMAND=pause&DURATION=30"

curl -H "X-QF-API-Key: {tu-clave-de-API}" \
  "https://qfreeze.com/wp-json/qf/v1/qfm?QFM_SERIAL=QFM-12107&RACK_LOCATION=2X-001B&COMMAND=resume"
La pausa solo se mantiene en una unidad que realmente esté ejecutando un ciclo. Un QFM inactivo vuelve por sí mismo a LISTO un momento después de haberlo puesto en pausa — eso significa que la unidad está funcionando correctamente, no que se trate de un comando fallido. Verifica estado y activo En primer lugar, si es relevante para tu flujo de trabajo.

Repetir un comando

Los tres comandos se pueden volver a enviar sin problema — set_cycle establece un valor en lugar de sumar uno, y pausa/currículum Establecer un estado. El reenvío tras un tiempo de espera no se acumulará.

4. Respuestas de error

Alerta sobre el error código, no el texto del mensaje: los mensajes pueden modificarse, pero los códigos no cambiarán.

{"ok":false,"error":"rack_mismatch",
 "message":"RACK_LOCATION no coincide con el rack registrado para QFM-12107. No se procesará una unidad que podría ser incorrecta.",
 "expectedRackLocation":"2X-001B"}
HTTPerrorSignificadoQué hacer
400número de serie faltante / ubicación_del_rack_faltanteFalta un identificador obligatorioCorrige la solicitud
400comando_incorrectoNo reconocido COMANDOCorrige la solicitud
400nada_que_configurarset_cycle sin nada que aplicarEnvía al menos un campo
400poll_is_read_onlyCOMANDO=poll enviado con campos que escribiríanOmitir COMANDO, o usa set_cycle
400tiempo_de_ciclo_defectuosoINCUBACIÓN no es un número positivoCorrige el valor — no se aplicó nada
401no autorizadoClave de API faltante o incorrectaRevisa el encabezado; alerta
403no_autorizadoEsa unidad no figura en tu cuentaRevisa el número de serie; alerta
404número de serie desconocidoNo hay QFM con ese número de serieError tipográfico o unidad fuera de servicio; alerta
409rack_mismatchEl número de serie es el tuyo, pero el rack no coincideAlerta. Tu mapa está desactualizado — ubicación prevista del rack te dice cuál es la nuestra
409ambiguous_serialEl número de serie coincide con más de una unidadContáctanos — un problema con los datos por nuestra parte
502error_de_origenNo pudimos llegar a la plataforma de monitoreoVolver a intentarlo con retrasos; alertar si la situación persiste

Reintentos: se pueden reintentar sin problema los comandos «poll» y todos los demás. Usa un retroceso exponencial para el código 502; no reintentes los códigos 4xx, ya que no se resolverán sin modificar la solicitud.

Identidad y seguridad

  • Cada instalación se autentica con su propia clave de API y está autorizada a solo sus propias unidades.
  • UBICACIÓN_DEL_RACK debe coincidir con la ubicación asociada a ese QFM_SERIAL o se rechaza la solicitud; esto evita que se ajuste la unidad incorrecta.
  • Las unidades se identifican mediante Serie QFM, que se mantiene estable incluso cuando se cambian las cajas de control; controlBox En cada respuesta se indica qué casilla se seleccionó.
  • No incluyas tu clave de API en cadenas de correo electrónico ni en archivos compartidos. QuickFreeze podría limitar la frecuencia de los volúmenes excesivos de solicitudes.

Primeros pasos

QuickFreeze te proporciona tu clave de API y el QFM_SERIAL ↔ UBICACIÓN_EN_RACK mapa para tus unidades. Una buena primera opción es realizar una consulta con una unidad activa y, luego, indicar una ubicación de rack deliberadamente incorrecta para ver 409 discrepancia de rack Vuelve. Si quieres, mándanos tu lista de SKU con los tiempos de ciclo. NÚMERO DE ARTÍCULO solo para establecer los tiempos de ejecución desde el primer día.

Para solicitar acceso, comuníquese con su representante de QuickFreeze.