Documentación rápida

Este panel soporta 2 estrategias:(tipos)

  1. Push HTTP (recomendado): Configura en cada reloj una URL de servidor para enviar los eventos de marcación. Usa api/push.php como endpoint y define un secret por reloj.
  2. Pull (experimental todavia en pruebas): Un cron ejecuta tasks/poll.php para consultar relojes con IP accesible.

1) Base de datos

Importa el archivo db.sql en tu MySQL/MariaDB y ajusta includes/config.php.

2) Push HTTP

En el reloj, define la URL: https://tu-dominio.com/biometric/api/push.php y un secret. El reloj debe mandar JSON como:

{
  "device_secret": "SECRETO_DEL_RELOJ",
  "events": [
    {"user_id":"10023","timestamp":"2025-08-14T10:05:02-06:00","type":"CHECK_IN"},
    {"user_id":"10023","timestamp":"2025-08-14T18:01:41-06:00","type":"CHECK_OUT"}
  ]
}

Si tu reloj envía en otro formato (p.ej. ZKTeco push), puedes mandar al mismo endpoint, que intentará normalizar automáticamente si detecta campos comunes.

3) Pull (cron)

Configura cron cada 2-5 minutos:

*/3 * * * * /usr/bin/php /ruta/biometric/tasks/poll.php >> /var/log/biometric_poll.log 2>&1

Edita tasks/poll.php y ajustar driver según el modelo. Pruebas hechas con : DHI-ASI1212F/DHI-ASI1212F-D