Tutorial: Definición de un nuevo tipo de dispositivo de puerta de enlace de IoT en la aplicación de Azure IoT Central

En este tutorial va a crear una plantilla de dispositivo de puerta de enlace Smart Building. Un dispositivo de puerta de enlace Smart Building tiene relaciones con otros dispositivos de nivel inferior.

Diagrama que muestra la relación entre un dispositivo de puerta de enlace y sus dispositivos de nivel inferior.

Un dispositivo de puerta de enlace también puede:

  • Enviar sus propios datos de telemetría como, por ejemplo, la temperatura.
  • Responder a las actualizaciones de propiedades de escritura que realiza un operador. Por ejemplo, un operador podría cambiar el intervalo de envío de telemetría.
  • Responder a comandos como, por ejemplo, el reinicio del dispositivo.

En este tutorial aprenderá a:

  • Creación de plantillas de dispositivo de nivel inferior
  • Creación de una plantilla de dispositivo de puerta de enlace
  • Publicación de la plantilla de dispositivo
  • Creación de los dispositivos simulados

Requisitos previos

Para completar los pasos de este tutorial, necesitará lo siguiente:

Creación de plantillas de dispositivo de nivel inferior

En este tutorial se usan plantillas de dispositivo para un dispositivo Onset Hobo MX-100 Temp Sensor y un dispositivo RS40 Occupancy Sensor para generar dispositivos de nivel inferior simulados.

Para crear una plantilla de dispositivo para un dispositivo Onset Hobo MX-100 Temp Sensor:

  1. Seleccione Device Templates (Plantillas de dispositivo) en el panel izquierdo. A continuación, seleccione +Nuevo para empezar a agregar la plantilla.

  2. Desplácese hacia abajo hasta que pueda ver el icono del dispositivo Onset Hobo MX-100 Temp Sensor. Seleccione el icono y, a continuación, seleccione Siguiente: revisión.

  3. En la página Revisar, seleccione Crear para agregar la plantilla de dispositivo a la aplicación.

Para crear una plantilla de dispositivo para un dispositivo Sensor de ocupación RS40:

  1. Seleccione Device Templates (Plantillas de dispositivo) en el panel izquierdo. A continuación, seleccione +Nuevo para empezar a agregar la plantilla.

  2. Desplácese hacia abajo hasta que vea el icono del dispositivo Sensor de ocupación Rigado RS40. Seleccione el icono y, a continuación, seleccione Siguiente: revisión.

  3. En la página Revisar, seleccione Crear para agregar la plantilla de dispositivo a la aplicación.

Ahora tiene plantillas de dispositivo para los dos tipos de dispositivos de nivel inferior:

Captura de pantalla que muestra las plantillas de dispositivo de nivel inferior.

Creación de una plantilla de dispositivo de puerta de enlace

En este tutorial, se va a crear una plantilla de dispositivo para un dispositivo de puerta de enlace desde cero. Puede usar esta plantilla más adelante para crear un dispositivo simulado de puerta de enlace en la aplicación.

Para agregar una nueva plantilla de dispositivo de puerta de enlace a la aplicación:

  1. Seleccione Device Templates (Plantillas de dispositivo) en el panel izquierdo. A continuación, seleccione +Nuevo para empezar a agregar la plantilla.

  2. En la página Seleccionar tipo de plantilla, seleccione el icono Dispositivo IoT y, después, seleccione Siguiente: Customize (Personalizar)

  3. En la página Customize device (Personalizar dispositivo), active la casilla This is a gateway device (Este es un dispositivo de puerta de enlace).

  4. Escriba Smart Building gateway device (Dispositivo de puerta de enlace de edificio inteligente) como nombre de la plantilla y, luego, seleccione Siguiente: revisión.

  5. En la página Revisar, seleccione Crear.

  6. En la página Create a model (Crear un modelo), seleccione el icono Custom model (Personalizar modelo).

  7. Seleccione +Agregar funcionalidad para agregar una funcionalidad.

  8. Escriba Enviar datos como nombre para mostrar y, luego, seleccione Propiedad como tipo de funcionalidad.

  9. Seleccione booleano como tipo de esquema, establezca Grabable y luego seleccione Guardar.

Adición de relaciones

A continuación, agregue relaciones a las plantillas para las plantillas de dispositivo de nivel inferior:

  1. En la plantilla Dispositivo de puerta de enlace de edificio inteligente seleccione Relaciones.

  2. Seleccione + Agregar relación. Escriba sensor ambiental como nombre para mostrar y seleccione Hobo MX-100 como destino.

  3. Seleccione + Agregar relación de nuevo. Escriba Sensor de ocupación como nombre para mostrar y seleccione Sensor de ocupación RS40 como destino.

  4. Seleccione Guardar.

