Ir al contenido principal

Integración de API web LOQED

Guía avanzada para desarrolladores: reciba eventos de bloqueo con webhooks, controle su bloqueo LOQED y cambie la configuración de bloqueo, como el modo de puertas abiertas y Twist Assist, utilizando las API de LOQED.

Algunas plataformas y dispositivos domésticos inteligentes aún no tienen una integración LOQED directa. Si es un usuario avanzado o un desarrollador, puede crear su propia integración utilizando las API de LOQED. Antes de empezar, te recomendamos leer nuestro artículo. "Usuarios avanzados: API disponibles" first.

LOQED ofrece tres formas de integrarse con su cerradura:

  • Webhooks salientes – permita que su bloqueo notifique a una URL externa cada vez que cambie su estado (por ejemplo, para activar automatizaciones).

  • Webhooks entrantes – controlar su cerradura (apertura, pestillo, cerradura nocturna) desde otro servicio o dispositivo.

  • API de integraciones – una API REST basada en token para enumerar sus bloqueos, cambiar el estado del bloqueo y cambiar la configuración del bloqueo, como Modo Casa Abierta y Asistencia de giro.

Webhooks salientes: llame a una URL externa cuando cambie el bloqueo

Cuando el bloqueo alcanza una nueva posición (abierto, desbloqueo/bloqueo diurno, bloqueo/bloqueo nocturno), el backend de LOQED puede enviar datos (POST) a una URL de su elección. Puede registrar la URL a la que desea que le llamen en el API sección sobre app.loqed.com (vea abajo).

Debido a que no todos los sistemas admiten JSON, también puede configurar una URL separada para cada evento (por ejemplo, una URL para abrir y otra para bloquear). En ese caso el requested_state El valor es siempre el mismo para esa URL.

Carga útil del evento: estado alcanzado

Esta carga útil se envía cuando el bloqueo se ha activado. alcanzó una posición. Ejemplo del JSON publicado en su URL:

{
"requested_state": "DAY_LOCK",
"event_type": "STATE_CHANGED_LATCH",
"lock_id": "Yq1gK4oeE9KWe0ByxjX2",
"key_local_id": 3,
"key_name_user": "Front door",
"key_name_admin": "Jane Doe",
"key_account_e-mail": "jane@example.com",
"key_account_name": "Jane Doe"
}

Campos

  • requested_state – la posición alcanzada: OPEN, DAY_LOCK, NIGHT_LOCK o UNKNOWN.

  • event_type – uno de:

    • STATE_CHANGED_OPEN (estado_solicitado = ABIERTO)

    • STATE_CHANGED_LATCH (estado_solicitado = DAY_LOCK)

    • STATE_CHANGED_NIGHT_LOCK (estado_solicitado = NOCHE_BLOQUEO)

    • STATE_CHANGED_UNKNOWN (estado_solicitado = DESCONOCIDO)

    • MOTOR_STALL (estado_solicitado = DESCONOCIDO)

  • lock_id – el identificador de su cerradura.

  • key_local_id, key_name_user, key_name_adminnull cuando la acción no fue activada por una tecla (por ejemplo, un giro manual de la perilla o la pulsación de un botón).

  • key_account_e-mail, key_account_namenull para acciones manuales, o cuando se utiliza un PIN que no está vinculado a una cuenta.

Carga útil del evento: ir a un estado

También puedes recibir un webhook cuando el bloqueo comienza a moverse hacia una nueva posición. Es posible que el bloqueo no llegue a la posición (por ejemplo, cuando las pilas están casi agotadas). Estos acontecimientos marcaron la go_to_state atributo con el estado del perno objetivo.

{
"go_to_state": "OPEN",
"event_type": "GO_TO_STATE_INSTANTOPEN_OPEN",
"lock_id": "Yq1gK4oeE9KWe0ByxjX2",
"key_local_id": 3,
"key_name_user": "Front door",
"key_name_admin": "Jane Doe",
"key_account_e-mail": "jane@example.com",
"key_account_name": "Jane Doe"
}

