Conexión con aplicaciones

Vista general

Ingrid puede conectarse a aplicaciones de terceros mediante procedimientos Javascript personalizados con protocolos REST y POST. También puede permitir el acceso mediante websockets de otras aplicaciones con el API publicada.

De forma aún más inmediata, tiene conectividad con 2 aplicaciones web que permiten el almacenamiento offline de avisos y tareas, para dispositivos móviles en proyectos en los que hay que trabajar con dispositivos móviles sin cobertura.

También tiene un interface con telegram para utilizarlo como cliente de mensajería y de envío de ubicaciones y datos en tiempo real.

 

Además de la aplicación completa como servicio web Ingrid (en i.ingra.es), existen diversas aplicaciones para dispositivos móviles (apps) enfocadas principalmente a su uso en S.O. Android, que permiten sin conexión a internet: enviar avisos, completar partes de trabajo, recoger incidencias de forma masiva por parte de los ciudadanos...

ingridAvisos - para recoger avisos, incidencias, partes correctivos y enviarlos a BD. Acceso a la app

ingridTareas - para descargar tareas preventivas/programadas de la BD, completar los partes y devolverlos a la base. Incluye representación geográfica de ubicación de las tareas. Acceso a la app

Consideraciones para el administrador

Las BBDD que utilizan una o varias apps conectadas deben cumplir unos requisitos bastante sencillos:

  • En el caso de la lógica de ingridTareas, el usuario que se conecte tiene que tener un Grupo de trabajo, ya que ese es el filtro para enviar a la app las tareas pendientes: las asignadas al grupo del usuario que las solicita.
  • En el propio script de la app se especifican los posibles campos adiciones y cualquier otra lógica que se tenga que definir para recoger datos en la app (establecer la clase que se va a usar, los campos que vamos a tomar en campo, el tamaño máximo de la media resolución que se va a generar al subir imágenes, etc.)
  • La clase a utilizar se establece en el campo app. Los campos a tomar son los de la propia clase en la BD a la que nos conectamos. OJO! Al modificar campos en el modelo de datos de la base, el cliente sólo se actualiza cada vez que se arranca el servidor Ingrid, o cada 5 minutos.
  • Los campos de tipo referencia a conceptos, se convierten en clasificaciones al enviar a la app y otra vez en referencias a la vuelta desde la app, ya que no podemos tener todo tipo de conceptos relacionados en al app offline.
  • Para personalizar el logo de la app para varias resoluciones, el nombre y color de fondo, hay que modificarlos en el archivo manifest.json de cada app.

Para utilizar otro cluster de BBDD (servidor Ingrid y conjunto de bases mongoDb), hay que especificarlo en la página de inicio (index.htm), sino, el nombre de la base siempre se refiere al cluster de producción i.ingra.es. Se puede definir así:

window.onload= function () {
  appInicia({
   servidor: 'https://i.ingra.es',
   basedatos:'test-movil',
   usuario:'anonimo',
   clave:'anonimo'}) };

 

La tecnología utilizada como BD local es el acceso a través de la capa LocalForage que facilita la conexión con el API de bajo nivel con almacenamiento en cliente de datos estructurados IndexedDb. Esto permite tener una BD local persistente en el navegador de cada dispositivo con un sistema de tablas indizadas NO relacional de acceso a datos.

App offline ingridAvisos

Aplicación para dispositivos móviles que permite gestionar incidencias y avisos, enviadas a la BD de gestión Ingrid a que se conecta, habitualmente creando tareas no programadas o correctivas. Permite rellenar todos los datos en la tableta o teléfono y en cualquier momento en que se tenga cobertura de datos, enviarlos a la base. Mientras se tiene cobertura, se puede: conectar a la BD, enviando a medida que se cierran, ver los fondos ortofotográficos de mapas, buscar la dirección de un punto del mapa...

Clic para ampliar

Los administradores, tienen información avanzada del uso y montaje de apps en: Apps offline para conectar con Ingrid

Configuración inicial

A febrero-2023 la aplicación es compatible con navegador Google Chrome (Android y PC).

Cada grupo de trabajo, tendrá un dispositivo móvil con conexión a internet. Desde el navegador se descargar la aplicación cliente que se encuentra en: https://ingridAvisos.ingra.es, y sigue los siguientes pasos:
1. Pulsar el botón de Configuración

