A kávégép eszközsablonjának definiálása

Befejeződött

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átuma dtmi:<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 egy Interface.
  • 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 a Telemetry, Propertyés Command 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ület displayNameConnected 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 és dtdl a iotcentral környezetekre hivatkozik.
  • A name mező a Telemetry, Propertyvagy Command.
  • 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 egy schema és double egyunit.degreeCelsius A decimalPlaces, maxValueés minValue 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 esetben Optimal Temperature az alkalmazás felhasználói felületén állítható be, de Device 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ágok Coffee Maker Min TemperatureCoffee 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).

Tesztelje tudását

1.

Hány telemetriai képesség van definiálva a Csatlakozás kávéfőző modellben?

2.

Igaz vagy hamis: Az optimális hőmérséklet írható tulajdonság.

3.

Igaz vagy hamis: a csatlakoztatott kávéfőző a StartBrewing paranccsal távolról indíthatja el a főzést.