裝置範本包含描述裝置如何與 IoT Central 互動的模型。 此模型會定義裝置的功能,以及如何讓 IoT Central 與裝置互動。 裝置可以將遙測和屬性值傳送至 IoT Central,IoT Central 可以將屬性更新和命令傳送至裝置。 IoT Central 也會使用模型來定義與 IoT Central 功能的互動,例如作業、規則和匯出。
裝置範本中模型的變更可能會影響整個應用程式,包括任何連線的裝置。 對規則、匯出、裝置群組或工作所使用的功能進行變更可能會導致它們異常運作或根本無法運作。 例如,如果您從範本中移除遙測定義:
- IoT Central 無法再解譯該值。 IoT Central 會在裝置的 [原始資料] 頁面上顯示無法解譯為 [未建模資料] 的裝置資料。
- IoT Central 不再在任何資料匯出中包含值。
為了協助您避免編輯裝置範本造成任何非預期的後果,本文包含根據您目前開發生命週期階段的建議。 一般而言,您在開發生命週期中越早,您對裝置範本變更的容忍度就越高。
若要深入瞭解裝置範本以及如何建立裝置範本,請參閱 什麼是裝置範本? 和在 Azure IoT Central 應用程式中建立裝置範本。
若要瞭解如何使用 IoT Central REST API 來管理裝置範本,請參閱 如何使用 IoT Central REST API 來管理裝置範本。
修改裝置範本
附加變更 (例如將功能或介面新增至模型) 是非中斷性變更。 您可以在開發生命週期的任何階段對模型進行附加變更。
重大變更包括移除模型的各個部分,或變更功能名稱或結構描述類型。 這些變更可能會導致應用程式功能 (例如規則、匯出或儀表板) 顯示錯誤訊息並停止運作。
在早期裝置開發階段,當您仍在設計和測試模型時,直接對裝置模型進行變更的容忍度會更高。 在將生產裝置連線至裝置範本之前,您可以直接編輯裝置範本。 IoT Central 會在您發佈裝置範本時,自動將這些變更套用至裝置。
將生產裝置連接至裝置範本之後,請在編輯裝置範本之前評估任何變更的影響。 您不應該在生產環境中對裝置範本進行重大變更。 若要進行此類變更,請建立裝置範本的新版本。 測試新的裝置範本,然後在排程的停機時間將生產裝置移轉至新範本。
更新 IoT Edge 裝置範本
針對 IoT Edge 裝置,模型會依對應至裝置上執行之 IoT Edge 模組的模組將功能分組。 部署資訊清單是個別的 JSON 檔,可告知 IoT Edge 裝置要安裝哪些模組、如何設定模組,以及模組具有哪些屬性。 如果您修改部署資訊清單,您可以更新裝置範本,以包含資訊清單中定義的模組和屬性:
- 導覽至裝置範本中的 Modules 節點。
- 在 [模組摘要] 頁面上,選取 [從資訊清單匯入模組]。
- 選取適當的部署資訊清單,然後選取 [匯入]。
若要深入瞭解,請參閱 IoT Edge 裝置和 IoT Central。
編輯和發佈動作
編輯裝置範本時,下列動作很有用:
- 儲存。 當您變更裝置範本的一部分時,儲存變更會建立可供您返回的草稿。 這些變更尚未影響連線的裝置。 從此範本建立的任何裝置在您發佈之前都不會有已儲存的變更。
- 發佈。 當您發佈裝置範本時,它會將任何已儲存的變更套用至現有的裝置執行個體。 新建立的裝置執行個體一律會使用最新發佈的範本。
- 建立範本版本。 當您對裝置範本進行版本控制時,它會建立一個包含所有最新儲存變更的新範本。 對新版本所做的變更不會影響現有的裝置執行個體。 若要深入了解,請參閱<建立裝置範本版本>。
- 建立介面版本。 當您為介面創建新版本時,它會建立一個具有所有最新儲存的功能的新介面。 您可以在範本內的多個位置重複使用介面。 這種重複使用是導致對某一接口的參考進行的變更會影響範本中所有使用該接口的位置的原因。 當您對介面進行版本控制時,此行為會變更,因為新版本現在是個別的介面。 若要深入瞭解,請參閱 版本設定介面。
- 移轉裝置。 當您移轉裝置時,裝置執行個體會從一個裝置範本交換至另一個裝置範本。 裝置移轉可能會導致 IoT Central 處理變更的時間很短。 若要深入瞭解,請參閱 跨版本移轉裝置。
版本號碼
裝置型號和介面都有版本號碼。 不同的版本號碼可讓模型或介面共用值 @id ,同時提供更新歷程記錄。 只有在您選擇對範本或介面進行版本控制,或您刻意變更版本號碼時,版本號碼才會增加。 當您對範本或介面進行重大變更時,您應該變更版本號碼。
下列程式碼片段顯示恆溫器裝置的裝置型號。 設備型號具有單一介面。 您可以在欄位1末尾看到版本號碼@id。
{
"@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 中檢視這項資訊,請在裝置範本編輯器中選取 [編輯身分識別 ]:
裝置範本版本化
若要對裝置範本創建版本:
- 移至 [裝置範本 ] 頁面。
- 選取您要版本化的裝置範本。
- 選取頁面頂端的 版本 ,並為範本指定新名稱。 IoT Central 會建議新的名稱,您可以編輯該名稱。
- 選取 ,創建。
現在您已建立具有唯一身分識別的新範本,該身分識別未附加至任何現有裝置。
建立介面版本
為介面設定版本:
- 移至 [裝置範本 ] 頁面。
- 選取您在草稿模式下擁有的裝置範本。
- 選取您要版本化和編輯的已發佈介面。
- 選取介面頁面頂端的 [版本]。
- 選取 ,創建。
現在您已建立具有唯一身分識別的新介面,但不會與先前的介面版本同步。
在不同版本中移轉裝置
您可以建立多個版本的裝置範本。 隨著時間的推移,您將會有多個設備使用這些設備模板進行連接。 您可以將裝置從裝置範本的一個版本移轉至另一個版本。 下列步驟說明如何移轉裝置:
小提示
您可以使用任務將裝置群組中的所有裝置同時遷移至新的裝置範本。