2. Poner el nombre de BD con la que trabaja, su nombre de usuario y contraseña (siempre se puede probar la BD de ejemplo test-movil con usuario y contraseña= anonimo). ATENCIÓN a que el servidor de defecto es el servidor principal: i4.ingra.es, si su base está en otro servidor hay que poner el camino completo del host, como por ejemplo: i5.ingra.es/elsamex-estacion

3. En el navegador, pulsando el menú contextual > Añadir a pantalla de inicio, se instala como aplicación en el escritorio del dispositivo móvil.
4. Teniendo conexión (el icono de la esquina superior derecha no está en modo avión , sino con datos o wifi  ), pulsa el botón Actualiza datos , para descargar la última versión de la aplicación y los datos de la base.

Este icono no cambia al cambiar el estado de conectividad del dispositivo móvil (por ejemplo al perder cobertura), ni tampoco cambia el estado del móvil, sólo controla si queremos cortar la conectividad o muestra si la que tenemos es a través de wifi o datos.

La aplicación tiene dos modos de funcionamiento, que podemos elegir aquí con la opción Modo secuencial al crear: Si está activa, se irán pidiendo los datos al crear una incidencia paso a paso, primero la tipología, luego la ubicación, fotos, y campos particulares de avisos.

Para la lectura del contenido de códigos de barras y QR, debemos tener instalada la aplicación estándar de lectura de códigos Barcode Scanner (de Zxing). Se puede obtener sin coste en la tienda Google Play Store.

Para volver a la lista de avisos o crear uno nuevo, pulsamos Ventana principal .

Utilización

En Mis incidencias vemos la lista de las creadas en uno de estos 3 estados: abiertas, y en color gris, cerradas y/o enviadas a BD (las cerradas que tienen el icono ). Las tareas abiertas se pueden eliminar de la lista. También se pueden borrar de la memoria del móvil las que ya están enviadas.

 

Al crear un nuevo aviso con el 2º botón, podemos dictar un texto en los campos multilínea, se captura automáticamente la posición GPS actual, se busca la dirección de esa posición en el callejero de Google Maps, rotulándolo en el campo Dirección, donde se puede modificar manualmente, y desde el menú contextual tenemos la posibilidad de:

- incorporar al aviso una o varias fotografía hechas directamente con la cámara

- anexar uno o varios archivos de cualquier tipo, obtenidos en la galería del dispositivo u otra ubicación seleccionable

· si se tiene instalada la aplicación de lectura de códigos de barras Zxing, escanear un código de barras EAN o código QR que pudieran tener los elementos de inventario y nos haga falta guardar con la tarea.

- releer la ubicación GPS y/o la dirección correspondiente. La dirección siempre es editable para poder corregirla manualmente

- cerrar el aviso para que se pueda enviar en cuanto haya conexión

App offline ingridTareas

Aplicación para dispositivos móviles que permite gestionar las tareas programadas diarias de un grupo de trabajo, descargando de la BD a que se conecta, las tareas preventivas (o programadas), habitualmente las pendientes hasta el día de hoy, rellenarlas en la tableta o teléfono y en cualquier momento en que se tenga cobertura de datos, enviar a la base los partes de trabajo cerrados. Mientras se tiene cobertura, se puede conectar a la BD, ver los fondos ortofotográficos de mapas, buscar la dirección de un punto del mapa...

Clic para ampliar  Clic para ampliar

Los administradores, tienen información avanzada del uso y montaje de apps en: Apps offline para conectar con Ingrid

Configuración inicial

A mayo-2022 la aplicación es compatible con navegador Google Chrome (Android y PC).

Cada grupo de trabajo, tendrá un dispositivo móvil con conexión a internet. Desde el navegador se descargar la aplicación cliente que se encuentra en: https://ingridTareas.ingra.es, y sigue los siguientes pasos:
1. Pulsar el botón de Configuración

2. Poner el nombre de BD con la que trabaja, su nombre de usuario y contraseña (siempre se puede probar la BD de demo test-movil con usuario y contraseña= anonimo). ATENCIÓN a que el servidor de defecto es el servidor principal: i4.ingra.es, si su base está en otro servidor hay que poner el camino completo del host, como por ejemplo: i5.ingra.es/elsamex-estacion

3. En el navegador, pulsando el menú contextual > Añadir a pantalla de inicio, se instala como aplicación en el escritorio del dispositivo móvil.
4. Teniendo conexión (el icono de la esquina superior derecha no está en modo avión , sino con datos o wifi  ), pulsa el botón Actualiza datos , para descargar la última versión de la aplicación y los datos de la base que corresponden como tareas pendientes.

