Azure IoT Hub 데이터를 자산의 속성 값으로 표시
ThingWorx Composer를 사용하여 자산에서 Azure IoT Hub 데이터를 속성 값으로 표시할 수 있습니다.
사전 요구 사항
• 최소 1.8의 JRE(Java Runtime Environment)
• ThingWorx Apps와 함께 ThingWorx Composer 8.3.0 이상이 설치되어 있어야 합니다.
• Azure IoT 커넥터 확장이 ThingWorx에 설치되어 있어야 합니다.
• Azure IoT Hub가 설치되어 있어야 합니다.
• ThingWorx 응용 프로그램 키가 ThingWorx Azure IoT Hub 커넥터에 대해 설치되어 있어야 합니다(예: azure_appkey).
자산 속성에 대한 Azure IoT Hub 데이터를 표시하려면 다음을 수행하십시오.
|
태그 선택기 공통 구성 요소에서 Azure IoT Hub 데이터를 검색하지 않고도 Azure IoT Hub 사물을 자산으로 ThingWorx Apps에 표시하려면 해당 사물을 편집하여 3단계에 나열된 구현된 형태만 추가하면 됩니다. 다음 절차의 나머지는 건너뛸 수 있습니다.
|
1. ThingWorx Composer에서 Azure IoT Hub 연결을 태그 선택기 공통 구성 요소의 장비 유형 드롭다운 목록에 추가하기 위한 새 리소스 공급자 사물 템플릿을 만듭니다.
◦ 이름 - 사물 템플릿의 이름입니다(예: AzureIot_ResourceProvider_ThingTemplate).
◦ 기본 사물 템플릿 - PTC.SCA.SCO.EquipmentResourceProviderTemplate
◦ 구현된 형태 - PTC.SCA.SCO.RemoteConnectionResourceProviderThingShape
◦ 서비스에서 을 클릭하여 GetConnectedServers 서비스를 다음 코드로 재정의합니다. (표시를 위해 아래의 코드에 줄 바꿈 및 공백이 추가되었습니다. 코드를 잘라내어 붙여 넣은 경우 응용 프로그램에서 해당 코드를 사용하기 전에 이러한 문자를 제거하십시오.)
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. 1단계에서 생성된 사물 템플릿을 구현하는 리소스 공급자 사물을 만듭니다.
◦ 이름 - 예를 들어, AzureIot_ResourceProviderThing입니다.
◦ 기본 사물 템플릿 - 1단계에서 만든 새 사물 템플릿을 지정합니다. 이 예에서 AzureIot_ResourceProvider_ThingTemplate입니다.
3. 다음 설정으로 Azure IoT Hub 자산(사물)을 만드는 데 사용할 사물 템플릿을 만듭니다.
◦ 이름 - 예를 들어, AzureIot_RemoteThing_ThingTemplate입니다.
◦ 설명 - 사물 템플릿에 대한 설명입니다.
◦ 기본 사물 템플릿 - AzureIotThing(또는 AzureIotThing에서 확장되는 모든 사물 템플릿)
◦ ThingTemplate 값에 대해 3단계에서 만든 사물 템플릿을 지정합니다.
◦ ResourceProvider 값에 대해 2단계에서 만든 리소스 공급자를 지정합니다.
5. Azure IoT Hub 연결 유형을 시작 지점 구성 사물에 추가합니다.
a. PTC.Factory.C_LaunchPointConfigurationThing_[ReleaseVersion]을 엽니다.
b. 다음 설정으로 RemoteConnectionSettings 테이블에 새 행을 추가합니다.
▪ ConnectionType - Controls Advisor의 연결 작성 창에 Azure IoT Hub 연결 유형으로 표시할 이름을 입력합니다. 예를 들어, AzureIot입니다.
▪ ResourceProviderName - 2단계에서 만든 리소스 공급자 사물을 입력합니다. 이 예에서는 AzureIot_ResourceProviderThing입니다.
▪ RemoteConnectionThingTemplateName - AzureIotThing 사물 템플릿을 선택합니다.
▪ EnabledInControlsAdvisor - 이 확인란의 선택이 취소되었는지 확인합니다.
▪ EnabledInTagPicker - 태그 선택기에서 연결 유형을 표시하려면 이 확인란을 선택합니다.
| AzureIotThing 사물 템플릿을 기반으로 자산을 ThingWorx Composer의 사물로 만드는 경우 ThingWorx Apps에서 올바르게 표시되도록 자산에 대한 사물의 displayName 속성을 설정해야 합니다. 자산이 ThingWorx Apps의 > 에서 생성된 경우 이 속성은 자동으로 설정됩니다. |