Azure IoT Central 애플리케이션에서 디바이스 템플릿 만들기
디바이스 템플릿은 Azure IoT Central 애플리케이션에 접속하는 디바이스 유형의 특성 및 동작을 정의하는 청사진입니다. 예를 들어 온도와 같은 원격 분석 및 위치와 같은 속성을 보내는 센서의 디바이스 템플릿을 만들 수 있습니다. 자세한 내용은 디바이스 템플릿이란?을 참조하세요.
이 문서에서는 원격 분석 메시지 디바이스 템플릿을 자동으로 생성하거나 IoT Central UI 템플릿을 정의하는 것과 같은 IoT Central에서 디바이스 템플릿을 만드는 몇 가지 방법을 설명합니다.
운영자는 디바이스 템플릿에서 실제 디바이스를 만들고 연결할 수 있습니다.
다음 스크린샷은 디바이스 템플릿의 예제를 보여 줍니다.
디바이스 템플릿은 다음과 같은 섹션으로 구성됩니다.
- 모델 - 모델을 사용하여 디바이스가 IoT Central 애플리케이션과 상호 작용하는 방식을 정의합니다. 각 모델에는 고유한 모델 ID가 있으며 디바이스의 기능을 정의합니다. 기능은 인터페이스로 그룹화됩니다. 인터페이스를 사용하면 모델에서 구성 요소를 다시 사용하거나 상속을 사용하여 기능 세트를 확장할 수 있습니다.
- 원시 데이터 - 지정된 미리 보기 디바이스에서 보낸 원시 데이터를 봅니다. 이 보기는 디바이스 템플릿을 디버깅하거나 문제를 해결할 때 유용합니다.
- 보기 - 보기를 사용하여 디바이스의 데이터를 시각화하고 양식을 사용하여 디바이스를 관리하고 제어합니다.
IoT Central REST API를 사용하여 디바이스 템플릿을 관리하는 방법을 알아보려면 IoT Central REST API를 사용하여 디바이스 템플릿을 관리하는 방법을 참조하세요.
디바이스 템플릿을 만드는 옵션은 다음과 같이 여러 가지입니다.
- IoT Central UI에서 디바이스 템플릿을 디자인합니다.
- 주요 디바이스 템플릿 목록에서 디바이스 템플릿을 가져옵니다. 선택적으로 IoT Central에서 디바이스 템플릿을 요구 사항에 맞게 사용자 지정합니다.
- 디바이스가 IoT Central에 연결되면 해당 디바이스에서 구현하는 모델의 모델 ID를 보냅니다. IoT Central은 모델 ID를 사용하여 모델 리포지토리에서 모델을 검색하고 디바이스 템플릿을 만듭니다. IoT Central 애플리케이션에 필요한 클라우드 속성 및 보기를 디바이스 템플릿에 추가합니다.
- 디바이스가 IoT Central에 연결되면 IoT Central이 디바이스가 전송하는 데이터에서 디바이스 템플릿 정의를 자동 생성할 수 있습니다.
- DTDL(디지털 트윈 정의 언어) v2 및 IoT Central DTDL 확장을 사용하여 디바이스 모델을 작성합니다. IoT Central 애플리케이션으로 디바이스 모델을 수동으로 가져옵니다. 그런 다음, IoT Central 애플리케이션에 필요한 클라우드 속성 및 보기를 추가합니다.
- IoT Central REST API를 사용하여 디바이스 템플릿을 관리하는 방법을 사용하여 IoT Central 애플리케이션에 디바이스 템플릿을 추가할 수도 있습니다.
참고 항목
각 경우 디바이스 코드는 모델에 정의된 기능을 구현해야 합니다. 디바이스 코드 구현은 디바이스 템플릿의 클라우드 속성 및 보기 섹션의 영향을 받지 않습니다.
디바이스 템플릿 가져오기
이 섹션에서는 주요 디바이스 템플릿 목록에서 디바이스 템플릿을 가져오는 방법과 IoT Central UI를 사용하여 디바이스 템플릿을 사용자 지정하는 방법을 보여 줍니다. 이 예제에서는 주요 디바이스 템플릿 목록에서 Onset Hobo MX-100 Temp Sensor 디바이스 템플릿을 사용합니다.
- 새 디바이스 템플릿을 추가하려면 디바이스 템플릿 페이지에서 + 새로 만들기를 선택합니다.
- 형식 선택 페이지에서 추천 디바이스 템플릿 섹션의 Onset Hobo MX-100 Temp Sensor 타일을 찾을 때까지 아래로 스크롤합니다.
- Onset Hobo MX-100 Temp Sensor 타일을 선택한 후, 다음: 검토를 선택합니다.
- 검토 페이지에서 만들기를 선택합니다. 만든 템플릿의 이름은 Hobo MX-100입니다. 모델에는 Hobo MX-100 및 IotDevice와 같은 구성 요소가 포함됩니다. 구성 요소는 Hobo MX-100 디바이스의 기능을 정의합니다. 기능에는 원격 분석, 속성 및 명령이 포함될 수 있습니다. 이 디바이스에는 원격 분석 기능만 있습니다.
디바이스 템플릿 자동 생성
현재 할당되지 않은 디바이스에서 자동으로 디바이스 템플릿을 만들 수도 있습니다. IoT Central에서는 디바이스가 디바이스 모델을 유추하기 위해 보내는 원격 분석 및 속성 값을 사용합니다.
참고 항목
현재 이 미리 보기 기능은 구성 요소의 원격 분석과 속성을 사용할 수 없습니다. 루트 원격 분석 및 속성에서만 기능을 생성할 수 있습니다.
다음 단계에서는 해당 기능을 사용하는 방법을 보여줍니다.
디바이스를 IoT Central에 연결하고 데이터 전송을 시작합니다. 원시 데이터 보기에 데이터가 표시되면 템플릿 관리 드롭다운에서 템플릿 자동 생성을 선택합니다.
데이터 미리 보기 페이지에서 필요에 따라 원시 데이터를 변경하고 템플릿 만들기를 선택합니다.
IoT Central은 데이터 미리 보기 페이지에 표시된 데이터 형식을 기반으로 템플릿을 생성한 다음 디바이스를 할당합니다. 디바이스 템플릿 페이지에서 이름 변경 또는 기능 추가와 같이 디바이스 템플릿을 추가로 변경할 수 있습니다.
UI에서 디바이스 템플릿 관리
템플릿의 편집기 페이지에서 템플릿을 만들거나 편집하거나 이름을 바꾸거나 삭제할 수 있습니다.
템플릿을 정의한 후 게시할 수 있습니다. 템플릿이 게시될 때까지 디바이스를 연결할 수 없으며 디바이스 페이지에 표시되지 않습니다.
디바이스 템플릿 수정 및 버전 관리에 대한 자세한 내용은 기존 디바이스 템플릿 편집을 참조하세요.
모델
모델은 디바이스가 loT Central 애플리케이션과 상호 작용하는 방식을 정의합니다. 더 많은 기능으로 모델을 사용자 지정하거나, 기능을 상속하기 위해 인터페이스를 추가하거나, 다른 인터페이스를 기반으로 하는 새 구성 요소를 추가합니다.
디바이스 모델을 만들기 위해 다음을 수행할 수 있습니다.
- IoT Central을 사용하여 사용자 지정 모델을 처음부터 만듭니다.
- JSON 파일에서 DTDL 모델을 가져옵니다. 디바이스 작성기는 Visual Studio Code를 사용하여 애플리케이션에 대한 디바이스 모델을 빌드할 수 있습니다.
- 주요 디바이스 템플릿 목록에서 디바이스 중 하나를 선택합니다. 해당 옵션은 제조업체에서 해당 디바이스에 대해 게시한 디바이스 모델을 가져옵니다. 이와 같이 가져온 디바이스 모델은 자동으로 게시됩니다.
모델 ID를 보려면 모델에서 루트 인터페이스를 선택하고 ID 편집을 선택합니다.
구성 요소 ID를 보려면 모델의 구성 요소 인터페이스에서 ID 편집을 선택합니다.
자세히 알아보려면 IoT 플러그 앤 플레이 모델링 가이드를 참조하세요.
인터페이스 및 구성 요소
디바이스 모델에서 인터페이스를 보고 관리하려면 다음을 수행합니다.
디바이스 템플릿 페이지로 이동하여 만든 디바이스 템플릿을 선택합니다. 인터페이스는 디바이스 템플릿의 모델 섹션에 나열되어 있습니다. 다음 스크린샷은 디바이스 템플릿에 있는 센서 컨트롤러 루트 인터페이스의 예를 보여 줍니다.
상속된 인터페이스 또는 구성 요소를 루트 인터페이스에 추가하려면 줄임표를 선택합니다. 인터페이스 및 구성 요소에 대한 자세한 내용은 모델링 가이드의 여러 구성 요소를 참조하세요.
모델이나 인터페이스를 내보내려면 내보내기를 선택합니다.
인터페이스 또는 기능에 대한 DTDL을 보거나 편집하려면 DTDL 편집을 선택합니다.
기능
인터페이스 또는 구성 요소에 기능을 추가하려면 + 기능 추가를 선택합니다. 예를 들어 SensorTemp 구성 요소에 목표 온도 기능을 추가할 수 있습니다.
원격 분석
원격 분석은 디바이스, 일반적으로 센서에서 보내는 값의 스트림입니다. 예를 들어 다음 스크린샷에 표시된 대로 센서에서 주변 온도를 보고할 수 있습니다.
다음 표에는 원격 분석 기능의 구성 설정이 나와 있습니다.
필드 | Description |
---|---|
표시 이름 | 보기와 양식에 사용되는 원격 분석 값의 표시 이름입니다. |
이름 | 원격 분석 메시지의 필드 이름입니다. IoT Central은 표시 이름에서 이 필드의 값을 생성하지만, 필요한 경우 사용자 고유의 값을 선택할 수 있습니다. 이 필드는 영숫자여야 합니다. |
기능 유형 | 원격 분석입니다. |
의미 체계 유형 | 원격 분석의 의미 체계 유형입니다(예: 온도, 상태 또는 이벤트). 의미 체계 유형을 선택하면 다음 필드 중에서 사용 가능한 필드가 결정됩니다. |
스키마 | 원격 분석 데이터 형식입니다(예: double, string 또는 vector). 의미 체계 형식에 따라 사용 가능한 선택이 결정됩니다. 이벤트 및 상태 의미 체계 유형에는 스키마를 사용할 수 없습니다. |
심각도 | 이벤트 의미 체계 유형에만 사용할 수 있습니다. 심각도는 오류, 정보 또는 경고입니다. |
상태 값 | 상태 의미 체계 유형에만 사용할 수 있습니다. 가능한 상태 값을 정의하며, 각각에는 표시 이름, 이름, 열거형 형식 및 값이 있습니다. |
단위 | 원격 분석 값에 대한 단위입니다(예: mph, % 또는 °C). |
표시 단위 | 보기와 양식에서 사용하는 표시 단위입니다. |
의견 | 원격 분석 기능에 대한 주석입니다. |
설명 | 원격 분석 기능에 대한 설명입니다. |
속성
속성은 특정 시간 값을 나타냅니다. IoT Central에서 쓰기 가능한 속성을 설정할 수 있습니다. 예를 들어 디바이스에서는 쓰기 가능한 속성을 사용하여 운영자가 다음 스크린샷과 같이 목표 온도를 설정할 수 있습니다.
다음 표에는 속성 기능의 구성 설정이 나와 있습니다.
필드 | Description |
---|---|
표시 이름 | 보기와 양식에 사용되는 속성 값의 표시 이름입니다. |
속성 | 속성의 이름입니다. IoT Central은 표시 이름에서 이 필드의 값을 생성하지만, 필요한 경우 사용자 고유의 값을 선택할 수 있습니다. 이 필드는 영숫자여야 합니다. |
기능 유형 | 속성입니다. |
의미 체계 유형 | 속성의 의미 체계 유형입니다(예: 온도, 상태 또는 이벤트). 의미 체계 유형을 선택하면 다음 필드 중에서 사용 가능한 필드가 결정됩니다. |
스키마 | 속성 데이터 형식입니다(예: double, string 또는 vector). 의미 체계 형식에 따라 사용 가능한 선택이 결정됩니다. 이벤트 및 상태 의미 체계 유형에는 스키마를 사용할 수 없습니다. |
쓰기 가능 | 속성을 쓸 수 없는 경우 디바이스에서 속성 값을 IoT Central에 보고할 수 있습니다. 쓰기 가능한 속성인 경우 디바이스에서 속성 값을 IoT Central에 보고할 수 있으며, IoT Central에서 속성 업데이트를 디바이스에 보낼 수 있습니다. |
심각도 | 이벤트 의미 체계 유형에만 사용할 수 있습니다. 심각도는 오류, 정보 또는 경고입니다. |
상태 값 | 상태 의미 체계 유형에만 사용할 수 있습니다. 가능한 상태 값을 정의하며, 각각에는 표시 이름, 이름, 열거형 형식 및 값이 있습니다. |
단위 | 속성 값에 대한 단위입니다(예: mph, % 또는 °C). |
표시 단위 | 보기와 양식에서 사용하는 표시 단위입니다. |
의견 | 속성 기능에 대한 주석입니다. |
Description | 속성 기능에 대한 설명입니다. |
Color | DTDL에 대한 IoT Central 확장입니다. |
최솟값 | 최솟값 설정 - DTDL에 대한 IoT Central 확장입니다. |
최댓값 | 최댓값 설정 - DTDL에 대한 IoT Central 확장입니다. |
소수 자릿수 | DTDL에 대한 IoT Central 확장입니다. |
명령
IoT Central에서 디바이스 명령을 호출할 수 있습니다. 선택적으로 매개 변수를 디바이스에 전달하고 디바이스로부터 응답을 받습니다. 예를 들어 다음 스크린샷에 표시된 대로 명령을 호출하여 10초 이내에 디바이스를 다시 부팅할 수 있습니다.
다음 표에는 명령 기능의 구성 설정이 나와 있습니다.
필드 | Description |
---|---|
표시 이름 | 보기와 양식에 사용되는 명령의 표시 이름입니다. |
이름 | 명령 이름입니다. IoT Central은 표시 이름에서 이 필드의 값을 생성하지만, 필요한 경우 사용자 고유의 값을 선택할 수 있습니다. 이 필드는 영숫자여야 합니다. |
기능 유형 | 명령입니다. |
오프라인 상태인 경우 큐에 넣기 | 사용하도록 설정하면 디바이스가 오프라인 상태인 경우에도 명령을 호출할 수 있습니다. 사용하도록 설정하지 않으면 디바이스가 온라인 상태일 때만 명령을 호출할 수 있습니다. |
의견 | 명령 기능에 대한 주석입니다. |
설명 | 명령 기능에 대한 설명입니다. |
요청 | 사용하도록 설정하면 이름, 표시 이름, 스키마, 단위 및 표시 단위를 포함한 요청 매개 변수의 정의입니다. |
응답 | 사용하도록 설정하면 이름, 표시 이름, 스키마, 단위 및 표시 단위를 포함한 명령 응답의 정의입니다. |
초기 값 | 기본 매개 변수 값. 이 매개 변수는 DTDL에 대한 IoT Central 확장입니다. |
디바이스에서 명령을 구현하는 방법에 대해 자세한 정보는 원격 분석, 속성 및 명령 페이로드 > 명령 및 장기 실행 명령을 참조하세요.
오프라인 명령
디바이스가 현재 오프라인 상태인 경우 디바이스 템플릿의 명령에 대해 오프라인 상태인 경우 큐 옵션을 사용하도록 설정하여 큐 명령을 선택할 수 있습니다.
해당 옵션은 IoT Hub 클라우드-디바이스 메시지를 사용하여 디바이스에 알림을 보냅니다. 자세한 내용은 클라우드-디바이스 메시지 보내기 IoT Hub 문서를 참조하세요.
클라우드-디바이스 메시지:
- 솔루션에서 디바이스로의 단방향 알림입니다.
- 메시지를 한 번 이상 전송하도록 보장합니다. IoT Hub는 디바이스별 큐에 클라우드-디바이스 메시지를 유지하여 연결 및 디바이스 오류에 대한 복원력을 보장합니다.
- 디바이스에서 클라우드-디바이스 메시지를 처리하는 메시지 처리기를 구현해야 합니다.
참고 항목
오프라인 명령은 모델을 DTDL로 내보내는 것처럼 durable
로 표시됩니다.
클라우드 속성
클라우드 속성을 사용하여 IoT Central에서 디바이스 관련 정보를 저장합니다. 클라우드 속성은 디바이스에 보내지 않습니다. 예를 들어 클라우드 속성을 사용하여 디바이스를 설치한 고객의 이름 또는 디바이스에서 마지막으로 서비스를 제공한 날짜를 저장할 수 있습니다.
팁
모델의 루트 구성 요소에만 클라우드 속성을 추가할 수 있습니다.
다음 표에는 클라우드 속성의 구성 설정이 나와 있습니다.
필드 | Description |
---|---|
표시 이름 | 보기와 양식에 사용되는 클라우드 속성 값의 표시 이름입니다. |
이름 | 클라우드 속성의 이름입니다. IoT Central은 표시 이름에서 이 필드의 값을 생성하지만, 필요한 경우 사용자 고유의 값을 선택할 수 있습니다. |
의미 체계 유형 | 속성의 의미 체계 유형입니다(예: 온도, 상태 또는 이벤트). 의미 체계 유형을 선택하면 다음 필드 중에서 사용 가능한 필드가 결정됩니다. |
스키마 | 클라우드 속성 데이터 형식입니다(예: double, string 또는 vector). 의미 체계 형식에 따라 사용 가능한 선택이 결정됩니다. |
뷰
보기를 사용하면 운영자가 디바이스를 모니터링하고 상호 작용할 수 있는 보기와 양식을 정의할 수 있습니다. 보기는 차트와 같은 시각화를 사용하여 원격 분석과 속성 값을 표시합니다.
기본 보기를 생성하면 중요한 디바이스 정보를 빠르게 시각화할 수 있습니다. 세 개의 기본 보기는 다음과 같습니다.
기본 보기
- 명령: 디바이스 명령이 포함된 보기로 운영자가 이를 디바이스로 디스패치할 수 있습니다.
- 개요: 디바이스 원격 분석이 포함된 보기로 차트 및 메트릭을 표시합니다.
- 정보: 디바이스 정보가 포함된 보기로 디바이스 속성을 표시합니다.
기본 보기 생성을 선택하면 해당 보기가 디바이스 템플릿의 보기 섹션 아래에 자동으로 추가됩니다.
사용자 지정 보기
운영자가 차트와 메트릭을 사용하여 디바이스를 시각화할 수 있는 보기를 디바이스 템플릿에 추가합니다. 고유의 사용자 지정 보기를 디바이스 템플릿에 추가할 수 있습니다.
디바이스 템플릿에 보기를 추가하려면 다음을 수행합니다.
- 디바이스 템플릿으로 이동하여 보기를 선택합니다.
- 디바이스를 시각화하는 중을 선택합니다.
- 보기 이름에 보기의 이름을 입력합니다.
- 타일 추가에서 시각적 개체로 시작을 선택하고 타일의 시각적 개체 유형을 선택합니다. 그런 다음 타일 추가를 선택하거나 시각적 개체를 캔버스로 끌어다 놓습니다. 타일을 구성하려면 톱니 모양 아이콘을 선택합니다.
보기를 테스트하려면 미리 보기 디바이스 구성을 선택합니다. 해당 기능을 사용하면 보기가 게시된 후 운영자가 보는 그대로 해당 보기가 표시됩니다. 해당 옵션을 사용하여 보기에 올바른 데이터가 표시되는지 확인합니다. 다음 옵션 중에서 선택 합니다.
- 미리 보기 디바이스 없음
- 디바이스 템플릿에 대해 구성한 실제 테스트 디바이스.
- 디바이스 ID를 사용하여 애플리케이션에 있는 기존 디바이스
양식
운영자가 속성을 보고 설정하여 디바이스를 관리할 수 있게 하는 양식을 디바이스 템플릿에 추가합니다. 운영자는 클라우드 속성과 쓰기 가능한 디바이스 속성만 편집할 수 있습니다. 디바이스 템플릿에는 여러 개의 양식이 있을 수 있습니다.
보기 노드를 선택하고 디바이스 및 클라우드 데이터 편집 타일을 선택하여 새 보기를 추가합니다.
양식 이름을 디바이스 관리로 변경합니다.
양식에 추가할 속성 및 클라우드 속성을 선택합니다. 그런 다음, 섹션 추가를 선택합니다.
저장을 선택하여 새 양식을 저장합니다.
디바이스 템플릿 게시
디바이스 모델을 구현하는 디바이스를 연결하려면 디바이스 템플릿을 게시해야 합니다.
디바이스 템플릿을 게시하려면 디바이스 템플릿으로 이동하고 게시를 선택합니다.
디바이스 템플릿이 게시되면 운영자가 디바이스 페이지로 이동하여 디바이스 템플릿을 사용하는 실제 디바이스 또는 시뮬레이션된 디바이스를 추가할 수 있습니다. 변경하면서 디바이스 템플릿을 계속 수정하고 저장할 수 있습니다. 디바이스페이지에서 볼 수 있도록 운영자에게 이러한 변경 내용을 푸시하려면 매번 게시를 선택해야 합니다.