Este icono no cambia al cambiar el estado de conectividad del dispositivo móvil (por ejemplo al perder cobertura), ni tampoco cambia el estado del móvil, sólo controla si queremos cortar la conectividad o muestra si la tenemos si es a través de wifi o datos.

Para volver a la lista o mapas de tareas a realizar, pulsamosVentana principal.

ATENCIÓN a que la lista de tareas es una búsqueda de las preventivas y correctivas, filtradas por: que tengan fecha de programación y no de fin de trabajos ni de cierre (es decir , que están pendientes), que sean del grupo de trabajo al que pertenece el usuario que se ha validado y hace la petición, y luego se aplican las variables definidas en la página del entrada del cliente index.htm:

conPeriodoDias: por defecto, no excluye ninguna. Permite especificar un nº de días desde la fecha actual del sistema hasta la que mostrar tareas pendientes, para que no salgan las de los meses o años venideros.

  conFecfin: por defecto, la fecha de cierre y envío es feccer, pero si se pone esta variable =true, se enviará poniendo la fecha de finalización de trabajos fecfin

Utilización

Pulsando Ventana principal , vemos los 5 botones de menú, incluido el que lleva esta página de ayuda.

En el menú principal, se puede ir directamente a la tarea que está más cercana a la ubicación del dispositivo con el botón .

Con Mi mapa de tareas , vemos la ubicación de todas las que tengan un bien georreferenciado, y haciendo clic en una, se abre su ficha.

Pulsando Mi lista de Tareas , vemos la lista (ordenada por fecha desde la más antigua) de todas las que tenemos pendientes, que se han descargado de la BD para nuestro grupo hoy. Las tareas, en la columna Info muestran iconos que indican la información que contienen:

  Respectivamente: que está cerrada, con consumos de personal, maquinaria, materiales, con posición GPS y con dirección buscada a partir de la posición GPS. Si ya está enviada a BD, aparece un icono .

Pinchando el enlace de cada línea de tarea, podemos rellenar las medidas o comprobaciones que tiene la operación a realizar en cada tarea. Para rellenar las medidas con los valores predeterminados, podemos pulsar Pon medidas de defecto .  Los campos de texto se pueden introducir dictando por voz, con un gran porcentaje de acierto.

También completaremos el consumo de recursos (horas de personal, materiales, etc.) en los campos que trae predeterminados la orden de trabajo:

Los campos requeridos (indicados con una R en rojo a la derecha) no impiden que se cierre la Tarea sin introducir un valor, sino que marcan ese campos como una incidencia al llegar a BD.

En la parte inferior, se muestra una persiana con la ubicación geográfica del bien a mantener en la tarea si en BD está georreferenciado, y nuestra ubicación actual marcada con:

Además, con el menú contextual , podemos anexar información a la tarea:
· posición geográfica actual, si se tiene cobertura GPS o al menos de datos/wifi, que la dará aproximada
· dirección postal buscada en Google con la posición geográfica si es accesible.
· varias fotos/videos hechos directamente con la cámara del dispositivo o archivos de cualquier tipo seleccionados desde el almacenamiento del mismo.
· si se tiene instalada la aplicación de lectura de códigos de barras Zxing, contenido de códigos de barras EAN o códigos QR que pudieran tener los elementos de inventario y nos haga falta guardar con la tarea.

Al terminar de completar el parte pulsamos Cierra tarea actual , con lo que se envía directamente a BD si hay conexión, o queda en ese estado hasta que la activemos (o haya cobertura), y se envíe automáticamente. Al cerrar siempre se añade a la tarea la ubicación GPS en coordenadas geográficas y la dirección encontrada en ese punto en Google maps.

Comunicación con Telegram

Mediante conexión con esta plataforma de mensajería, y simplemente teniendo una cuenta de ese servicio, se tiene la posibilidad, de:

· Hacer seguimiento en tiempo real de dispositivos móviles durante la jornada laboral.

· Recibir información desde esos dispositivos (textos, fotos, vídeos y ubicaciones) relacionadas con ese dispositivo en BD (incidencias, resolución de avisos...).

· Enviar mensajes a los dispositivos desde la aplicación, por ejemplo, al ocurrir eventos, de forma tan eficaz como los SMS, pero sin coste, y más eficaz que el e-mail.

· Realizar consultas a BD Ingrid con resultado en el propio cliente de Telegram o en una página html con contenido más extenso y/o rico en formato.

· Que las BBDD publiquen contenido (público o privado) mediante canales de difusión de sólo lectura y con urls estables, para múltiples usuarios. 

 

