A kávégép eszközsablonjának definiálása
Az Azure IoT Central eszközsablonja egy terv, amely meghatározza az alkalmazáshoz csatlakozó eszköztípus jellemzőit és viselkedését. Az eszközsablon például meghatározza az eszköz által küldött telemetriát, hogy az IoT Central a megfelelő egységeket és adattípusokat használó vizualizációkat hozhasson létre.
Az eszközsablonok a következő szakaszokat tartalmazzák:
- Eszközmodell. A kávégép-szimulátor által az alkalmazással kicserélt adatok egy eszközmodellben lesznek megadva.
- Gyökérösszetevő. A gyökérösszetevő felülete az eszközmodellre jellemző képességeket ismerteti.
- Összetevők. Az eszközmodellek a gyökérösszetevőn kívül összetevőket is tartalmazhatnak az eszköz képességeinek leírásához. Ebben a forgatókönyvben csak a gyökérösszetevőt fogja használni a Csatlakozás kávéfőző modell definiálásához.
- Örökölt felületek. Az eszközmodellek egy vagy több interfészt tartalmaznak, amelyek kibővítik a gyökérösszetevő képességeit. Ebben a forgatókönyvben csak egy felületet fog definiálni.
- Nézetek. Az eszközsablon ezen része lehetővé teszi vizualizációk definiálását az eszköz adatainak megtekintéséhez, valamint űrlapokat a kávégép kezeléséhez és vezérléséhez.
Miután létrehozott egy eszközsablont, csatlakoztathat egy szimulált eszközt. A szimulált eszköz telemetriát hoz létre, hogy tesztelhesse az alkalmazás viselkedését, mielőtt valódi eszközt csatlakoztat.
Itt láthatja, hogyan vannak megadva a telemetriai adatok, a tulajdonságok és a parancsdefiníciók az eszközmodellben, valamint az IoT-kompatibilis kávégép-példában az eszközök kezeléséhez és szabályozásához szükséges felhőtulajdonságokat és nézeteket.
Telemetria
A telemetria az eszközről streamelt adatok. Az eszköz képességeitől függően több telemetriatípust is hozzáadhat az eszközsablonhoz. A kávéfőző az érzékelők segítségével a levegő páratartalmáról és a víz hőmérsékletéről küld adatokat. Állapotinformációt is küld arról, hogy jelenleg főz-e, és mikor észleli a csésze.
Properties
Tulajdonságok használatával megoszthatja a konfigurációs adatokat az eszköz és az alkalmazás között.
Ebben a forgatókönyvben egy írható tulajdonsággal állítja be a víz optimális hőmérsékletét, és ezt továbbítja a kávégépnek. Amikor frissíti az írható tulajdonságot az IoT Centralban, a beállítás függőben lévőként lesz megjelölve a felhasználói felületen, amíg az eszköz meg nem erősíti, hogy válaszolt a beállítás módosítására.
Csak olvasható tulajdonságok használatával engedélyezheti, hogy egy eszköz értékeket küldjön az alkalmazásnak. A csak olvasható tulajdonságokat csak az eszköz módosíthatja. Ebben a forgatókönyvben egy írásvédett eszköztulajdonságot Device Warranty Expired
határoz meg az eszközsablonban. A Device Warranty Expired
mező üres marad, amíg a kávégép nem csatlakozik az IoT Centralhoz. A csatlakozást követően a kávégép elküldi a jótállás állapotát az alkalmazásnak.
A felhőtulajdonságok az eszközhöz társított eszköz metaadatai. A felhőtulajdonságok használatával rögzítheti az eszköz adatait az IoT Central-alkalmazásban. Ebben az esetben a felhőtulajdonságokkal rögzíti az ideális vízhőmérséklet-tartományt a kávégép számára. A felhőtulajdonságok az IoT Central alkalmazásban vannak tárolva, és nem szinkronizálódnak az eszközzel.
Parancsok
Parancsokkal távolról kezelheti az eszközt az alkalmazásból. Közvetlenül futtathat parancsokat az eszközön a felhőből az eszköz vezérléséhez. Ebben az esetben a kávégépen futtatott parancsokkal állítja be a karbantartást vagy a kávéfőzés megkezdését.
Nézetek
Testreszabhatja az IoT Central felhasználói felületét, amelyen megjelennek az eszközsablonhoz tartozó kezelési és figyelési eszközök. Ebben a forgatókönyvben egy nézetet hoz létre az eszköztől érkező telemetriai értékek ábrázolásához, majd létrehoz egy űrlapot az eszköztulajdonságok kezeléséhez.
Csatlakozás kávéfőző modell
Az eszközmodell az eszközsablon azon része, amely meghatározza az eszköz által támogatott telemetriát, tulajdonságokat és parancsokat. Az eszközképesség-modellt egy JSON-fájlban tárolhatja, és importálhatja az IoT Centralba. A következő JSON-fájl a csatlakoztatott kávéfőző eszközképesség-modellje.
{
"@id": "dtmi:com:example:ConnectedCoffeeMaker;1",
"@type": "Interface",
"contents": [
{
"@type": ["Telemetry", "NumberValue", "Temperature"],
"displayName": {
"en": "Water Temperature"
},
"name": "WaterTemperature",
"schema": "double",
"unit": "degreeCelsius",
"decimalPlaces": 1,
"maxValue": 100,
"minValue": 86
},
{
"@type": ["Telemetry", "NumberValue", "Humidity"],
"displayName": {
"en": "Air Humidity"
},
"name": "AirHumidity",
"schema": "integer",
"unit": "percent",
"maxValue": 100,
"minValue": 20
},
{
"@type": ["Telemetry", "State"],
"displayName": {
"en": "Brewing"
},
"name": "Brewing",
"schema": {
"@type": "Enum",
"enumValues": [
{
"displayName": {
"en": "Brewing"
},
"enumValue": "brewing",
"name": "Brewing"
},
{
"displayName": {
"en": "Not Brewing"
},
"enumValue": "notbrewing",
"name": "NotBrewing"
}
],
"valueSchema": "string"
}
},
{
"@type": ["Telemetry", "State"],
"displayName": {
"en": "Cup Detected"
},
"name": "CupDetected",
"schema": {
"@type": "Enum",
"enumValues": [
{
"displayName": {
"en": "Detected"
},
"enumValue": "detected",
"name": "Detected"
},
{
"displayName": {
"en": "Not Detected"
},
"enumValue": "notdetected",
"name": "NotDetected"
}
],
"valueSchema": "string"
}
},
{
"@type": ["Property", "NumberValue", "Initialized", "Temperature"],
"displayName": {
"en": "Optimal Temperature"
},
"name": "OptimalTemperature",
"schema": "double",
"unit": "degreeCelsius",
"writable": true,
"decimalPlaces": 1,
"initialValue": 98,
"maxValue": 100,
"minValue": 86
},
{
"@type": ["Property", "BooleanValue"],
"displayName": {
"en": "Device Warranty Expired"
},
"name": "DeviceWarrantyExpired",
"schema": "boolean",
"writable": false
},
{
"@type": ["Property", "Cloud", "NumberValue", "Temperature"],
"displayName": {
"en": "Coffee Maker Min Temperature"
},
"name": "CoffeeMakerMinTemperature",
"schema": "double",
"unit": "degreeCelsius",
"decimalPlaces": 1,
"maxValue": 92,
"minValue": 88
},
{
"@type": ["Property", "Cloud", "NumberValue", "Temperature"],
"displayName": {
"en": "Coffee Maker Max Temperature"
},
"name": "CoffeeMakerMaxTemperature",
"schema": "double",
"unit": "degreeCelsius",
"decimalPlaces": 1,
"maxValue": 99,
"minValue": 96
},
{
"@type": "Command",
"commandType": "synchronous",
"displayName": {
"en": "Set Maintenance Mode"
},
"name": "SetMaintenanceMode"
},
{
"@type": "Command",
"commandType": "synchronous",
"displayName": {
"en": "Start Brewing"
},
"name": "StartBrewing"
}
],
"displayName": {
"en": "Connected Coffee Maker"
},
"@context": [
"dtmi:iotcentral:context;2",
"dtmi:dtdl:context;2"
]
}
- A
@id
mező a modell digitális ikermodell-azonosítója (DTMI) formátumadtmi:<domain>:<unique-model-identifier>;<model-version-number>
. - A
@type
leírt információtípust azonosítja. Például"@type": "Interface"
a Digital Twin Definition Language (DTDL) entitás típusának jelzésére szolgál. Ebben az esetben az entitás egyInterface
. - A
contents
mező attribútumdefiníciók tömbje. Minden attribútumnak tartalmaznia kell egy azonosítót@type
az általa leírt felületi információk azonosításához. Ebben az esetben aTelemetry
,Property
ésCommand
objektumok a csatlakoztatott kávéfőző funkcióit írják le. - A
displayName
mező egy olyan objektum, amely a felületnek vagy entitásnak különböző nyelveken olvasható nevet ad. Ebben az esetben a felületdisplayName
Connected Coffee Maker
angol nyelvű. - A
@context
mező annak a DTDL-környezetnek a megadására szolgál, amelyben az interfész vagy az entitás definiálva van. Ebben az esetben a környezetekre ésdtdl
aiotcentral
környezetekre hivatkozik. - A
name
mező aTelemetry
,Property
vagyCommand
. - Az egyes telemetriamezők méréseket vagy eseményeket jelölnek, és gyakran használják az eszközérzékelők méréseinek leírására. Például
Water Temperature
van egyschema
ésdouble
egyunit
.degreeCelsius
AdecimalPlaces
,maxValue
ésminValue
a mezők további részleteket ad meg a telemetriai adatokról. - Minden tulajdonságmező egy entitás állapotát jelöli. Például logikai típusú,
Device Warranty Expired
és az állapotát a csatlakoztatott eszköz igaz vagy hamis értékként állíthatja be. - A
writable
mező azt határozza meg, hogy a tulajdonság beállítható-e az IoT Central-alkalmazásból. Ebben az esetbenOptimal Temperature
az alkalmazás felhasználói felületén állítható be, deDevice Warranty Expired
nem. - Ha egy tulajdonság szerepel
Cloud
a típusok listájában, akkor az egy felhőtulajdonság. Ebben az esetben felhőtulajdonságokCoffee Maker Min Temperature
Coffee Maker Max Temperature
. - Minden parancsmező egy olyan műveletet ír le, amelyet az eszköz végrehajthat. Például egy parancs,
Start Brewing
amelyet a felhő elküldhet az eszköznek a kávéfőzés megkezdéséhez. - A
commandType
mező azt határozza meg, hogy egy parancs szinkron -e (a válaszra vár), vagy aszinkron (nem várja meg a választ).