Captura de pantalla que muestra las relaciones de la puerta de enlace.

Adición de propiedades de nube

Una plantilla de dispositivo de puerta de enlace puede incluir propiedades de la nube. Las propiedades de la nube solo existen en la aplicación IoT Central y nunca se envían a un dispositivo ni se reciben de él.

Para agregar propiedades de la nube a la plantilla Dispositivo de puerta de enlace de edificio inteligente:

  1. En la plantilla Dispositivo de puerta de enlace del edificio inteligente, seleccione el modelo Dispositivo de puerta de enlace del edificio inteligente.

  2. Use la información de la tabla siguiente para agregar dos propiedades de la nube a la plantilla de dispositivo de puerta de enlace.

    Nombre para mostrar Tipo de funcionalidad Tipo semántico Schema
    Fecha de la última revisión Propiedad de nube None Date
    Nombre del cliente Propiedad de nube None String
  3. Seleccione Guardar.

Creación de vistas

Como desarrollador, puede personalizar la aplicación para mostrar información pertinente sobre el dispositivo sensor ambiental a un operador. Las personalizaciones permiten al operador administrar estos dispositivo conectados a la aplicación. Puede crear dos tipos de vistas para que un operador interactúe con los dispositivos:

  • Formularios para ver y editar las propiedades del dispositivo y la nube
  • Vistas para visualizar dispositivos.

Para generar las vistas predeterminadas para la plantilla Dispositivo de puerta de enlace de edificio inteligente:

  1. En la plantilla Dispositivo de puerta de enlace de edificio inteligente seleccione Vistas.

  2. Seleccione el icono Generar vistas predeterminadas y asegúrese de que todas las opciones estén seleccionadas.

  3. Seleccione Generar vistas de panel predeterminadas.

Publicación de la plantilla de dispositivo

Para poder crear un dispositivo simulado de puerta de enlace, o conectar un dispositivo de puerta de enlace real, es preciso publicar la plantilla de dispositivo.

Para publicar la plantilla de dispositivo de puerta de enlace:

  1. Seleccione la plantilla Dispositivo de puerta de enlace de edificio inteligente en la página Plantillas de dispositivo.

  2. Seleccione Publicar.

  3. En el cuadro de diálogo Publish a Device Template (Publicar una plantilla de dispositivo), elija Publicar.

Una vez publicada una plantilla de dispositivo, es visible en la página Devices (Dispositivos) y para el operador. El operador puede usar la plantilla para crear instancias de dispositivo o establecer las reglas y la supervisión. La edición de una plantilla publicada podría afectar al comportamiento en toda la aplicación.

Para más información sobre cómo modificar una plantilla de dispositivo después de publicarla, consulte Edición de una plantilla de dispositivo existente.

Creación de los dispositivos simulados

En este tutorial se usan dispositivos simulados de nivel inferior y un dispositivo simulado de puerta de enlace.

Para crear un dispositivo simulado de puerta de enlace:

  1. En la página Dispositivos, seleccione Dispositivo de puerta de enlace de edificio inteligente en la lista de plantillas de dispositivo.

  2. Seleccione +Nuevo para empezar a agregar un nuevo dispositivo.

  3. Conserve el Id. de dispositivo y el Nombre de dispositivo que se han generado. Asegúrese de que el conmutador Simulado esté en . Seleccione Crear.

Para crear dispositivos simulados de nivel inferior:

  1. En la página Dispositivos, seleccione Sensor de ocupación RS40 en la lista de plantillas de dispositivo.

  2. Seleccione +Nuevo para empezar a agregar un nuevo dispositivo.

  3. Conserve el Id. de dispositivo y el Nombre de dispositivo que se han generado. Asegúrese de que el conmutador Simulado esté en . Seleccione Crear.

  4. En la página Dispositivos, seleccione Hobo MX-100 en la lista de plantillas de dispositivo.

  5. Seleccione +Nuevo para empezar a agregar un nuevo dispositivo.

  6. Conserve el Id. de dispositivo y el Nombre de dispositivo que se han generado. Asegúrese de que el conmutador Simulado esté en . Seleccione Crear.

Captura de pantalla que muestra los dispositivos simulados.

Adición de relaciones de dispositivos de nivel inferior a un dispositivo de puerta de enlace