Posible go_to_state valores: OPEN, DAY_LOCK, NIGHT_LOCK.

Posible event_type valores:

  • GO_TO_STATE_INSTANTOPEN_OPENToque para abrir (go_to_state = ABIERTO)

  • GO_TO_STATE_INSTANTOPEN_LATCHDesbloqueo automático (go_to_state = DAY_LOCK)

  • GO_TO_STATE_MANUAL_UNLOCK_BLE_OPEN (go_to_state = ABIERTO)

  • GO_TO_STATE_MANUAL_LOCK_BLE_LATCH (go_to_state = DAY_LOCK)

  • GO_TO_STATE_MANUAL_LOCK_BLE_NIGHT_LOCK (ir_a_estado = NOCHE_BLOQUEO)

  • GO_TO_STATE_TWIST_ASSIST_OPEN (go_to_state = ABIERTO)

  • GO_TO_STATE_TWIST_ASSIST_LATCH (go_to_state = DAY_LOCK)

  • GO_TO_STATE_TWIST_ASSIST_LOCK (ir_a_estado = NOCHE_BLOQUEO)

  • GO_TO_STATE_MANUAL_UNLOCK_VIA_OUTSIDE_MODULE_PIN (go_to_state = ABIERTO)

  • GO_TO_STATE_MANUAL_UNLOCK_VIA_OUTSIDE_MODULE_BUTTON (go_to_state = ABIERTO)

  • GO_TO_STATE_TOUCH_TO_LOCK (ir_a_estado = NOCHE_BLOQUEO)

  • GO_TO_STATE_MANUAL_UNLOCK_REMOTE_OPEN

  • GO_TO_STATE_MANUAL_LOCK_REMOTE_LATCH

  • GO_TO_STATE_MANUAL_LOCK_REMOTE_NIGHT_LOCK

El lock_id y key_* Los campos se comportan igual que se describe arriba.

Webhook de potencia de Bluetooth y Wi-Fi

Cada pocas horas, y siempre que la cerradura o el puente estén encendidos, se puede enviar una actualización de los niveles de señal. Habilite la marca de verificación correspondiente en el API sección sobre app.loqed.com para recibir esta información.

{
"ble_strength": 42,
"wifi_strength": 73,
"battery_percentage": 88,
"lock_id": "Yq1gK4oeE9KWe0ByxjX2"
}
  • ble_strength – Señal Bluetooth en porcentaje. Esto fluctúa mucho, así que no te preocupes si es bajo.

  • wifi_strength – Señal Wi-Fi en porcentaje.

  • battery_percentage – nivel de batería como porcentaje.

  • lock_id – el identificador de su cerradura.

Bloquear webhook en línea

Cada pocas horas, y siempre que la cerradura o el puente estén encendidos, se puede enviar una actualización "en línea". Habilite la marca de verificación correspondiente para recibir esta información.

{
"online": 1,
"lock_id": "Yq1gK4oeE9KWe0ByxjX2"
}
  • online1 se envía como valor.

  • lock_id – el identificador de su cerradura.

Probando su webhook

Recomendamos usar Webhook.site para verificar que su cerradura inteligente esté llamando a la URL del webhook. También le permite inspeccionar los datos JSON que se envían.

Webhooks entrantes: controla el bloqueo

Si desea controlar su bloqueo desde un servicio o dispositivo de terceros, puede hacerlo con un HTTPS GET solicitud a una URL LOQED.

Inicie sesión y abra la sección API

  1. Abierto app.loqed.com en tu navegador.

  2. Inicie sesión con la dirección de correo electrónico de su cuenta de la aplicación LOQED. Se enviará un código de verificación (2FA) a su correo electrónico; ingréselo para continuar.

  3. En el menú, elija API. Aquí es donde administra sus webhooks y claves API salientes y entrantes.

