Está en la página 1de 18

Actividades

Laboratorio: Configuración de una plataforma IoT


con FIWARE

▸ Objetivo de la actividad: con esta actividad conocerás los módulos y las


posibilidades de reutilización y configuración de una plataforma IoT en un caso
real.

▸ Descripción de la actividad: despliega una plataforma IoT basada en FIWARE


empleando Docker. Para ello, deberás seguir los siguientes pasos:
• Instala Docker en tu ordenador siguiendo las instrucciones:
ú Para Linux: https://docs.docker.com/install/
ú Para Mac: https://docs.docker.com/docker-for-mac/
ú Para Windows Home (también válido para Windows Pro, Enterprise o
Education): no es posible instalar Docker, por lo que usaremos una versión
virtualizada (Docker Toolbox). Descarga la última versión en GitHub:
https://github.com/docker/toolbox/releases
Y sigue los pasos descritos en:
https://docs.docker.com/toolbox/toolbox_install_windows/
O sigue la explicación en este vídeo:
https://youtu.be/8NMjsmLM6kg
A la hora de realizar la práctica, cada vez que el guión te pida ejecutar un
comando que contenga localhost, deberás sustituir este término por la
dirección IP 192.168.99.100 que aparecerá al iniciar Docker Toolbox.
ú Opcionalmente, para Windows Pro, Enterprise o Education: es possible
instalar Docker Desktop https://docs.docker.com/docker-for-windows/
Sin embargo, para poder emplear los comandos de la práctica como si
estuviéramos en Linux/Mac es necesario instalar cygwin (incluyendo los
paquetes curl, curl-debuginfo, libcurl-devel, libcurl-doc, libcurl4, php-curl):
www.cygwin.com
• Sigue el guion de la práctica, aportado por el profesor en el laboratorio
asociado a esta actividad, en el que se desarrolla una Solución Inteligente
empleando dispositivos IoT dummy.
• Elabora un informe en Word que incluya los comandos utilizados y resultados
© Universidad Internacional de La Rioja (UNIR)

obtenidos (o capturas de pantalla) donde se expliquen cada uno de los pasos


realizados.
▸ Criterios de evaluación: se valorará que el alumno haya sido capaz de ejecutar
todo el tutorial correctamente y la explicación aportada a cada uno de los pasos
realizados.
▸ Extensión máxima de la actividad: 4 páginas (Arial 11, interlineado 1,5).

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


1
Tema 3. Actividades
Guión del laboratorio

Primeros pasos ........................................................................................................... 2


Arquitectura ............................................................................................................ 2
Pasos a seguir.......................................................................................................... 3
Manejando sensores IIoT ............................................................................................ 6
Pasos a seguir.......................................................................................................... 6
Comunicando con un actuador (southbound traffic) ............................................. 6
Monitorizando un sensor (northbound traffic) ...................................................... 7
Manejando un agente IoT ........................................................................................... 9
Arquitectura ............................................................................................................ 9
Pasos a seguir........................................................................................................ 11
Analizando datos históricos ...................................................................................... 16
Pasos a seguir........................................................................................................ 16

Primeros pasos

Arquitectura

La primera aplicación de demostración solo utilizará un componente FIWARE: Orion


Context Broker (con los datos de contexto adecuados que fluyen a través de él).
Actualmente, Orion Context Broker se basa en la tecnología de código abierto
MongoDB para mantener la persistencia de los datos de contexto que posee. Por lo
tanto, la arquitectura constará de dos elementos:
▸ Orion Context Broker, que recibirá solicitudes utilizando NGSI.
▸ La base de datos MongoDB subyacente, utilizado por Orion Context Broker para
almacenar información de datos de contexto, como entidades de datos,
suscripciones y registros
Dado que todas las interacciones entre los dos elementos son iniciadas por
solicitudes HTTP, las entidades pueden ser almacenadas en contenedores y
ejecutarse desde puertos expuestos.
© Universidad Internacional de La Rioja (UNIR)

Figura 1. Arquitectura de la primera aplicación “Powered by FIWARE”. Fuente:


https://fiware.github.io/tutorials.Getting-Started/img/architecture.png

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


2
Tema 3. Actividades
Pasos a seguir

Tras instalar Docker en tu ordenador, descarga el siguiente fichero y descomprímelo


en una carpeta de tu ordenador: https://github.com/FIWARE/tutorials.Getting-
Started/archive/master.zip

Abre un terminal, y accede a la carpeta descomprimida e inicializa los servicios


necesarios para la ejecución del ejemplo:

> cd tutorials.Getting-Started-master
> docker-compose -p fiware up -d

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados.

Vamos a realizar una petición HTTP para comprobar que el Orion Context Broker se
está ejecutando:

> curl -X GET 'http://localhost:1026/version'

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados.

FIWARE es una plataforma que administra la información de contexto, por lo que


vamos a agregar algunos datos de contexto al sistema mediante la creación de dos
nuevas entidades. En nuestro ejemplo, crearemos fábricas (Store) en Salamanca y le
daremos valor a sus atributos mediante peticiones HTTP, aunque una solución de IIoT
el Orion Context Broker podría obtener directamente los datos de los sensores.

Cualquier entidad debe tener los atributos id y type, los atributos adicionales son
opcionales y dependerán del sistema que se describe. Cada atributo adicional
también debe tener un tipo definido (type) y un atributo value.

Utiliza tus propios nombres (name) para las fábricas creadas, así como las direcciones
utilizadas (streeAddress, adressRegion, addressLocality…).

> curl -iX POST 'http://localhost:1026/v2/entities' -H 'Content-Type:


application/json' -d '
{
"id": "urn:ngsi-ld:Store:001",
"type": "Store",
© Universidad Internacional de La Rioja (UNIR)

"address": {
"type": "PostalAddress",
"value": {
"streetAddress": "Zamora 65",
"addressRegion": "Salamanca",
"addressLocality": "Salamanca",
"postalCode": "37002"
}
},
"location": {
"type": "geo:json",

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


3
Tema 3. Actividades
"value": {
"type": "Point",
"coordinates": [40.9688516, -5.6659754]
}
},
"name": {
"type": "Text",
"value": "Smart Factory"
}
}'

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados.

Si creamos nuevas entidades del mismo tipo, estas tendrán que tener un id único:

> curl -iX POST 'http://localhost:1026/v2/entities' -H 'Content-Type:


application/json' -d '
{
"id": "urn:ngsi-ld:Store:002",
"type": "Store",
"address": {
"type": "PostalAddress",
"value": {
"streetAddress": "Plaza Mayor 10",
"addressRegion": "Salamanca",
"addressLocality": "Salamanca",
"postalCode": "37002"
}
},
"location": {
"type": "geo:json",
"value": {
"type": "Point",
"coordinates": [40.9648576, -5.6645903]
}
},
"name": {
"type": "Text",
"value": "Final Product Factory"
}
}'

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados. Recuerda emplear tus propios valores para el nombre de la
fábrica, así como de la dirección en la que se encuentra.

Cada entidad de datos dentro de su contexto puede variar de acuerdo con el caso de
uso, pero se debe mantener una estructura común dentro de cada entidad para
facilitar la reutilización. El siguiente enlace provee pautas del modelo de datos de
FIWARE: https://fiware-datamodels.readthedocs.io/en/latest/guidelines/index.html
© Universidad Internacional de La Rioja (UNIR)

Podemos obtener los datos de una entidad a partir de su id:

> curl -G -X GET 'http://localhost:1026/v2/entities/urn:ngsi-ld:Store:001' -


d 'options=keyValues'

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados.

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


4
Tema 3. Actividades
También podemos obtener los datos de una entidad a partir de su type:

> curl -G -X GET \


'http://localhost:1026/v2/entities' \
-d 'type=Store' \
-d 'options=keyValues'

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados.

Finalmente, podemos filtrar datos de contexto comparando los valores de un


atributo (fíjate en el valor asignado a addressLocality para filtrar):

> curl -G -X GET \


'http://localhost:1026/v2/entities' \
-d 'type=Store' \
-d 'q=address.addressLocality==Salamanca' \
-d 'options=keyValues'

Guarda la salida devuelta y pégala en el informe que has de entregar junto con los
comandos empleados.

Detén todos los servicios iniciados cuando termines esta parte:


> ./services stop
© Universidad Internacional de La Rioja (UNIR)

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


5
Tema 3. Actividades
Manejando sensores IIoT

En este apartado veremos cómo manejar sensores IIoT utilizando el protocolo


Ultralight 2.0. Vamos a utilizar sensores IIoT dummy para ver su funcionamiento.

Pasos a seguir

Descarga el siguiente fichero y descomprímelo en una carpeta de tu ordenador:


https://github.com/FIWARE/tutorials.IoT-Sensors/archive/master.zip

Abre un terminal, y accede a la carpeta descomprimida e inicializa los servicios


necesarios para la ejecución del ejemplo:

> cd tutorials.IoT-Sensors-master
> ./services create
> ./services start

Podemos ver los sensores IIoT creados en el navegador a través de la siguiente


dirección: http://localhost:3000/device/monitor

Pega una captura de la página de monitorización de dispositivos en el informe que has


de entregar.

Comunicando con un actuador (southbound traffic)

Como actuador utilizaremos una alarma (bell001). La alarma está escuchando


comandos en el endpoint /iot/bell001

Abre otra ventana del terminal y ejecuta el siguiente comando, en el navegador


veremos cambiar el estado de la alarma:

> curl -iX POST --url 'http://localhost:3001/iot/bell001' --data urn:ngsi-


ld:Bell:001@ring

Como resultado veremos algo parecido a la siguiente figura:


© Universidad Internacional de La Rioja (UNIR)

Figura 2. Estado del actuador dummy. Fuente: https://fiware.github.io/tutorials.IoT-Sensors/img/bell-ring.gif

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


6
Tema 3. Actividades
Guarda la salida devuelta en el terminal y pégala en el informe que has de entregar junto
con los comandos empleados.

Igualmente, podemos encender y apagar la lámpara (lamp001). Una vez encendida,


la lámpara irá bajando su intensidad mientras no detecte ningún movimiento (sensor
de movimiento motion001).

Modifica el último comando utilizado para encender (@on) y para apagar (@off) la
lámpara (lamp001), e incluye en el informe ambos comandos, así como el resultado
mostrado en el terminal, y una captura del navegador mostrando la página de
monitorización de dispositivos tanto después de encender la lámpara como después de
volverla a apagar.

También podemos desbloquear (@unlock), abrir (@open), cerrar (@close) y bloquear


(@lock) la puerta (door001).

Incluye en el informe los comandos utilizados para desbloquear, abrir, cerrar y bloquear
la puerta, así como una captura del navegador y el resultado mostrado en el terminal.

Monitorizando un sensor (northbound traffic)

El sensor de movimiento incluido en la lámpara no puede reaccionar a comandos. Sin


embargo, cuando la puerta se abre, este sensor registra movimiento, por lo que
podemos ver cómo cambia su valor en el navegador:
© Universidad Internacional de La Rioja (UNIR)

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


7
Tema 3. Actividades
Figura 3. Estado del sensor dummy. Fuente: https://fiware.github.io/tutorials.IoT-Sensors/img/door-open.gif

Si además dejamos encendida la lámpara, aumentará su intensidad cada vez que


abramos la puerta.

Incluye en el informe los comandos utilizados para encender la lámpara y, a


continuación, abrir la puerta, y pégalos en el informe, así como una captura del
navegador y el resultado mostrado en el terminal.

Pulsa Ctrl+C en el terminal en el que iniciaste los servicios, y detén todos los servicios
iniciados cuando termines esta parte:

> ./services stop


© Universidad Internacional de La Rioja (UNIR)

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


8
Tema 3. Actividades
Manejando un agente IoT

Un agente de IoT es un componente que permite que un grupo de dispositivos envíen


sus datos y se gestionen desde el Context Broker utilizando los protocolos nativos de
los dispositivos. Orion Context Broker utiliza exclusivamente solicitudes NGSI para
todas sus interacciones. Cada agente de IoT proporciona una interfaz North Port NGSI
que se utiliza para las interacciones con el Context Broker, y todas las demás
interacciones debajo de este puerto se producen utilizando el protocolo nativo de los
dispositivos conectados.

Existen agentes IoT para muchos protocolos de comunicación IoT:


▸ IoTAgent-JSON: un puente entre la mensajería HTTP/MQTT (con payload JSON) y
NGSI.
▸ IoTAgent-LWM2M: un puente entre el protocolo Lightweight M2M y NGSI.
▸ IoTAgent-UL: un puente entre la mensajería HTTP/MQTT (con payload
UltraLight2.0) y NGSI.
▸ IoTagent-LoRaWAN: un puente entre el protocolo LoRaWAN y NGSI.

Al igual que en la sección anterior, en este apartado crearemos una serie de


dispositivos dummy IIoT:

Arquitectura

La siguiente figura muestra un ejemplo de arquitectura IioT y los componentes que


utilizamos en este ejemplo:
© Universidad Internacional de La Rioja (UNIR)

Figura 4. Arquitectura del Agente IoT. Fuente: https://fiware.github.io/tutorials.IoT-


Agent/img/architecture.png

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


9
Tema 3. Actividades
▸ Dos Generic Enablers:
• El Orion Context Broker recibirá solicitudes utilizando NGSI.
• El IoTAgent-UL recibirá solicitudes southbound utilizando NGSI y las convertirá
en comandos de UltraLight 2.0 para los dispositivos
▸ La base de datos MongoDB subyacente:
• La utiliza el Orion Context Broker para almacenar información de contexto,
como entidades de datos, suscripciones y registros.
• La utiliza el Agente IoT para almacenar información del dispositivo, como URL
y claves del dispositivo.
▸ Tres proveedores de contexto:
• El Context Provider NGSI Proxy no lo usaremos, pero haría lo siguiente:
ú Recibir solicitudes utilizando NGSI.
ú Realizar solicitudes a fuentes de datos disponibles públicamente utilizando
su propia API en un formato propietario.
ú Devolver el contexto al Orion Context Broker en formato NGSI.
• El Stock Management Front-End tampoco lo usaremos, pero haría lo siguiente:
ú Mostrar información de la fábrica.
ú Mostrar qué productos terminados se tienen en stock en la fábrica.
ú Permitir a los clientes "comprar" productos y reducir el recuento de
existencias.
• Un servidor web que actúa como un conjunto de dispositivos de IoT dummy
que utilizan el protocolo UltraLight 2.0 que se ejecuta a través de HTTP.
La siguiente figura muestra la secuencia seguida, por ejemplo, cuando un sensor de
movimiento realiza una medición (tráfico northbound):
© Universidad Internacional de La Rioja (UNIR)

Figura 5. Secuencia del tráfico northbound. Fuente: https://fiware.github.io/tutorials.IoT-


Agent/img/measurement-swimlane.png

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


10
Tema 3. Actividades
La siguiente figura muestra la secuencia seguida, por ejemplo, para encender una
lámpara (tráfico southbound):

Figura 6. Secuencia del tráfico southbound. Fuente: https://fiware.github.io/tutorials.IoT-


Agent/img/command-swimlane.png

Pasos a seguir

Descarga el siguiente fichero y descomprímelo en una carpeta de tu ordenador:


https://github.com/FIWARE/tutorials.IoT-Agent/archive/master.zip

Abre un terminal, y accede a la carpeta descomprimida e inicializa los servicios


necesarios para la ejecución del ejemplo:

> cd tutorials.IoT-Agent-master
> ./services create
> ./services start

Una vez iniciados los servicios, el estado de los sensores dummy puede verse en la
© Universidad Internacional de La Rioja (UNIR)

siguiente URL: http://localhost:3000/device/monitor

Comprobamos que el Agente IoT está funcionando:

> curl -X GET 'http://localhost:4041/iot/about'

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


11
Tema 3. Actividades
Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

El Agente IoT actúa de middleware entre el Orion Context Broker y los dispositivos
IIoT. Para poder conectar dispositivos, en primer lugar, debemos crear un grupo
(Service Group). Mediante el siguiente comando le informamos al Agente IoT que el
endpoint /iot/d será utilizado para que los dispositivos se autentiquen incluyendo el
token 4jggokgpepnvsb2uv4s40d59ov:

> curl -iX POST \


'http://localhost:4041/iot/services' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"services": [
{
"apikey": "4jggokgpepnvsb2uv4s40d59ov",
"cbroker": "http://orion:1026",
"entity_type": "Thing",
"resource": "/iot/d"
}
]
}'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

A continuación, aprovisionamos un sensor de movimiento dummy:

> curl -iX POST \


'http://localhost:4041/iot/devices' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"devices": [
{
"device_id": "motion001",
"entity_name": "urn:ngsi-ld:Motion:001",
"entity_type": "Motion",
"timezone": "Europe/Berlin",
"attributes": [
{ "object_id": "c", "name": "count", "type": "Integer" }
],
"static_attributes": [
{ "name":"refStore", "type": "Relationship", "value": "urn:ngsi-
ld:Store:001"}
]
}
]
© Universidad Internacional de La Rioja (UNIR)

}
'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

Una vez que tenemos el sensor, simulamos una medición del sensor de movimiento:

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


12
Tema 3. Actividades
> curl -iX POST \
'http://localhost:7896/iot/d?k=4jggokgpepnvsb2uv4s40d59ov&i=motion001' \
-H 'Content-Type: text/plain' \
-d 'c|1'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

Y comprobamos que la medición ha sigo registrada haciendo una petición al Orion


Context Broker:

> curl -X GET \


'http://localhost:1026/v2/entities/urn:ngsi-ld:Motion:001?type=Motion' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

Procedemos de la misma manera para aprovisionar un actuador dummy, en concreto


una alarma:

> curl -iX POST \


'http://localhost:4041/iot/devices' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"devices": [
{
"device_id": "bell001",
"entity_name": "urn:ngsi-ld:Bell:001",
"entity_type": "Bell",
"protocol": "PDI-IoTA-UltraLight",
"transport": "HTTP",
"endpoint": "http://iot-sensors:3001/iot/bell001",
"commands": [
{ "name": "ring", "type": "command" }
],
"static_attributes": [
{"name":"refStore", "type": "Relationship","value": "urn:ngsi-
ld:Store:001"}
]
}
]
}
'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
© Universidad Internacional de La Rioja (UNIR)

de entregar con la práctica.

Por último, vamos a avisar al Orion Context Broker de que hemos conectado el Agente
IoT y los comandos están disponibles. En el caso de la alarma, sería:

> curl -iX POST \


'http://localhost:1026/v2/registrations' \
-H 'Content-Type: application/json' \

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


13
Tema 3. Actividades
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"description": "Bell Commands",
"dataProvided": {
"entities": [
{
"id": "urn:ngsi-ld:Bell:001", "type": "Bell"
}
],
"attrs": ["ring"]
},
"provider": {
"http": {"url": "http://orion:1026/v1"},
"legacyForwarding": true
}
}'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

Y, a continuación, podríamos hacer sonar la alarma (comando ring) y visualizar el


estado en la página de monitorización de dispositivos:

> curl -iX PATCH \


'http://localhost:1026/v2/entities/urn:ngsi-ld:Bell:001/attrs' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"ring": {
"type" : "command",
"value" : ""
}
}'

Guarda la salida devuelta y pégala en el informe que has de entregar con la práctica junto
con la petición realizada, y junto a una captura del monitor de dispositivos registrando
tráfico northbound.
© Universidad Internacional de La Rioja (UNIR)

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


14
Tema 3. Actividades
Figura 7. Página de monitorización de dispositivos con la alarma encendida.

Detén todos los servicios iniciados cuando termines esta parte:

> ./services stop


© Universidad Internacional de La Rioja (UNIR)

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


15
Tema 3. Actividades
Analizando datos históricos

En este utilizaremos el Generic Enabler FIWARE STH-Comet para ingerir datos de


MogoDB y agregarlos para disponer de una serie histórica, a partir de la arquitectura
del apartado anterior.

Pasos a seguir

Descarga el siguiente fichero y descomprímelo en una carpeta de tu ordenador:


https://github.com/FIWARE/tutorials.Short-Term-History/archive/master.zip

Abre un terminal, y accede a la carpeta descomprimida e inicializa los servicios


necesarios para la ejecución del ejemplo (en modo minimal):

> cd tutorials.Short-Term-History-master
> ./services create
> ./services sth-comet

A continuación, tenemos que iniciar una suscripción en el Orion Context Broker para
notificar a STH-Comet de los cambios de contexto. Por ejemplo, para agregar un
contador de eventos en el sensor de movimiento, ejecutaremos:

> curl -iX POST \


'http://localhost:1026/v2/subscriptions/' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"description": "Notify STH-Comet of all Motion Sensor count changes",
"subject": {
"entities": [
{
"idPattern": "Motion.*"
}
],
"condition": {"attrs": ["count"] }
},
"notification": {
"http": {
"url": "http://sth-comet:8666/notify"
},
"attrs": [
"count"
],
"attrsFormat": "legacy"
}
}'
© Universidad Internacional de La Rioja (UNIR)

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

Una vez que STH-Comet ha comenzado a agregar datos, podemos ver el histórico del
sensor de movimiento en la dirección:
http://localhost:3000/device/history/urn:ngsi-ld:Store:001

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


16
Tema 3. Actividades
Podemos generar eventos (mediciones) mediante el mismo comando que
utilizábamos en la sección anterior para simular mediciones del sensor de
movimiento.

Pega en el informe el comando utilizado para generar eventos en el sensor de


movimiento motion001, genera varios eventos, y pega una captura del estado de cada
dispositivo mostrado en la URL: http://localhost:3000/device/history/urn:ngsi-
ld:Store:001

Ahora, vamos a iniciar una suscripción en el Orion Context Broker para la lámpara
inteligente. Lo haremos mediante el comando:

> curl -iX POST \


'http://localhost:1026/v2/subscriptions/' \
-H 'Content-Type: application/json' \
-H 'fiware-service: openiot' \
-H 'fiware-servicepath: /' \
-d '{
"description": "Notify Cygnus to sample Lamp luminosity every five seconds",
"subject": {
"entities": [
{
"idPattern": "Lamp.*"
}
],
"condition": {
"attrs": [
"luminosity"
]
}
},
"notification": {
"http": {
"url": "http://sth-comet:8666/notify"
},
"attrs": [
"luminosity"
],
"attrsFormat": "legacy"
},
"throttling": 5
}'

Guarda la salida devuelta y pégala junto con la petición realizada en el informe que has
de entregar con la práctica.

A continuación, accedemos a la web: http://localhost:3000/device/monitor y


desbloqueamos la puerta door001 seleccionándola en el desplegable y pulsando en
“Send”. De la misma manera, encendemos la lámpara inteligente.
© Universidad Internacional de La Rioja (UNIR)

Incluye una captura de la página de monitorización de dispositivos registrando el tráfico


northbound en el informe que has de entregar con la práctica.

Accede ahora a la web: http://localhost:3000/device/history/urn:ngsi-ld:Store:001


para visualizar el histórico del sensor de movimiento y de la lámpara.

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


17
Tema 3. Actividades
Incluye en el informe una captura del estado de cada dispositivo mostrado en la URL:
http://localhost:3000/device/history/urn:ngsi-ld:Store:001

Detén todos los servicios iniciados cuando termines esta parte:

> ./services stop


© Universidad Internacional de La Rioja (UNIR)

IoT Industrial, Plataformas IoT y Aplicaciones por Sectores


18
Tema 3. Actividades

También podría gustarte