Para conectar un dispositivo móvil con una BD Ingrid necesitamos:

1. Tener en el dispositivo instalada la app Telegram y registrado un usuario que puede valernos para varias BBDD (aunque no simultáneamente).

2. Crear en la BD que nos interese, un concepto de clase persona (per), y en la ficha de persona, en el campo Telegram, el nombre de usuario Telegram o simplemente el teléfono, y pulsar el botón Registro con telegram a derecha de ese campo . Con esto queda registrado en el servidor Ingrid. El botón a la derecha de este ¿Cómo está registrado actualmente?, muestra las variables con los datos de registro. El que más nos interesa es en qué BD estamos registrados, ya que, pulsando el botón de registro en otra base con la que trabajemos, los datos desde el dispositivo móvil hacia Ingrid, irán a esa base.

3. Buscar en la app del móvil el usuario name_ingrid_bot (ojo a que sea exacto con mayúsculas y minúsculas ya que los hay similares, también se identifica por el logotipo ) y abrir una conversación con él. Este usuario representa el webservice de Ingrid que llevará los datos a nuestra BD.

4. Pulsar INICIAR en la primera conversación, el servidor Ingrid recibe el ID interno de telegram (que no es público) y ya es posible también RECIBIR en el móvil información desde la base: hacer un chat, enviarle imágenes, órdenes de trabajo y un sinfín de funcionalidades.

El dispositivo móvil ya puede ENVIAR información (ubicación en tiempo real con registro de coordenadas, fotos y archivos, texto, mensajes de voz...).

 

Operaciones posibles

A. Que un terminal envíe la ubicación para seguimiento del dispositivo en tiempo real y también como medio de fichar al inicio y final de jornada (obligación del RD 08/2019). En el móvil basta con enviar al bot al comienzo de la jornada: Adjuntar (icono del clip) > Ubicación > Ubicación en tiempo real > durante 8h.

B. Enviar texto, audio, foto y otros archivos, ubicación, vídeo... desde un terminal a su BD. Basta con enviarlo comunicando con el bot, como si fuese otro usuario de Telegram. Con cada envío se recibe un mensaje de ok por parte de Ingrid, si al comunicación ha tenido éxito.

C. Enviar un mensaje puntual de la BD a un terminal. Esto puede ser una operación manual o automática lanzada desde la BD mediante un evento (la recepción de un aviso, por ejemplo).

 

NOTA para super-administradores del cluster: El servidor de producción utiliza el bot de producción (ingrid_bot) y el de desarrollo (ingra_bot). Sólo hay que registrarlos una vez mediante el procedimiento de ingrid-admin >  pro.telegram > setWebhook. Luego, en cada BD que se den de alta personas, el servidor los va asociando a la base en el archivo \abc.code\abc.node\pm2\telegram_personas.json, y al iniciar comunicación desde el móvil, se registra su ID de telegram no público, con lo que puede comenzar la comunicación bidireccional.

Webservices

Hay un mecanismo de publicación de servicios que cualquier aplicación externa puede utilizar haciendo llamadas GET, simplemente con una url al servidor, indicando la BD a la que se quiere acceder y, dependiendo del uso, la validación con usuario y clave o bien se accederá con un usuario invitado/invitado para el que podemos definir su perfil de restricciones en nuestra base (normalmente de consulta, claro).

Las llamadas son del estilo:

https://i.ingra.es/webservice/procesa?{basedatos:"test-informes", service:"creacon", val:"TE.PRU-0052"}

Si no se especifica el parámetro vals, con la basedatos, usuario, clave... se toman todos los valores del objeto pasado como parámetro (meta) y se ponen en el vals. Por tanto, esta sintaxis es equivalente y más deseable:

https://i.ingra.es/webservice/procesa?{basedatos:"test-informes", vals:{service:"creacon", val:"TE.PRU-0055"}}

Ejemplos de otros servicios:

https://i.ingra.es/webservice/leeConceptos?{"find":"cla=car tex!!","data":"tex":1},"usuario":"ingrid","clave":"ingrid","basedatos":"test-tareas"} Devuelve un JSON con una lista docl que contiene los objetos que cumplen con la búsqueda realizada. Requiere usuario y clave.

https://i.ingra.es/webservice/procesa?{"basedatos":"fcoam-legados","callback":"jsonp","val":"jeronimos"} mismo caso que el primero, con los parámetros juntos sin pasarse en el objeto 'vals', es una búsqueda anónima con un usuario restringido 'invitado'.