Crear una clave API

En esta página puede agregar webhooks salientes y crear webhooks entrantes.

  • Hacer clic Agregar nueva clave API.

  • Ingrese un nombre para que pueda reconocer la clave más tarde. Puede ser cualquier cosa; no es necesario que coincida con el nombre de su clave.

  • Si tiene varias cerraduras, seleccione la correcta de la lista. Seleccionar Bloquear dropdown.

  • Hacer clic Agregar clave API.

Su clave API ya ha sido creada.

Llame a la API

Actualmente, la API admite los siguientes comandos:

  • Abierto – la puerta se abre. Se devuelve un objeto JSON vacío.

  • Pestillo – la puerta está desbloqueada (bloqueo diurno). Se devuelve un objeto JSON vacío.

  • bloqueo nocturno – la puerta está cerrada. Se devuelve un objeto JSON vacío.

  • Estado – devuelve el estado actual de la cerradura (ver más abajo).

⚠️ Importante: solicitar el Estado como máximo una vez al día. Si lo solicitas más de 12 veces serás bloqueado por 12 horas. En lugar de sondear el estado, configure un webhook saliente para que su servidor reciba una notificación instantánea cada vez que cambie el estado de bloqueo.

El Estado El comando devuelve el siguiente JSON:

{
"id": "Yq1gK4oeE9KWe0ByxjX2",
"bridge_online": 1,
"lock_online": 1,
"battery_percentage": 88,
"battery_type": 0,
"bolt_state_numeric": 2,
"bolt_state": "day_lock",
"guest_access_mode": 0,
"twist_assist": 0,
"touch_to_connect": 0
}
  • id – identificador de bloqueo.

  • bridge_online1 si el puente está en línea, de lo contrario 0.

  • lock_online1 si el bloqueo está en línea, de lo contrario 0.

  • battery_percentage-1 si el bloqueo está fuera de línea, de lo contrario 0100.

  • battery_type0 = alcalino, 1 =NiMH, 2 = Litio (no recargable), 3 = desconocido.

  • bolt_state_numeric0 = desconocido, 1 = abierto, 2 = bloqueo_día, 3 = bloqueo_noche.

  • bolt_stateunknown, open, day_lock o night_lock.

  • guest_access_mode1 si está habilitado, 0 si está deshabilitado.

  • twist_assist1 si está habilitado, 0 si está deshabilitado.

  • touch_to_connect1 si se elimina la restricción Toque para abrir 500 m; de lo contrario 0.

Deje que LOQED genere la firma digital

Los comandos de la cerradura inteligente deben estar firmados digitalmente. La opción más sencilla es dejar que el servidor LOQED genere esta firma por usted: simplemente use las cuatro URL ya preparadas (abierta, cerrada, bloqueada, estado) que se muestran en la API sección sobre app.loqed.com.

Genera tú mismo la firma digital

Si prefiere conservar su clave de cifrado y no enviarla al servidor LOQED, puede generar la firma digital usted mismo. En app.loqed.com/Backend-API-example proporcionamos código de ejemplo (JavaScript y PHP) que muestra cómo se crea la firma.

API de integraciones: leer bloqueos y cambiar configuraciones

El API de integraciones es una API REST basada en tokens. Con un único token de acceso personal, puede enumerar sus bloqueos, cambiar el estado del bloqueo y cambiar la configuración del bloqueo, como Modo Casa Abierta y Asistencia de giro.

La URL base para todos los puntos finales es:

https://integrations.production.loqed.com

Cada solicitud debe incluir su token de acceso personal en el Authorization encabezamiento:

Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN

Generar un token de acceso personal

Abre el Página de token de acceso personal LOQED y sigue estos pasos:

  1. Inicie sesión con la dirección de correo electrónico de su cuenta de la aplicación LOQED (debe ser un administración).

  2. Grifo Crear.

  3. Asigne al token un nombre reconocible (por ejemplo, el nombre de la integración que está creando).

  4. Grifo Ahorrar.

  5. Copie el token y guárdelo en un lugar seguro; lo utilizará como Bearer token en cada solicitud. Trátelo como una contraseña.

Lista tus cerraduras

Utilice este punto final para recuperar todos los bloqueos disponibles para su cuenta, incluido su estado y configuración actuales. Necesitarás la cerradura id para los otros puntos finales.

GET https://integrations.production.loqed.com/api/locks/

Ejemplo con cURL:

curl -X GET "https://integrations.production.loqed.com/api/locks/" \
-H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN"

Respuesta de ejemplo:

{
"data": [
{
"id": "Yq1gK4oeE9KWe0ByxjX2",
"name": "Front door",
"model_name": "LOQED Touch",
"battery_percentage": 95,
"battery_type": "alkaline",
"bolt_state": "day_lock",
"party_mode": false,
"guest_access_mode": false,
"twist_assist": false,
"touch_to_connect": false,
"lock_direction": "counter_clockwise",
"mortise_lock_type": "cylinder_operated_no_handle_on_the_outside",
"supported_lock_states": [
"open",
"day_lock",
"night_lock"
]
}
]
}

Cambiar el estado de bloqueo

Opere una cerradura llamando al bolt_state punto final. Los estados de pernos disponibles son open, day_lock y night_lock.

GET https://integrations.production.loqed.com/api/locks/{lockId}/bolt_state/{boltState}

Ejemplo con cURL (desbloqueo para bloqueo de día):

curl -X GET "https://integrations.production.loqed.com/api/locks/Yq1gK4oeE9KWe0ByxjX2/bolt_state/day_lock" \
-H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN"

Cambiar una configuración de bloqueo

Utilice este punto final para cambiar una configuración de bloqueo como Modo Casa Abierta, Asistencia de giro, la dirección de bloqueo o la zona horaria.

POST https://integrations.production.loqed.com/api/locks/{lockId}/setting

Envíe un cuerpo JSON con el nombre de la configuración y su nuevo valor. Por ejemplo, a habilitar el modo de jornada de puertas abiertas:

{
"setting_name": "open_house_mode",
"setting_value": 1
}

A habilitar asistencia de giro:

{
"setting_name": "twist_assist",
"setting_value": 1
}

Ejemplo completo con cURL:

curl -X POST "https://integrations.production.loqed.com/api/locks/Yq1gK4oeE9KWe0ByxjX2/setting" \
-H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"setting_name": "open_house_mode", "setting_value": 1}'

setting_value es un entero de 32 bits con signo. La mayoría de las configuraciones son simples opciones de encendido/apagado que aceptan 0 (apagado) y 1 (activado), pero algunos esperan valores específicos. Cambie una configuración a la vez y verifique el resultado en su cerradura o en la aplicación LOQED.

Configuraciones disponibles

Las configuraciones siguientes son los conmutadores más utilizados (0 = apagado, 1 = encendido):

nombre_configuración

que hace

open_house_mode

Mantiene la puerta cerrada durante el día para que pueda abrirse con la manija sin desbloquearse cada vez.

twist_assist

Le da al cerrojo un giro adicional para ayudar a operar puertas rígidas.

touch_to_connect

Elimina el requisito de geovalla de 500 m para tocar para abrir.

touch_to_lock

Cierra la puerta tocando el exterior de la cerradura.

hold_to_lock

Bloquee la puerta tocando y sosteniendo el exterior de la cerradura.

Consejo: para confirmar que su token funciona, envíe un GET solicitar a https://integrations.production.loqed.com/api/locks/ con tu Authorization: Bearer encabezamiento. Una lista de sus cerraduras confirma que todo está configurado correctamente.

¿Ha quedado contestada tu pregunta?