Seguro que alguna vez te habrás levantado para ir al trabajo, solo para subirte al coche y encontrarte con un atasco. O habrás querido coger un autobús que, justo por casualidad, no circulaba ese día. ¿Y si en este tipo de situaciones tu alarma se adelantase sola cuando hay un atasco? ¿O si tu móvil te avisara cuando tu transporte público preferido deje de funcionar? Estos son solo unos pocos ejemplos de interconectar sistemas, recoger datos, y actuar en consecuencia. A esta práctica se le denomina automatizar, y en este artículo, te contaremos como cumple un rol vital e invisible en nuestras vidas, y como la aplicamos en Perseus para reducir cargas de trabajo, mejorar procesos, y eliminar errores causados por el factor humano.

Empecemos con un poco de historia. Alrededor de los años 2000, con cada vez más dispositivos capaces de navegar por internet, se habló de la llamada «Web 2.0», una «nueva versión de la Web» que surgió con un principio fundamental: interconectarlo todo. Ideas como luces que cambiasen de color cuando hacía mal tiempo, videojuegos que interactuasen con elementos del mundo real y mucho más ya se barajaba en esa época. Al final resultó ser insostenible, con demasiados objetivos, una infraestructura de red que no estaba preparada, y ninguna manera viable de generar dinero. Aun así, la idea siguió viva, desarrollándose poco a poco hasta resurgir en lo que hoy llamamos «Internet de las Cosas», en inglés «Internet of Things», o más habitualmente, «IoT».

Automatización y Domótica

Pero, ¿qué ha cambiado exactamente para hacer esto posible? La respuesta está, entre otras cosas, en la estandarización. Gracias a protocolos estandarizados como Zigbee®, Z-Wave® o Thread, ahora es posible interconectar todo tipo de sensores y dispositivos, independientemente del fabricante. ¿Apagar el aire acondicionado al abrir una ventana? ¿Apagar las luces al salir de casa? ¿Encender la calefacción al volver del trabajo? Todo esto y más es posible gracias a las posibilidades que ofrecen estos estándares «IoT». En el fondo, cada dispositivo (sensor de temperatura, enchufe inteligente) tiene componentes completamente distintos entre sí. Los estándares mencionados definen una capa de abstracción, una especie de «lenguaje común», que permite leer y enviar información de forma coherente, agnóstica a los fabricantes, y sin necesidad de desarrollar una solución diferente para cada dispositivo o modelo, ya que sería insostenible desde el punto de vista técnico, práctico y económico.

Más allá del Internet de las Cosas, la Web ha sido otro aspecto que se ha estandarizado con el tiempo. REST, un marco común para la interacción con servicios web a través de código, ha permitido interconectar todo tipo de servicios entre sí de una manera fácil y barata de mantener. Gracias a REST, obtener información como el tiempo o el tráfico, publicar de manera automática en redes sociales, y muchas cosas más pueden hacerse a través de código de una manera coherente, documentada y siguiendo unas guías estrictas, utilizando estructuras de datos fácilmente legibles tanto por humanos como por máquinas.

Aplicando Conceptos

Ahora, veamos cómo aplicar estos conceptos de una manera útil y práctica en nuestra rutina diaria. Para ello, nos basaremos en un ejemplo real utilizado en Perseus. Empecemos explicando las fases de automatizar un proceso.

La primera fase de automatizar todo proceso, generalmente la más sencilla, es identificar el problema. En nuestro ejemplo, llegar a la oficina de Perseus en transporte público requiere varios transbordos y tipos de transporte diferente. Si uno de estos servicios falla, cualquier alternativa requeriría salir treinta minutos antes, para llegar a la misma hora. Por ello, queremos hacer una automatización que, en el caso de una incidencia en este medio de transporte, haga lo siguiente: Primero, debe comprobar cada mañana que sea un día laborable, si existen incidencias en el medio de transporte que nos incumbe. Segundo, debe establecer una alarma treinta minutos antes de lo normal, para poder contar con ese margen adicional. Por último, debe reproducir un mensaje en un altavoz inteligente, ofreciendo datos de la incidencia y rutas alternativas, para poder tomar la decisión adecuada.

La segunda fase consiste en buscar y analizar soluciones. En esta fase se elegirán las herramientas con las que se trabajarán, basándose en las fuentes y el formato de datos, los requisitos de la solución, entre otros factores. En nuestro ejemplo, como fuente y formato de datos, el servicio de transporte ofrece una API REST indicando cualquier incidencia en el servicio. Los requisitos son que, en el caso de haber una incidencia o retraso, será necesario leer esta API e interactuar con una amplia gama de dispositivos y sistemas operativos, desde Android para establecer alarmas, hasta altavoces inteligentes para informar de la incidencia. Por este motivo, la herramienta elegida ha sido Home Assistant.

Ahora pasamos a la siguiente y penúltima fase del proceso: la normalización de datos. A veces, puede que las fuentes de datos utilizadas no sigan un estándar claro, estén estructuradas de forma extraña, u otras casuísticas que hagan procesar esta información requiera un trabajo de pre-procesado. A este trabajo se le conoce como normalización de datos. En nuestro ejemplo, cuando ocurra una incidencia en el transporte principal, querremos información sobre los medios de transporte alternativos, como sus incidencias, tiempos de llegada, etc. El único medio de transporte alternativo disponible solo ofrece sus datos en un formato propio, basado en XML, que será necesario normalizar. Para ello, Home Assistant cuenta con una integración para este medio de transporte que se encargará de normalizar los datos, haciendo este trabajo por nosotros.

Por último, tenemos la fase final del proceso: implementar la solución. Una vez probadas las herramientas, asegurándose de su correcto funcionamiento, y comprobando su tolerancia a fallos, se procederá a poner en práctica todo lo desarrollado en las fases anteriores. Con todas las fases completadas, así es como queda la automatización de nuestro ejemplo:

Automatización en Perseus

Ahora alejémonos un poco del mundo de IoT y la domótica, y apliquemos estas mismas lecciones a otras áreas. ¿Alguna vez te has parado a pensar como una gran empresa «retail», con miles de dispositivos diferentes (TPVs, quioscos, etc.) logran mantener protegida su red? Lo más probable es que no, pero evidentemente, no es una tarea fácil. En Perseus lo sabemos de primera mano. Sin embargo, gracias a la aplicación práctica de automatizaciones, propias y de terceros, podemos reducir la complejidad de tareas así, eliminando errores en el proceso y mejorando la eficiencia en la gestión. A través de procesos automatizados, podemos detectar errores humanos de manera proactiva y corregirlos antes de causar un problema, reduciendo cargas de trabajo, costes y plazos, beneficiando tanto a nosotros como al cliente.

En resumen, en un mundo cada vez más global, interconectado y complejo, la automatización de procesos es un elemento crucial para el funcionamiento básico de muchísimas áreas de nuestra vida. Podemos decir que, si el dinero mueve el mundo, la automatización es la combinación de herramientas capaces de mover el dinero.


Ivo Mola

Área de Automatización