La Extensión de la IoT para Azure CLI 2.0 es una nueva extensión para IoT en código abierto que añade a las capacidades de Azure CLI 2.0, la cual como vamos a ver incluye comandos para interactuar con el administrador de recursos Azure como por ejemplo, puede utilizar Azure CLI 2.0 para crear una VM de Azure o un IoT Hub.
Una extensión CLI permite un servicio de Azure incrementar el Azure CLI dando acceso a funciones adicionales específicas de servicio como vamos a ver.
La extensión de IoT da IoT permite a los desarrolladores y aficionados acceso desde línea de comandos a todos los IoT Hub, IoT Edge, y las capacidades de IoT Hub Device Provisioning Service
Algunos ejemplos de posibilidades que ofrece esta extension:
Opción de manejo | Tarea |
---|---|
Métodos directos | Hacer un dispositivo actuar como arrancar o parar el envío de mensajes o reiniciar el dispositivo. |
Propiedades de dos deseadas | Poner un dispositivo en algunos estados, tales como poner establecer un LED a verde o establecer el intervalo de enviar telemetría cada 30 minutos. |
Doble registrados propiedades | Obtener el estado que informó un dispositivo. Por ejemplo, el dispositivo informa que el LED parpadea ahora. |
Etiquetas de doble funcion | Almacenar metadatos específicos del dispositivo en la nube. Por ejemplo, la situación de la implementación de una máquina expendedora. |
Consultas de doble dispositivo | Consulta todos los gemelos de dispositivo para recuperarlas condiciones arbitrarias, tales como identificar los dispositivos que están disponibles para su uso. |
Device twins (Gemelos de dispositivo) son documentos JSON que almacenan información de estado del dispositivo (metadatos, configuraciones y condiciones). Eje de IoT persiste a una doble dispositivo de cada dispositivo que se conecta a él.
Extensión de IoT para Azure CLI 2.0
Vamos a ver usar la extensión de IoT para Azure CLI 2.0 con varias opciones de manejo en nuestra máquina de desarrollo ejecutando Azure CLI 2.0 y la extensión de IoT para Azure CLI 2.0 con varias opciones de gestión.
Para poder usar esta extensión necesitaremos haber configurado el dispositivo completo de Iot cubriendo los siguientes requisitos:
-
- Una suscripción activa de Azure.
- Un centro de Azure IoT bajo su suscripción.
- Una aplicación de cliente que envíe mensajes a su hub de IoT de Azure.
Debemos asegurarnos de que el dispositivo se está ejecutando con la aplicación de cliente .Por ejemplo un método muy cómodo de comprobarlo es usando la herramienta Microsoft Azure Storage siempre que hayamos vinculado nuestro Hub de Iot a Azure Storage (como vimos es este post) ,pues desde esta herramienta podremos ver fácilmente el contenido de los mensajes enviados por el dispositivo
Microsoft Azure IoT Extension for Azure CLI 2.0 proporciona nuevos y emocionantes comandos y capacidades de IoT centrados en los servicios IoT Hub y IoT Device Provisioning. La funcionalidad se proporciona como un paquete de extensión CLI de Azure para una integración perfecta con la funcionalidad de línea de comandos existente.
La extensión aumenta el Azure CLI IoT de Azure agregando o modificando el espacio de comando existente. La extensión incluye capacidades en las siguientes categorías:
- IoT Hub
- IoT Edge
- IoT Device Provisioning Service (DPS)
Instalación
Paso1; Instalación de Python.
Como requisito previo se necesita instalar Python en el equipo de desarrollo. Podemos instalar Python 2.7 x o Python 3.x. Python 3.65 es la ultima version disponible y que podemos instalar. Simplemente ir a https://www.python.org/downloads/ pinchar sobre enlace para descargar la ultima version y después ejecutar el instalable para lanzar la instalación.
Paso 3:Instalar Azure CLI 2.0
Tambien necesitamos instalar el cliente de Azure CLI 2.0 para agregar despuesla extensión IoT. Podemos instalar directamente con un instalador desde Windows el cliente CLI , para ello descargaremos MSI y luego lo instalaremos en nuestro equipo de desarrollo
Como mínimo, la versión Azure CLI 2.0 debe ser 2.0.24 o superior. Esta versión admite los comandos de extensión az e introduce el marco de comandos knack, es por eso que podemos utilizar para comprobarlo el comando desde linea de comandos (cmd):
az --version
.
Por ejemplo este el resultado de la ejecución de este comando con la ultima version instalada (2.0.31) del cliente de Azure:
C:\Users\Carlos>az –version
azure-cli (2.0.31)
acr (2.0.23)
acs (2.0.31)
advisor (0.5.1)
appservice (0.1.31)
backup (1.1.1)
batch (3.2.0)
batchai (0.2.0)
billing (0.1.8)
cdn (0.0.14)
cloud (2.0.13)
cognitiveservices (0.1.12)
command-modules-nspkg (2.0.1)
configure (2.0.15)
consumption (0.3.0)
container (0.1.22)
core (2.0.31)
cosmosdb (0.1.20)
dla (0.0.19)
dls (0.0.21)
eventgrid (0.1.12)
eventhubs (0.1.2)
extension (0.0.12)
feedback (2.1.1)
find (0.2.9)
interactive (0.3.19)
iot (0.1.19)
keyvault (2.0.21)
lab (0.0.21)
monitor (0.1.5)
network (2.0.28)
nspkg (3.0.2)
profile (2.0.22)
rdbms (0.2.1)
redis (0.2.12)
reservations (0.1.2)
resource (2.0.27)
role (2.0.22)
servicebus (0.1.2)
servicefabric (0.0.12)
sql (2.0.25)
storage (2.0.31)
vm (2.0.30)
Python location ‘C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe’
Extensions directory ‘C:\Users\Carlos\.azure\cliextensions’
Python (Windows) 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]
Legal docs and information: aka.ms/AzureCliLegal
También puede seguir las instrucciones de instalación en Microsoft Docs configurar Azure CLI 2.0 en su entorno.
Paso 4: Instalación de la extensión de cliente de Azureo pare IoTI
Finalmente también tenemos que instalar la extensión de la IoT ahora que tiene una extensión de cliente de Azure compatible instalado.
Cuando se instala una extensión, cualquier dependencia adicional de Python requerida se descarga y se instala automáticamente.
Hay múltiples opciones para la instalación. Después de instalar la extensión, puede usar una lista de extensiones az para validar las extensiones instaladas actualmente o la extensión az show – nombre azure-cli-iot-ext para ver detalles sobre la extensión IoT.
En todos los casos, asegúrese de que la extensión IoT sea la versión 0.3.2 o superior.
La extensión está diseñada para ser plug-and-play con Azure CLI. Incluso si tiene Azure CLI instalado, asegúrese de que esté actualizado.La forma más sencilla es ejecutar el siguiente comando.
az extension add --name azure-cli-iot-ext
Puede usar el comando az list list-available para ver todas las extensiones disponibles en el índice y es posible tambien actualizar una extensión en su lugar utilizando la extensión az update –name, Asimismo El IoT extensión archivo Léame describe varias maneras de instalar la extensión.
Paso 5:Inicie sesión en Azure
Inicie sesión su cuenta Azure ejecutando el siguiente comando:
az login
Ahora vaya a la pagina https://microsoft.com/devicelogin e introduzca el código que devuelve el comando en la pagina anterior para validarse.
Una vez aceptada en la página nos pide nuestro login de la cuenta de Azure y tras aceptarse ya no es necesario continuar en el navegador y a partir de aqui ya estan disponible los comandos posibles de Azure CLI
Una validado nos dará un mensaje de finalizacioó
Ahora desde linea de comando tenemos muchas posibilidades :
Hub
Command group: az iot hub
az iot hub query
az iot hub generate-sas-token
az iot hub show-connection-string
az iot hub apply-configuration
az iot hub invoke-device-method
az iot hub invoke-module-method
Hub Device Identity
Command group: az iot hub device-identity
az iot hub device-identity create
az iot hub device-identity show
az iot hub device-identity list
az iot hub device-identity update
az iot hub device-identity delete
az iot hub device-identity show-connection-string
az iot hub device-identity import
az iot hub device-identity export
Hub Device Twin
Command group: az iot hub device-twin
az iot hub device-twin show
az iot hub device-twin replace
az iot hub device-twin update
Hub Module Identity
Command group: az iot hub module-identity
az iot hub module-identity create
az iot hub module-identity show
az iot hub module-identity list
az iot hub module-identity update
az iot hub module-identity delete
az iot hub module-identity show-connection-string
Hub Module Twin
Command group: az iot hub module-twin
az iot hub module-twin show
az iot hub module-twin replace
az iot hub module-twin update
Edge Deployment
Command group: az iot edge deployment
az iot edge deployment create
az iot edge deployment show
az iot edge deployment list
az iot edge deployment update
az iot edge deployment delete
Device
Command group: az iot device
az iot device send-d2c-message
az iot device simulate
az iot device upload-file
Device c2d-message
Command group: az iot device c2d-message
az iot device c2d-message receive
az iot device c2d-message complete
az iot device c2d-message abandon
az iot device c2d-message reject
DPS Enrollment
Command group: az iot dps enrollment
az iot dps enrollment create
az iot dps enrollment show
az iot dps enrollment list
az iot dps enrollment update
az iot dps enrollment delete
DPS Enrollment Group
Command group: az iot dps enrollment-group
az iot dps enrollment-group create
az iot dps enrollment-group show
az iot dps enrollment-group list
az iot dps enrollment-group update
az iot dps enrollment-group delete
DPS Registration
Command group: az iot dps registration
az iot dps registration show
az iot dps registration list
az iot dps registration delete
Importante:
Añada –help o -h a un grupo de comandos o comando para obtener más información.
Para grupos de comandos, esto revelará los comandos del grupo objetivo
Para los comandos, esto revelará información sobre los parámetros y puede incluir ejemplos de uso.
Algunos ejemplos de uso prácticos:
- Metodos directos : Se puede invocar directamente desde linea de comandos: az iot hub invoke-device-method –device-id –hub-name –method-name –method-payload
- Propiedades del dispositivo gemelo deseado: Por ejemplo se puede establecer una propiedad de intervalo = 3000 ejecutando el siguiente comando: az iot hub device-twin update -n -d –set properties.desired.interval = 3000 Esta propiedad puede ser leída tamnbien desde su dispositivo.
- Propiedades del doble dispositivo registrados : se pueden obtener las propiedades divulgadas del dispositivo ejecutando el siguiente comando: az iot hub device-twin update -n -d –set properties.reported.interval = 3000 . Una de las propiedades es $metadata. $lastUpdated que muestra la última vez que este dispositivo envía o recibe un mensaje.
- Etiquetas de doble dispositivo: Se pueden mostrar las etiquetas y propiedades del dispositivo ejecutando el siguiente comando: az iot hub device-twin show –hub-name –device-id Agregar una función de campo = temperatura & humedad al dispositivo ejecutando el siguiente comando:az iot hub device-twin update –hub-name –device-id –set tags = ‘{«role»:»temperature&humidity»}}’
- Consultas de doble dispositivo :Consulta de dispositivos con una etiqueta de papel = ‘temperatura & humedad’ ejecutando el siguiente comando:az iot hub query –hub-name –query-command «SELECT * FROM devices WHERE tags.role = ‘temperature&humidity’«
- Consulta todos los dispositivos excepto los que tienen una etiqueta de papel = ‘temperatura & humedad’ ejecutando el siguiente comando:az iot hub query –hub-name –query-command «SELECT * FROM devices WHERE tags.role != ‘temperature&humidity'»
Hemos visto por tanto cómo controlar mensajes de dispositivo a nube y enviar mensajes de dispositivo de nube entre su dispositivo de IoT y Azure IoT Hub.
Fuente https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-device-management-iot-extension-azure-cli-2-0