Cámaras de matrículas
Cómo montar una barrera que abre sola con la matrícula de una reserva en curso, y que sigue funcionando cuando se cae internet.
Lo primero, al comprar el equipo
La cámara tiene que reconocer la matrícula a bordo y entregarla por HTTP, con salida Wiegand y lista blanca local. En el mercado se vende como «LPR» material que solo graba vídeo y no reconoce nada: con esa cámara no hay integración posible, ni con nosotros ni con nadie. Probamos sobre Safire Smart SF-IPB585ZA-4LPR y la gama LPR de Milesight.Las dos mitades
Una instalación seria usa los dos caminos a la vez, y conviene entender por qué antes de elegir uno:
- En línea. La cámara nos avisa de cada lectura y decidimos aquí, con el estado al segundo: una cancelación de hace un minuto ya cuenta. Deja el rastro completo para la auditoría.
- Local. Nosotros mantenemos la lista de matrículas autorizadas dentro del equipo, y la cámara decide sola. Es lo que sostiene el funcionamiento desatendido de verdad.
La pregunta que conviene hacerse
Si tu instalación solo tiene el camino en línea, ¿qué pasa cuando se cae la fibra del recinto a las dos de la mañana? Con la lista local, la barrera sigue abriendo a quien debe. Sin ella, el área se queda cerrada. Merece la pena comprobarlo con cualquier proveedor antes de firmar un pliego que exija servicio 24 horas.Camino A · la cámara pregunta
Si el equipo admite cabeceras propias
Que llame directamente a la API con su clave:
curl -X POST https://pernocta.app/api/v1/access/plate \
-H "Authorization: Bearer pna_live_CLAVE_DE_LA_CAMARA" \
-H "Content-Type: application/json" \
-d '{"plate": "1234ABC", "deviceId": "carril-entrada"}'{
"data": {
"authorized": true,
"opened": true,
"cooldown": false,
"exactMatch": true,
"plate": "1234ABC",
"reservation": { "number": 59383, "guestName": "Ana Pérez", "to": "2026-09-04" }
}
}Si no las admite (lo habitual)
Casi ninguna cámara sabe mandar una cabecera Authorization en sus notificaciones. Para ellas, se da de alta el equipo en Ajustes › Accesos › Cámaras de matrículas y se obtiene una URL con su propio token, que es lo que se pega en la configuración de «HTTP listening»:
POST https://pernocta.app/api/lpr/{idDeLaCamara}?token=…El cuerpo se acepta como lo mande el fabricante —JSON de ISAPI, JSON plano o texto pelado—: buscamos la matrícula donde suele estar en vez de exigir un formato, porque el firmware cambia y la integración no debería romperse por una actualización.
Camino B · la lista dentro de la cámara
Si diste de alta el equipo en el panel, le empujamos la lista blanca cada pocos minutos y no tienes que hacer nada. Si prefieres gestionarlo tú, descárgala y súbela a tu controlador:
curl "https://pernocta.app/api/v1/access/whitelist?days=2" \
-H "Authorization: Bearer pna_live_TU_CLAVE"days=2 añade las llegadas de los próximos días, para que quien llegue de madrugada ya esté en la lista. La respuesta incluye refreshSeconds con cada cuánto conviene volver.
Entrar y salir no son la misma pregunta
Es el error más caro de esta clase de instalación, y no se ve hasta que pasa. Una reserva del 10 al 13 deja de autorizar el día 13 —ese día el huésped ya se ha ido— pero es exactamente el día en que necesita cruzar la barrera para marcharse. Con una sola regla para los dos sentidos, el huésped que sale a su hora se encuentra la barrera bajada y a nadie a quien llamar.
Por eso cada cámara se da de alta con su sentido, y el de salida usa una ventana propia: incluye el día de marcha, un día de gracia detrás (una avería, una salida tardía pactada) y a quien ya tiene la salida marcada en recepción, porque eso no saca el coche del recinto. Si consumes la API directamente, dilo en la llamada:
curl -X POST https://pernocta.app/api/v1/access/plate \
-H "Authorization: Bearer pna_live_CLAVE" \
-d '{"plate": "1234ABC", "direction": "salida"}'
# y la lista local de la cámara de salida es OTRA lista:
curl "https://pernocta.app/api/v1/access/whitelist?direction=salida" \
-H "Authorization: Bearer pna_live_TU_CLAVE"Y si al salir no reconocemos la matrícula, se abre igual
Por defecto, sí: quien está delante de la barrera de salida ya está dentro, así que retenerlo no protege nada y puede dejar a una persona encerrada de madrugada. Puede haber entrado a pie, ir en el coche de otro, o llevar una placa que la cámara leyó mal con lluvia. Se abre y queda anotado como salida sin identificar. Si controlas los dos sentidos a propósito (un parking de pago), se cambia a «solo conocidas» en la ficha de la cámara.Por la barrera no solo pasan huéspedes
Pasa el camión de la basura los martes, mantenimiento cuando hay una avería, la empresa de limpieza cada mañana y el propietario. Sin una lista para ellos, la única salida es inventarles una reserva —que ensucia ocupación y estadísticas— o que alguien baje a abrirles a mano, que es justo lo que un área desatendida no tiene. En Ajustes › Accesos › Matrículas permanentes se dan de alta con vigencia opcional (para contratas) y una etiqueta que sale en el histórico: dentro de un año se lee «Camión de la basura», no una matrícula suelta. Entran en la lista local igual que las reservas.
Lo que aprendimos de las lecturas reales
La misma matrícula llega varias veces
Una cámara no manda una lectura por coche: manda varias mientras lo tiene encuadrado. Y la barrera es de pulso —un impulso abre, el siguiente cierra—, así que la segunda lectura cerraría la barrera encima del vehículo. Por eso la misma matrícula no vuelve a pulsar el relé en 30 segundos: la respuesta lo dice con cooldown: true, y sigue siendo authorized: true.
El OCR se equivoca con caracteres concretos
O por 0, I por 1, S por 5, B por 8. Intentamos primero la coincidencia exacta contra todas las matrículas autorizadas y solo después la aproximada, corrigiendo esos pares. Cuando abre por aproximación, la respuesta trae exactMatch: false para que puedas auditarlo.
Y si la corrección deja empate, no abre
Si dos matrículas autorizadas se parecen tanto que la lectura corregida encaja con ambas, no se abre a ninguna. Mejor que un conductor llame al timbre a que se le abra la puerta a otro.Enterarte de lo que pasa
Suscríbete a access.opened y access.denied y recibirás cada paso por la barrera y cada intento sin reserva que lo respalde; access.exit_unknown avisa de las salidas que se abrieron sin reconocer la matrícula.
Para la auditoría hay dos endpoints y conviene no confundirlos: GET /api/v1/access/events son las aperturas físicas que devuelve la cerradura, y GET /api/v1/access/passes es lo que vio la cámara, incluidos los coches a los que no se abrió y aquellos a los que se autorizó pero la barrera no obedeció. Ese último caso —derecho a pasar y puerta que no responde— es el que hay que vigilar el primer día:
curl "https://pernocta.app/api/v1/access/passes?outcome=denegado" \
-H "Authorization: Bearer pna_live_TU_CLAVE"Antes de dar la instalación por buena
- Corta internet en el recinto y comprueba que la barrera sigue abriendo con una matrícula autorizada.
- Pasa el mismo coche dos veces seguidas y comprueba que no se queda cerrando detrás.
- Prueba con una reserva cancelada hace un minuto: no debe abrir.
- Prueba a salir con una reserva que termina hoy. Es el caso que deja a alguien encerrado si el sentido de la cámara está mal dado de alta.
- Da de alta una matrícula permanente y comprueba que abre y que sale con su nombre en el histórico.
- Mira el histórico de accesos y confirma que sale el nombre del huésped, no un registro anónimo.
Sin meter un coche delante del poste
En Ajustes › Accesos › Cámaras de matrículas hay un probador: escribes una matrícula, eliges si entra o sale, y te dice qué haría el sistema y por qué —sin levantar la barrera—. Es lo que se usa el día de la instalación y en la primera llamada de soporte, cuando la pregunta siempre es la misma: «¿a este le abriría?».