Visualización de datos de Azure IoT Hub como valores de propiedad en un activo
Los datos de Azure IoT Hub se pueden mostrar como valores de propiedad en un activo mediante ThingWorx Composer.
Requisitos previos
• Java Runtime Environment (JRE) 1.8 como mínimo
• ThingWorx Composer 8.3.0 o una versión superior con ThingWorx Apps instalado.
• Extensión Azure IoT Connector instalada en ThingWorx.
• Azure IoT Hub instalado.
• Una clave de aplicación de ThingWorx creada para ThingWorx Azure IoT Hub Connector, por ejemplo azure_appkey.
Procedimiento para mostrar datos de Azure IoT Hub para propiedades de activos:
|
Para mostrar una cosa de Azure IoT Hub como activo en ThingWorx Apps, sin que se puedan inspeccionar los datos de Azure IoT Hub desde el componente común del selector de etiquetas, solo necesita editar la cosa para añadir las definiciones implementadas que se enumeran en el paso 3 y omitir el resto del procedimiento que sigue.
|
1. En ThingWorx Composer, cree una plantilla de cosa de proveedor de recursos para añadir la conexión de Azure IoT Hub a la lista desplegable Tipo de equipo en el componente común del selector de etiquetas:
◦ Nombre: el nombre de la plantilla de cosa, por ejemplo AzureIot_ResourceProvider_ThingTemplate.
◦ Plantilla de cosa base: PTC.SCA.SCO.EquipmentResourceProviderTemplate
◦ Definiciones implementadas:PTC.SCA.SCO.RemoteConnectionResourceProviderThingShape
◦ En Servicios, pulse en para sustituir el servicio GetConnectedServers por el código siguiente. Se han añadido saltos de línea y espacios al código siguiente para una mejor visualización. Si corta y pega el código, quite estos caracteres antes de intentar usar el código en la aplicación.
var params = {
infoTableName : "InfoTable",
dataShapeName : "PTC.Factory.OPCDAServerNames"
};
var infoTableWithName = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
var params = {
columnName: "ResourceProviderName",
value: me.name
};
// result: INFOTABLE dataShape: PTC.SCA.SCO.RemoteConnectionSettingsTableDataShape
var result = Things["PTC.Factory.LaunchPointConfigurationThing"].
GetRemoteConnectionTableRowByStringProperty(params);
var thingTemplateName;
if (result) {
thingTemplateName = result.getRow(0).RemoteConnectionThingTemplateName;
}
var paramsForThingTemplate = {
maxItems : 1000,
nameMask : undefined,
query : undefined,
thingTemplate : thingTemplateName,
tags : undefined
};
var thingsWithTemplate = Resources["SearchFunctions"].SearchThingsByTemplate(paramsForThingTemplate);
for (var i = 0; i < thingsWithTemplate.rows.length; i++) {
var row = thingsWithTemplate.rows[i];
// infotable datashape iteration
var name = row.name;
var isThingEnabled = Things[name].IsEnabled();
if (name !== "" && name !== null && isThingEnabled) {
var serverName = row.ServerName;
var rowObject = new Object();
rowObject.Name = name;
if (serverName === null || serverName === undefined || serverName === "") {
serverName = name;
}
rowObject.ServerName = serverName;
infoTableWithName.AddRow(rowObject);
}
}
result = infoTableWithName;
2. Cree una cosa de proveedor de recursos que implemente la plantilla de cosa creada en el paso 1:
◦ Nombre: por ejemplo, AzureIot_ResourceProviderThing.
◦ Plantilla de cosa base: especifique la nueva plantilla de cosa creada en el paso 1. En este ejemplo, AzureIot_ResourceProvider_ThingTemplate.
3. Cree una plantilla de cosa para utilizarla para la creación de activos de Azure IoT Hub (cosas) con la configuración siguiente:
◦ Nombre: por ejemplo, AzureIot_RemoteThing_ThingTemplate.
◦ Descripción: descripción de la plantilla de cosa.
◦ Plantilla de cosa base:AzureIotThing o cualquier plantilla de cosa que se extienda desde AzureIotThing.
◦ Para el valor de ThingTemplate, especifique la plantilla de cosa creada en el paso 3.
◦ Para el valor de ResourceProvider, especifique el proveedor de recursos que se creó en el paso 2.
5. Añada el tipo de conexión de Azure IoT Hub a la cosa de configuración del punto de inicio.
a. Abra PTC.Factory.C_LaunchPointConfigurationThing_[versión].
b. Añada una fila a la tabla RemoteConnectionSettings con la configuración siguiente:
▪ ConnectionType: introduzca el nombre que desea que se muestre para el tipo de conexión de Azure IoT Hub en la ventana Crear conexión en Controls Advisor. Por ejemplo, AzureIot.
▪ ResourceProviderName: indique la cosa del proveedor de recursos creada en el paso 2. En este ejemplo, AzureIot_ResourceProviderThing.
▪ RemoteConnectionThingTemplateName: seleccione la plantilla de cosa AzureIotThing.
▪ EnabledInControlsAdvisor: asegúrese de que esta casilla esté desmarcada.
▪ EnabledInTagPicker: seleccione esta casilla para que el tipo de conexión sea visible en el selector de etiquetas.
| Si crea un activo basado en la plantilla de cosa AzureIotThing como cosa en ThingWorx Composer, debe definir la propiedad displayName en la cosa para que el activo se muestre correctamente en ThingWorx Apps. Si los activos se crean desde > en ThingWorx Apps, esta propiedad se define automáticamente. |