Una vez que tenemos un dispositivo compatible con Azure Iot ( como por ejemplo una Raspberry pi 3 como vimos , o desde un ESP8266 como vimos también recientemente ) , los hemos configurado y hemos implementado una aplicación de ejemplo para ejecutar en el dispositivo que envié envíe datos que los sensores recogen a su hub de IoT , puede que queramos intentar gestionar la mensajería en la nube del dispositivo IoT
Precisamente en este contexto surge iothub-explorer que pone a nuestra disposición varios comandos para facilitar la gestión de centro de IoT permitiéndonos supervisar mensajes de dispositivo a nube y enviar mensajes de dispositivo de nube.
Los mensajes de dispositivo a nube podrían ser datos de sensores de un dispositivo que recolecta y envía a su hub de IoT ( como por ejemplo una Raspberry pi 3 como vimos en este post , o desde un ESP8266 como vimos recientemente en este post ) o bien los mensajes hacia ese dispositivo de nube que podría ser comandos que IoT hub envía al dispositivo como por ejemplo hacer parpadear un LED conectado a ese dispositivo.
Resumidamente hay pues dos usos muy diferentes del explorador de iothub :
- Para supervisar mensajes de dispositivo a nube.
- Para enviar mensajes de dispositivo de nube.
Para ello necesitamos haber completado dos fases:
- Haber configurado el dispositivo , configuración completa que cubre los siguientes requisitos:
- Haber registrado una cuenta de suscripción a Azure ( la gratuita nos sirve) .
- Haber registrado un centro de Azure IoT ( una vez mas también existe una modalidad gratuita para probar el servicio).
- Una aplicación de cliente que envíe mensajes a su hub de IoT de Azure.
- Haber instalado el explorador de iothub. (Instalar explorer iothub)
Instalación de iothub-explorer
Iothub Explorer es pues una herramienta CLI para administrar las identidades de los dispositivos en su registro de IoT hub, enviar y recibir mensajes y archivos desde sus dispositivos, y monitorear sus operaciones de centros de IoT. Ademas iothub-explorer también permite simular un dispositivo conectado a su hub de IoT.
En post anteriores vimos como con una Raspberry pi 3 , o desde un ESP8266 los configurábamos e implementamos sendas aplicaciones para ejecutar en esos dispositivos procesos para enviar datos de telemetria procedente de sus sensores a un hub de IoT en la nube de Azure Iot Edge
Bien, tenemos nuestra aplicación corriendo en el dispositivo de Iot , por lo que necesitamos ahora instalar el explorador de iothub. Desgraciadamente no esta disponible para ambiente windows , es decir solo lo podemos ejecutar por el momento en equipos con Linux instalado. Ademas esta herramienta requiere la versión 4.x o superior de Node.js para que funcionen todas las características.
Para instalar la última versión de la herramienta iothub-explorer, ejecute el siguiente comando en su entorno de línea de comandos:
npm install -g iothub-explorer
En caso de querer instalar esta utilidad en una Raspberry pi desde Raspbian, al no estar disponible el comando npm instalarlo siguiendo estos pasos:
cd ~
git clone https://github.com/azure/iothub-explorer

Manejo de iothub-explorer
Una vez isntalada esta utilidad ,puede usar el siguiente comando para obtener ayuda adicional sobre todos los comandos de ihotub-explorer:
$ iothub-explorer help
Usage: iothub-explorer [options] <command> [command-options] [command-args]
Commands:
login start a session on your IoT hub
logout terminate the current session on your IoT hub
list list the device identities currently in your IoT hub device registry
create <device-id|device-json> create a device identity in your IoT hub device registry
delete <device-id> delete a device identity from your IoT hub device registry
get <device-id> get a device identity from your IoT hub device registry
import-devices import device identities in bulk: local file -> Azure blob storage -> IoT hub
export-devices export device identities in bulk: IoT hub -> Azure blob storage -> local file
send <device-id> <message> send a message to the device (cloud-to-device/C2D)
monitor-feedback monitor feedback sent by devices to acknowledge cloud-to-device (C2D) messages
monitor-events [device-id] listen to events coming from devices (or one in particular)
monitor-uploads monitor the file upload notifications endpoint
monitor-ops listen to the operations monitoring endpoint of your IoT hub instance
sas-token <device-id> generate a SAS Token for the given device
simulate-device <device-id> simulate a device with the specified id
help [cmd] display help for [cmd]
Options:
-h, --help output usage information
-V, --version output the version number
Cada comando iothub-explorer tiene su propia ayuda ,la cual se puede ver pasanDdo el argumento -help (ayuda) al nombre del comando:
$ iothub-explorer help create
Usage: iothub-explorer create [options] [device-id|device-json]
Create a device identity in your IoT hub device registry, either using the specified device id or JSON description.
Options:
-h, --help output usage information
-a, --auto create a device with an auto-generated device id
-cs, --connection-string show the connection string for the newly created device
-d, --display <property-filter> comma-separated list of device properties that should be displayed
-l, --login <connection-string> connection string to use to authenticate with your IoT Hub instance
-k1, --key1 <key> specify the primary key for newly created device
-k2, --key2 <key> specify the secondary key for newly created device
-r, --raw use this flag to return raw JSON instead of pretty-printed output
-x, --x509 generate an x509 certificate to authenticate the device
-dv, --daysValid number of days the x509 certificate should be valid for
-t1, --thumbprint1 <thumbprint> specify the primary thumbprint of the x509 certificate
-t2, --thumbprint2 <thumbprint> specify the secondary thumbprint of the x509 certificate
Puede obtener mas información en https://github.com/azure/iothub-explorer
Monitor dispositivo a nube mensajes
Para supervisar los mensajes que se envían desde el dispositivo a su hub de IoT, siga estos pasos:
- Abra una ventana de consola.
- Ejecute el siguiente comando:
iothub-explorer monitor-events <device-id> --login "<IoTHubConnectionString>"
-
Obtener y de su hub de IoT. Asegúrese de que haya terminado el tutorial anterior. O puedes probar a utilizar si tienes, y.<device-id><IoTHubConnectionString>iothub-explorer monitor-events <device-id> --login "HostName=<my-hub>.azure-devices.net;SharedAccessKeyName=<my-policy>;SharedAccessKey=<my-policy-key>"HostNameSharedAccessKeyNameSharedAccessKey
Enviar mensajes de dispositivo de nube
Para enviar un mensaje desde su hub de IoT en el dispositivo, siga estos pasos:
- Abra una ventana de consola.
- Iniciar una sesión en su hub de IoT ejecutando el siguiente comando:
iothub-explorer login `<IoTHubConnectionString>`
- Enviar un mensaje a su dispositivo ejecutando el siguiente comando:
iothub-explorer send <device-id> <message>
El comando hace parpadear el LED que está conectado a su dispositivo y envía el mensaje al dispositivo.
Nota:No es necesario para el dispositivo envie un comando ack separado a su hub de IoT al recibir el mensaje.
Debe estar conectado para enviar un comentario.