디바이스 템플릿 편집
디바이스 템플릿에는 디바이스가 IoT Central과 상호 작용하는 방식을 설명하는 모델이 포함되어 있습니다. 이 모델은 디바이스의 기능과 IoT Central이 디바이스와 상호 작용하는 방법을 정의합니다. 디바이스는 IoT Central에 원격 분석 및 속성 값을 보낼 수 있으며, IoT Central은 디바이스에 속성 업데이트 및 명령을 보낼 수 있습니다. 또한 IoT Central은 모델을 사용하여 작업, 규칙 및 내보내기와 같은 IoT Central 기능과의 상호 작용을 정의합니다.
디바이스 템플릿의 모델 변경 내용은 연결된 디바이스를 포함하여 전체 애플리케이션에 영향을 줄 수 있습니다. 규칙, 내보내기, 디바이스 그룹 또는 작업에서 사용하는 기능을 변경하면 예기치 않게 동작하거나 전혀 작동하지 않을 수 있습니다. 예를 들어 템플릿에서 원격 분석 정의를 제거하는 경우 다음을 수행합니다.
- IoT Central은 더 이상 해당 값을 해석할 수 없습니다. IoT Central은 디바이스의 원시 데이터 페이지에서 모델링되지 않은 데이터로 해석할 수 없는 디바이스 데이터를 표시합니다.
- IoT Central은 더 이상 데이터 내보내기에 값을 포함하지 않습니다.
디바이스 템플릿을 편집하여 의도하지 않은 결과를 방지할 수 있도록 이 문서에는 현재 개발 수명 주기 단계에 따른 권장 사항이 포함되어 있습니다. 일반적으로 개발 수명 주기에 더 일찍 있을수록 디바이스 템플릿 변경에 더 관대할 수 있습니다.
디바이스 템플릿 및 생성 방법에 대한 자세한 내용은 디바이스 템플릿이란? 및 디바이스 템플릿 설정을 참조하세요.
IoT Central REST API를 사용하여 디바이스 템플릿을 관리하는 방법을 알아보려면 IoT Central REST API를 사용하여 디바이스 템플릿을 관리하는 방법을 참조하세요.
디바이스 템플릿 수정
모델에 기능 또는 인터페이스를 추가하는 것과 같은 추가 변경 내용은 변경되지 않습니다. 개발 수명 주기의 모든 단계에서 모델을 추가로 변경할 수 있습니다.
호환성이 손상되는 변경에는 모델의 일부 제거, 기능 이름 또는 스키마 형식 변경 등이 있습니다. 이러한 변경으로 인해 규칙, 내보내기 또는 대시보드와 같은 애플리케이션 기능으로 오류 메시지를 표시하고 작동을 중지할 수 있습니다.
초기 디바이스 개발 단계에서는 모델을 디자인하고 테스트하는 동안 디바이스 모델을 직접 변경하는 것에 대한 허용 범위가 더 높습니다. 프로덕션 디바이스를 디바이스 템플릿에 연결하기 전에 디바이스 템플릿을 직접 편집할 수 있습니다. IoT Central은 디바이스 템플릿을 게시할 때 해당 변경 내용을 디바이스에 자동으로 적용합니다.
디바이스 템플릿에 프로덕션 디바이스를 연결한 후 디바이스 템플릿을 편집하기 전에 변경 내용의 영향을 평가합니다. 프로덕션 환경에서 디바이스 템플릿을 주요 변경하면 안 됩니다. 이렇게 변경하려면 디바이스 템플릿의 새 버전을 만듭니다. 새 디바이스 템플릿을 테스트한 다음 예약된 가동 중지 시간에 프로덕션 디바이스를 새 템플릿으로 마이그레이션합니다.
IoT Edge 디바이스 템플릿 업데이트
IoT Edge 디바이스의 경우 모델은 디바이스에서 실행되는 IoT Edge 모듈에 해당하는 모듈별로 기능을 그룹화합니다. 배포 매니페스트는 설치할 모듈과 구성 방법 및 모듈에 있는 속성을 IoT Edge 디바이스에 알려주는 별도의 JSON 문서입니다. 배포 매니페스트를 수정하는 경우 매니페스트에 정의된 모듈 및 속성을 포함하도록 디바이스 템플릿을 업데이트할 수 있습니다.
- 디바이스 템플릿에서 모듈 노드로 이동합니다.
- 모듈 요약 페이지에서 매니페스트에서 모듈 가져오기를 선택합니다.
- 적절한 배포 매니페스트를 선택하고 가져오기를 선택합니다.
자세한 내용은 IoT Edge 디바이스 및 IoT Central을 참조하세요.
작업 편집 및 게시
다음 작업은 디바이스 템플릿을 편집할 때 유용합니다.
- 저장합니다. 디바이스 템플릿의 일부를 변경하는 경우 변경 내용을 저장하면 반환할 수 있는 초안이 만들어집니다. 이러한 변경 내용은 연결된 디바이스에 아직 영향을 미치지 않습니다. 이 템플릿에서 만든 모든 디바이스에는 게시할 때까지 저장된 변경 내용이 없습니다.
- 게시. 디바이스 템플릿을 게시하는 경우 기존 디바이스 인스턴스에 저장된 변경 내용을 적용합니다. 새로 만든 디바이스 인스턴스는 항상 최신 게시된 템플릿을 사용합니다.
- 템플릿 버전을 지정합니다. 디바이스 템플릿에 버전을 지정하면 저장된 최신 변경 내용이 모두 포함된 새 템플릿이 만들어집니다. 새 버전에 대한 변경 내용은 기존 디바이스 인스턴스에 영향을 주지 않습니다. 자세한 내용은 디바이스 템플릿 버전을 참조하세요.
- 인터페이스 버전을 지정합니다. 인터페이스에 버전을 지정하면 저장된 최신 기능이 모두 포함된 새 인터페이스가 만들어집니다. 템플릿 내의 여러 위치에서 인터페이스를 재사용할 수 있습니다. 따라서 인터페이스에 대한 참조 하나를 변경하면 해당 인터페이스를 사용하는 템플릿의 모든 위치가 변경됩니다. 인터페이스에 버전을 지정하면 새 버전이 이제 별도의 인터페이스이므로 이 동작이 변경됩니다. 자세한 내용은 인터페이스 버전 지정을 참조 하세요.
- 디바이스를 마이그레이션합니다. 디바이스를 마이그레이션하면 디바이스 인스턴스가 디바이스 템플릿을 다른 템플릿으로 바꿉니다. 디바이스 마이그레이션으로 인해 IoT Central이 변경 내용을 처리하는 데 시간이 약간 걸릴 수 있습니다. 자세한 내용은 버전 간에 디바이스 마이그레이션을 참조하세요.
버전 번호
디바이스 모델과 인터페이스에는 모두 버전 번호가 있습니다. 버전 번호가 다르면 모델 또는 인터페이스가 @id
값을 공유하면서 업데이트 기록을 제공할 수 있습니다. 버전 번호는 템플릿 또는 인터페이스의 버전을 선택하거나 의도적으로 버전 번호를 변경하는 경우에만 증가합니다. 템플릿이나 인터페이스를 크게 변경하는 경우 버전 번호를 변경해야 합니다.
다음 코드 조각은 자동 온도 조절기 디바이스에 대한 디바이스 모델을 보여줍니다. 디바이스 모델에는 단일 인터페이스가 있습니다. 필드의 끝에서@id
버전 번호를 1
볼 수 있습니다.
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:Thermostat;1",
"@type": "Interface",
"displayName": "Thermostat",
"description": "Reports current temperature and provides desired temperature control.",
"contents": [
// ...
]
}
IoT Central UI에서 이 정보를 보려면 디바이스 템플릿 편집기에서 ID 보기를 선택합니다.
디바이스 템플릿 버전 지정
디바이스 템플릿의 버전을 지정하려면:
- 디바이스 템플릿 페이지로 이동합니다.
- 버전을 지정할 디바이스 템플릿을 선택합니다.
- 페이지 맨 위에 있는 버전을 선택하고 템플릿에 새 이름을 지정합니다. IoT Central은 편집할 수 있는 새 이름을 제안합니다.
- 만들기를 실행합니다.
이제 기존 디바이스에 연결되지 않은 고유한 ID를 사용하여 새 템플릿을 만들었습니다.
인터페이스 버전 지정
인터페이스 버전을 지정하려면:
- 디바이스 템플릿 페이지로 이동합니다.
- 초안 모드의 디바이스 템플릿을 선택합니다.
- 버전을 지정하고 편집할 게시된 인터페이스를 선택합니다.
- 인터페이스 페이지 상단에서 버전을 선택합니다.
- 만들기를 실행합니다.
이제 고유한 ID를 사용하여 새 인터페이스를 만들었으므로 이전 인터페이스 버전과 동기화되지 않습니다.
여러 버전에서 디바이스 마이그레이션
여러 버전의 디바이스 템플릿을 만들 수 있습니다. 시간이 지나면 이러한 디바이스 템플릿을 사용하는 연결된 디바이스가 여러 개 생깁니다. 한 버전의 디바이스 템플릿에서 다른 버전으로 디바이스를 마이그레이션할 수 있습니다. 다음 단계는 디바이스를 마이그레이션하는 방법을 설명합니다.
장치 페이지로 이동합니다.
다른 버전으로 마이그레이션할 디바이스를 선택합니다.
마이그레이션 선택:
디바이스를 마이그레이션할 버전이 있는 디바이스 템플릿을 선택하고 마이그레이션을 선택합니다.
팁
작업을 사용하여 디바이스 그룹의 모든 디바이스를 동시에 새 디바이스 템플릿으로 마이그레이션할 수 있습니다.