Ahora que tiene los dispositivos simulados en la aplicación, puede crear las relaciones entre los dispositivos de nivel inferior y el dispositivo de puerta de enlace:

  1. En la página Dispositivos, seleccione Hobo MX-100 en la lista de plantillas de dispositivo y, a continuación, seleccione el dispositivo Hobo MX-100 simulado.

  2. Seleccione Attach to gateway (Conectar a la puerta de enlace).

  3. En el cuadro de diálogo Attach to a gateway (Conectar a la puerta de enlace), seleccione la plantilla Smart Building gateway device (Dispositivo de puerta de enlace de edificio inteligente) y, luego, elija la instancia simulada que creó anteriormente.

  4. Seleccione Adjuntar.

  5. En la página Dispositivos, seleccione Sensor de ocupación RS40 en la lista de plantillas de dispositivo y, a continuación, seleccione el dispositivo simulado Sensor de ocupación RS40.

  6. Seleccione Attach to gateway (Conectar a la puerta de enlace).

  7. En el cuadro de diálogo Attach to a gateway (Conectar a la puerta de enlace), seleccione la plantilla Smart Building gateway device (Dispositivo de puerta de enlace de edificio inteligente) y, luego, elija la instancia simulada que creó anteriormente.

  8. Seleccione Adjuntar.

Los dispositivos simulados de nivel inferior ahora están ya conectados al dispositivo simulado de puerta de enlace. Si va a la vista Dispositivos de bajada del dispositivo de puerta de enlace, podrá ver los dispositivos de nivel inferior relacionados:

Captura de pantalla que muestra los dispositivos conectados a la puerta de enlace.

Conexión de dispositivos de bajada reales

En el tutorial Creación y conexión de una aplicación cliente a la aplicación de Azure IoT Central, el código de ejemplo muestra cómo incluir el identificador de modelo de la plantilla de dispositivo en la carga de aprovisionamiento que envía el dispositivo.

Al conectar un dispositivo de nivel inferior, puede modificar la carga de aprovisionamiento para incluir el identificador del dispositivo de puerta de enlace. El identificador del modelo de IoT Central asocia el dispositivo con la plantilla de dispositivo de bajada correcta. El identificador de puerta de enlace permite que IoT Central establezca la relación entre el dispositivo de bajada y su puerta de enlace. En este caso, la carga de aprovisionamiento que envía el dispositivo es similar al siguiente JSON:

{
  "modelId": "dtmi:rigado:HoboMX100;2",
  "iotcGateway":{
    "iotcGatewayId": "gateway-device-001"
  }
}

Una puerta de enlace puede registrar y aprovisionar un dispositivo de bajada, y asociar el dispositivo de bajada a la puerta de enlace como se muestra a continuación:

var crypto = require('crypto');


var ProvisioningTransport = require('azure-iot-provisioning-device-mqtt').Mqtt;
var SymmetricKeySecurityClient = require('azure-iot-security-symmetric-key').SymmetricKeySecurityClient;
var ProvisioningDeviceClient = require('azure-iot-provisioning-device').ProvisioningDeviceClient;

var provisioningHost = "global.azure-devices-provisioning.net";
var idScope = "<The ID scope from your SAS group enrollment in IoT Central>";
var groupSymmetricKey = "<The primary key from the SAS group enrollment>";
var registrationId = "<The device ID for the downstream device you're creating>";
var modelId = "<The model you're downstream device should use>";
var gatewayId = "<The device ID of your gateway device>";

// Calculate the device key from the group enrollment key
function computeDerivedSymmetricKey(deviceId, masterKey) {
    return crypto.createHmac('SHA256', Buffer.from(masterKey, 'base64'))
        .update(deviceId, 'utf8')
        .digest('base64');
}

var symmetricKey = computeDerivedSymmetricKey(registrationId, groupSymmetricKey);

var provisioningSecurityClient = new SymmetricKeySecurityClient(registrationId, symmetricKey);

var provisioningClient = ProvisioningDeviceClient.create(provisioningHost, idScope, new ProvisioningTransport(), provisioningSecurityClient);

// Use the DPS payload to:
// - specify the device capability model to use.
// - associate the device with a gateway.
var provisioningPayload = {modelId: modelId, iotcGateway: { iotcGatewayId: gatewayId}}

provisioningClient.setProvisioningPayload(provisioningPayload);

provisioningClient.register(function(err, result) {
  if (err) {
    console.log("Error registering device: " + err);
  } else {
    console.log('The registration status is: ' + result.status)
   }
});

Limpieza de recursos

Si no tiene previsto realizar otro inicios rápidos o tutoriales de IoT Central, puede eliminar la aplicación de IoT Central:

  1. En la aplicación de IoT Central, vaya a Aplicación > Administración.
  2. Seleccione Delete (Eliminar) y confirme la acción.

Paso siguiente

A continuación, puede aprender a: