Primer servicio de Predesys hecho

He realizado el primer servicio (plugin) para Predesys, instalable de forma opcional si se quiere usar. Es un servicio muy sencillo que simplemente expone quiénes de los usarios cuyas direcciones MAC han sido detectadas son usuarios registrados en el sistema, devolviendo sus nombres. Esto es útil para saber quién se encuentra en alguna sala, despacho, etc.

Este servicio está disponible en la sección Descargar. Se llama People Presence.

Anuncios

2 Responses to Primer servicio de Predesys hecho

  1. Interesante proyecto.

    Lo acabo de instalar para ver qué feeling me da y me asaltan cuestiones:

    * ¿No hay auto-fill de la base de datos predesys-server? Ví el fichero /usr/share/predesys-server/data/predesys-server-data-mysql.sql ¿creo las tablas a mano?

    * ¿Qué debo esperar con los cuatro componentes que se han liberado? Entiendo que tras dejar un rato arrancados el server/radar en mi máquina con bluetooth debería acabar viendo lo capturado en la BBDD ¿me equivoco?

    * Viendo el código de predesys-people-personas veo que es un script que me sacaría esa misma info por pantalla, ¿verdad?

    ¡Saludos!

  2. jajcarmona dice:

    ¡Hola, Félix! Muchas gracias por tu interés. 🙂
    La verdad es que la documentación en PDF que tengo todavía es muy escasa, así que te pido disculpas.

    Lo siguiente que te explico es algo largo, espero no cansarte, jeje. La BD se instala con un comando en consola, justo después de instalar los paquetes.
    Los pasos serían los siguientes:

    0) Tener instalado MySQL con una BD y un usuario/clave que puedan acceder a ella (el sistema está diseñado para ser multi-gestor de BD en el futuro)

    1) Instalar predesys-server
    2) Instalar predesys-server-api

    —-
    Con esto ya tendríamos el servidor instalado, pero faltaría configurarlo:
    —-

    3) Ejecutamos la orden “sudo predesys-server system configure”.
    Esta orden sirve para configurar interactivamente los parámetros de la BD y del servicio web (host, que lo normal es “localhost” y puerto, que puede ser 8000)

    4) Ejecutar la orden “sudo predesys-server system installdb”.
    Con esto se instala la BD donde hayamos especificado mediante la configuración que establecimos en el paso 3. Lo que hace es crear las tablas, pero no la BD en sí (ésta debe existir previamente).

    —-
    Con esto ya tenemos listo el servidor, más adelante se pueden instalar los servicios, como “People Presence”
    Lo que sí hay que hacer es crear al menos 1 usuario de tipo “station”, para que se loguee con él al menos 1 radar:
    —-

    5) Crear un usuario tipo “station” con la orden “sudo predesys-server users add”, y se le especifica, por ejemplo, el ID “station”, la contraseña “station” y el ID de grupo “station” (el ID de grupo no se puede cambiar, es un grupo ya definido).

    6) Instalar predesys-radar.
    Puede hacerse en cualquier máquina (no tiene por qué ser la del servidor) siempre que disponga de un adaptador bluetooth, aunque para probar Predesys lo ideal es hacerlo en la misma máquina.

    7) Una vez instalado predesys-radar, hay que configurarlo.
    Para configurarlo hay que editar su archivo de configuración a mano. El archivo es “/etc/predesys-radar/configuration.xml”. Estos parámetros son para que el radar sepa cómo conectarse al servicio web del servidor. Después de cambiar este archivo hay que reiniciar el radar con “sudo service predesys-radar restart”. Los parámetros son la dirección y puerto del servicio web y el usuario/contraseña para ejecutar un servicio de Predesys que es el que utilizan los radares Predesys y que viene de serie en el Servidor.

    —-
    Con esto, lo que tenemos es lo siguiente:

    * Un Servidor.
    Dispone de un servicio web (en permanente ejecución) que permite ejecutar tareas determinadas (“servicios”). Estas tareas pueden requerir o no un usuario/contraseña registrado en el Servidor.
    El Servidor trae de serie un “servicio” especial que sólo los usuarios de tipo “station” pueden ejecutar. Este servicio es el que registra las direcciones MAC en el Servidor.

    * Un Radar (en permanente ejecución)
    Detecta periodicamente las MAC cercanas y las envía en forma de array a través del servicio web del Servidor, ejecutando el “servicio” “btradar”, que es el servicio especial ese. Las MACs quedarán grabadas en la BD del Servidor.

    Para ver las MACs de forma elegante habría que diseñar un servicio que te las devolviera tal cual. El servicio que he creado (“People Presence”) te las devuelve, pero sólo las que corresponden a usuarios registrados.

    Eso sí, siempre puedes, desde la Shell de Python, importar el modulo “predesys”, y utilizar las funciones que utilizan los servicios para averiguar las MACs grabadas y otras cosas.

    —-

    Opcionalmente
    08) Instalar el servicio predesys-presence-people

    Esto crearía un servicio o tarea (accesible desde el servicio web) sin autentificación (todo el mundo puede ejecutarlo) que devuelve las MACs grabadas relacionadas con usuarios registrados. Para acceder a ellas, simplemente habría que conectarse al servicio web del Servidor (XML-RPC) y llamar a la función “run_service” pasándoles como primer parámetro “peoplepresence” (el ID de servicio) y como segundo un array vacío ([], los “argumentos” del servicio).

    ¡Un saludo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: