Tutorial: Puerta conectada usando The Things Networks y Sofia2

En este tutorial queremos presentar en detalle el caso de ejemplo que contamos en nuestro pasado Meetup de integración de redes LPWA con Sofia2 (enlace).

Para este tutorial usamos los dispositivos cedidos por la comunidad de The Things Network – Madrid (enlace), a la que agradecemos su colaboración con nuestra plataforma.

El escenario que vamos a construir en este tutorial es el siguiente:

TTN

El flujo de información en el escenario sigue este orden:

  1. Se coloca un dispositivo (al que llamaremos nodo a partir de ahora) instalado en una puerta con un sensor de apertura y conectividad LoRaWAN. Este dispositivo permanece dormido en modo bajo consumo hasta que el sensor detecta una apertura de puerta, momento en el cual emite el cambio de estado a través de su radio LoRa.
  2. Un estación base (al que llamaremos gateway a partir de ahora) LoRaWAN en radio recibe esta señal del sensor y transmite la información a través de su conexión a Internet con la infraestructura de red de The Things Network.
  3. La infraestructura de The Things Network ofrece diversas alternativas de integración, que son necesarias ya que simplemente hace de pasarela entre los dispositivos y las aplicaciones o plataformas finales. En este ejemplo, haremos uso de una integración HTTP a través de la consola de The Things Network, que hará un PUSH de la información recibida hacia un endpoint definido en Sofia2.
  4. Una vez el dato es recibido en Sofia2, se puede explotar todo el potencial de la plataforma sobre ese dato. En este ejemplo en concreto representaremos gráficamente el valor de la tensión de batería del equipo, y construiremos una regla utilizando el motor de scripts para alertar al propietario de la puerta de los cambios de estado de la misma usando un canal de e-mail y otro de SMS.

Seguir leyendo “Tutorial: Puerta conectada usando The Things Networks y Sofia2”

Tutorial: Puerta conectada usando The Things Networks y Sofia2

Meetup on Sofia2 LPWA Integrations: SigFox, LoRaWAN & The Things Network

On February 28th, we scheduled one of our technical Meetups, this time on LPWA technologies and how easy is to integrate them on Sofia2 IoT Platform. Please join our Meetup group where we will keep you updated with our future meetup events. You may also find here the slides used during the presentation.

A big thank you also to THECUBE Madrid team for giving us free access and use of their building. They also contributed by composing this really nice video on the event, enjoy it!:

These time our speakers where Jorge Trallero and Mario Briceño from our Sofia2 Team. They highlighted how easy is to integrate data collected from IoT devices with LPWA technologies into Sofia2. 3 integrations scenarios were performed:

  • SigFox Integration
  • Private LoRa Network Integration
  • The Things Network Integration

We also had the luxury of having with us member of the core team of The Things Network Madrid Community, to present us their initiatives and to collaborate in the latter integration scenario.

Seguir leyendo “Meetup on Sofia2 LPWA Integrations: SigFox, LoRaWAN & The Things Network”

Meetup on Sofia2 LPWA Integrations: SigFox, LoRaWAN & The Things Network

Notebooks Procesando y representando datos en un mapa Leaflet con los Notebooks Sofia2

Los Notebooks Sofia2 (basados en el proyecto open-source Apache Zeppelin) permiten a los científicos de datos crear diferentes modelos y algoritmos desde el Control Panel de la plataforma Sofia2. Desde este entorno web los Data Scientists pueden cargar datos a HDFS, procesarlos con Spark, Spark o Python, consultarlos con HIVE, visualizarlos de diferentes formas y además de todo esto manejar las ontologías Sofia2 desde este entorno.

En este ejemplo de uso de los Notebooks vamos a ver cómo traernos un fichero de un sitio externo, procesarlo con Spark y representar los datos procesados en un mapa OpenStreetMap con Leaflet.

Concretamente estamos hablando de un fichero que ofrece el servicio OpenData del gobierno francés (https://www.data.gouv.fr/fr/) y que contiene los datos de las estaciones de recarga eléctrica de Francia

https://www.data.gouv.fr/fr/datasets/fichier-consolide-des-bornes-de-recharge-pour-vehicules-electriques-irve/

El fichero tiene este aspecto:

Comenzaremos por descargar el fichero hacia el directorio home de nuestro usuario:

Lo siguiente es subir este fichero de nuestro directorio local al sistema de ficheros HDFS de nuestro cluster Hadoop

Una vez en HDFS ya puedo manejar los datos con Spark, en este caso para procesar el CSV usaré la librería com.databricks.spark-csv. Para cargarla en el classpath de Spark lo más sencillo es hacer esto:

Y de esta forma tan sencilla puedo convertir el CSV almacenado en HDFS (load(“/examples/IRVE-201510.csv”)) a un DataFrame (df) y de ahí a una tabla persistente (df.write.saveAsTable)

Y una vez tengo la tabla ya puedo consultar los datos de esta de forma muy sencilla:

Además de representarlos en diferentes formatos:

Finalmente haremos la consulta que queremos representar en el mapa:

Tras esto voy a convertir los datos de la consulta a JSON para poder representarlos fácilmente, para esto usaré la librería Gson.

Haré la consulta, mapeando las columnas de los datos obtenidos a los nombres que quiero usar en el JSON:

Los datos tienen esta pinta:

Y ya solo me queda hacer el HTML+JS para pintar mi mapa, en Zeppelin para incrustar un HTML basta con empezar el párrafo con:

Mi HTML tiene este aspecto:

En él podemos ver que estamos usando Thunderforest como Layer (y un apikey que debéis generar en http://www.thunderforest.com/docs/apikeys/ para evitar la marca de agua).

El código que maneja mi JSON con las estaciones es este:

Que genera un botón Show me the map que al pulsar muestra el mapa con un marker para cada estación:

Además de ver la representación en el propio Notebook si en las opciones del párrafo selecciono Link this paragrah:

Esto me genera un URL en la que veo el mapa:

https://sofia2.com/console/notebook/#/notebook/2D1Y4DKY7/paragraph/20160519-175034_779917343?asIframe

y puedo ir pinchando sobre los diferentes markers:

Notebooks Procesando y representando datos en un mapa Leaflet con los Notebooks Sofia2

Nueva guía e IDE de desarrollo de soluciones sobre Plataforma Sofia2

image0172

 

Uno de los objetivos fundacionales de la Plataforma Sofia2 es el de simplificar y agilizar el desarrollo de todo tipo de aplicaciones, desde aplicaciones IoT en las que intervienen Gateways o dispositivos móviles a grandes sistemas Big Data, sin olvidar las aplicaciones web puras de gestión, para las que Sofia2 es un facilitador.

En este ámbito se ha añadido en la sección de Documentación  de la web sofia2.com una nueva guía que explica paso a paso cómo construir aplicaciones web (en la guía basadas en Spring Boot y Angular):

image0172

 

Complementando la guía se ha generado un entorno de desarrollo empaquetado como un ZIP que contiene todas las herramientas necesarias para construir estas soluciones (incluyendo JVM Java, IDE Eclipse, Maven, Apache Tomcat,…)

Nueva guía e IDE de desarrollo de soluciones sobre Plataforma Sofia2

Sofia2 Desktops

T_21

A área de trabalho da plataforma constitui o ponto de acesso de qualquer usuário da plataforma a qualquer um dos aplicativos fornecidos no projeto e a que o usuário tenha acesso.

No nível da plataforma, diferentes desktops podem ser criados para que um usuário possa acessar vários desktops, cada um com diferentes finalidades e aplicativos.

Escritórios são aplicativos da Web que atuam como contêineres para outras aplicações. Um administrador de plataforma controla e configura quais aplicativos são acessíveis a partir de cada mesa, associando-os à área de trabalho do próprio painel de controle da plataforma.

Ao mesmo tempo, cada administrador de aplicativos, dando-o como um projeto na própria plataforma, controlará quais usuários têm acesso ao aplicativo.

Para que cada mesa, realize o controle do acesso aos usuários da plataforma através de uma tela de login e dependendo das permissões que esse usuário tenha em cada um dos aplicativos registrados, terá acesso ou não aos aplicativos registrados como aplicativos de área de trabalho.

Em seguida, explicaremos como criá-los e usá-los.

Seguir leyendo “Sofia2 Desktops”

Sofia2 Desktops

SOFIA2 Desktops

T_21

The desktop of the platform constitutes the access point of any user of the platform to any of the applications provided in the project and to which the user has access.

At the platform level, different desktops can be created so that a user can access several desktops, each with different purposes and applications.

Desks are Web applications that act as containers for other applications. A platform administrator controls and configures which applications are accessible from each desk, associating them to the desktop from the platform’s own control panel.

At the same time each application administrator, giving it as a project on the platform itself, will control which users have access to the application.

So that each desk, performs the control of access to users of the platform through a login screen, and depending on the permissions that that user has on each of the applications registered, will have access or not to the registered applications as desktop applications.

Next, we will explain how to create and use them.

Seguir leyendo “SOFIA2 Desktops”

SOFIA2 Desktops

Escritorios SOFIA2

T_21

El escritorio de la plataforma constituye el punto de acceso de cualquier usuario de la plataforma a cualquiera de las aplicaciones provistas en el proyecto y a las que el usuario tuviera acceso.

A nivel de plataforma se pueden crear diferentes escritorios de manera que un usuario pueda tener acceso a varios escritorios, cada uno con propósitos y aplicaciones distintos.

Los escritorios son aplicaciones Web que actúan como contenedores de otras aplicaciones. Un administrador de la plataforma controla y configura qué aplicaciones son accesibles desde cada escritorio, asociándolas al escritorio desde el propio panel de control de la plataforma.

A su vez cada administrador de aplicación, dándola de alta como proyecto en la propia plataforma, controlará qué usuarios tienen acceso a la aplicación.

De manera que cada escritorio, realiza el control de acceso a los usuarios de la plataforma mediante una pantalla de login, y en función de los permisos de que disponga dicho usuario sobre cada una de las aplicaciones dadas de alta, tendrá acceso o no a las aplicaciones registradas como aplicaciones de escritorio.

A continuación explicaremos como crearlos y utilizarlos.

Seguir leyendo “Escritorios SOFIA2”

Escritorios SOFIA2