Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Шаблон устройства Azure IoT Central — это схема, которая определяет характеристики и поведение типа устройства, которое подключается к приложению. Например, шаблон устройства определяет данные телеметрии, которые отправляет устройство, чтобы платформа IoT Central могла создавать визуализации, использующие правильные единицы и типы данных. Данные телеметрии, соответствующие определению шаблона устройства, называются модельными данными . Данные телеметрии, которые не соответствуют определению шаблона устройства, называются немоделированные данные.
ПО для сборки решений добавляет шаблоны устройств в приложение IoT Central. Разработчик устройства пишет код для устройства, который реализует поведение, определенное в шаблоне устройства. Дополнительные сведения о том, как создать шаблон устройства или создать его автоматически, см. в статье "Создание шаблона устройства" в приложении Azure IoT Central. Дополнительные сведения о данных, которыми устройство обменивается с IoT Central, можно найти в разделе Телеметрия, свойства и полезные данные команд.
Шаблон устройства включает следующие разделы.
-
Модель устройства. Эта часть шаблона устройства определяет, как устройство взаимодействует с вашим приложением. Каждая модель устройства имеет уникальный идентификатор. Разработчик устройства реализует поведение, определенное в модели.
- Корневой компонент. У каждой модели устройства есть корневой компонент. Интерфейс корневого компонента описывает возможности, характерные для модели устройства.
- Компоненты. Модель устройства может включать компоненты в дополнение к корневому компоненту для описания возможностей устройства. Каждый компонент имеет интерфейс, описывающий возможности компонента. Интерфейсы компонентов можно повторно использовать в других моделях устройств. Например, несколько моделей телефонных устройств могут использовать один и тот же интерфейс камеры.
- Унаследованные интерфейсы. Модель устройства содержит один или несколько интерфейсов, расширяющих возможности корневого компонента.
- Просмотры. Эта часть шаблона устройства позволяет разработчику решений определять визуализации для просмотра данных с устройства и формы для управления устройством и его контроля. Представления не влияют на код, который разработчик устройства пишет для реализации модели устройства.
Назначение устройства шаблону устройства
Чтобы устройство взаимодействовалось с IoT Central, оно должно быть назначено шаблону устройства. Это назначение выполняется одним из четырех способов:
- При регистрации устройства на странице "Устройства" можно определить шаблон, который следует использовать.
- При массовом импорте списка устройств можно выбрать шаблон устройства для всех устройств в списке.
- Вы можете вручную назначить неназначенное устройство шаблону устройства после его подключения.
- Вы можете автоматически назначить устройство шаблону устройства, отправив идентификатор модели при первом подключении устройства к приложению.
Автоматическое назначение
IoT Central может автоматически назначать устройство шаблону устройства при подключении устройства. Устройство должно отправлять идентификатор модели при подключении. IoT Central использует идентификатор модели для идентификации или создания шаблона устройства для этой конкретной модели устройства. Процесс обнаружения работает следующим образом.
Если шаблон устройства уже опубликован в приложении IoT Central, устройство назначается шаблону устройства.
Если шаблон устройства еще не опубликован в приложении IoT Central, IoT Central ищет модель устройства в общедоступном репозитории моделей устройств. Если IoT Central находит модель, приложение использует ее для создания базового шаблона устройства.
Если IoT Central не находит модель в общедоступном репозитории моделей, устройство помечается как unassigned. Оператор может:
- Создайте шаблон устройства для устройства, а затем перенесите неназначенные устройства в новый шаблон устройства.
- Автоматическое создание шаблона устройства на основе данных, отправляемых устройством.
На следующем снимке экрана показано, как просмотреть идентификатор модели для шаблона устройства в IoT Central. В шаблоне устройства выберите компонент, а затем выберите Редактировать идентификатор:
Модель термостата можно просмотреть в общедоступном репозитории моделей. Определение идентификатора модели выглядит следующим образом:
"@id": "dtmi:com:example:Thermostat;1"
Используйте следующую нагрузку DPS, чтобы назначить устройство шаблону устройства.
{
"modelId":"dtmi:com:example:TemperatureController;2"
}
Дополнительные сведения о полезной нагрузке DPS см. в примере кода, используемого в Руководство: Создание и подключение клиентского приложения к вашему приложению Azure IoT Central.
Модель устройства
Модель устройства определяет, как устройство взаимодействует с приложением IoT Central. Разработчик устройства должен убедиться, что устройство реализует поведение, определенное в модели устройства, чтобы платформа IoT Central могла вести мониторинг устройства и управлять им. Модель устройства состоит из одного или нескольких интерфейсов, и каждый интерфейс может определять коллекцию типов телеметрии, свойств устройства и команд. Разработчик решения может:
- Импортируйте JSON-файл, определяющий полную модель устройства или отдельный интерфейс в шаблон устройства.
- Используйте веб-интерфейс в IoT Central для создания или изменения модели устройства.
Примечание.
IoT Central принимает любой допустимый пакет данных JSON с устройства, но она может использовать данные для визуализаций только в том случае, если они соответствуют определению в модели устройства. Вы можете экспортировать данные, которые не соответствуют определению, см. раздел "Экспорт IoT данных в облачные целевые назначения с использованием Blob Storage".
Дополнительные сведения об изменении модели устройства см. в разделе Изменение существующего шаблона устройства.
Разработчик решения также может экспортировать JSON-файл из шаблона устройства, содержащего полную модель устройства или отдельный интерфейс. Разработчик устройства может использовать этот документ JSON, чтобы понять, как устройство должно взаимодействовать с приложением IoT Central.
JSON-файл, определяющий модель устройства, использует язык определения цифровых двойника (DTDL) версии 2. Для IoT Central требуется, чтобы интерфейсы для модели устройства размещались в одном JSON-файле, а не в нескольких. Модели, созданные в IoT Central, определяют контекст dtmi:iotcentral:context;2 , указывающий, что модель была создана в IoT Central:
"@context": [
"dtmi:iotcentral:context;2",
"dtmi:dtdl:context;2"
]
Дополнительные сведения о моделях DTDL см. в руководстве по моделированию IoT Plug and Play.
Примечание.
IoT Central определяет некоторые расширения на языке DTDL версии 2. Для получения дополнительной информации см. расширение IoT Central.
Свойства
По умолчанию свойства доступны только для чтения. Свойства только для чтения означают, что устройство сообщает обновления значений свойств в ваше приложение IoT Central. Приложение IoT Central не может установить значение свойства, доступного только для чтения.
Свойство в интерфейсе можно также пометить как доступное для записи. Устройство может получать обновления записываемых свойств из вашего приложения IoT Central и отправлять обновления значений этих свойств вашему приложению.
Устройства не нужно подключать для задания значений свойств. Обновленные значения передаются при следующем подключении устройства к приложению. Это поведение применимо как к свойствам, доступным только для чтения, так и к перезаписываемым.
Не используйте свойства для отправки данных телеметрии с устройства. Например, свойство только для чтения, такое как temperatureSetting=80, должно означать, что температура устройства установлена на 80, и устройство пытается достичь этой целевой температуры или поддерживать её.
Для свойств, доступных для записи, приложение устройства возвращает код требуемого состояния, версию и описание, чтобы указать, получило ли оно значение свойства и применило ли его.
Облачные свойства
Вы также можете добавить свойства облака в корневой компонент модели. Облачные свойства позволяют указать все метаданные устройства для хранения в приложении IoT Central. Значения облачных свойств хранятся в приложении IoT Central и никогда не синхронизируются с устройством. Свойства облака не влияют на код, который разработчик устройства пишет для реализации модели устройства.
Разработчик решения может добавить свойства облака в представления и формы устройства вместе со свойствами устройства, чтобы позволить оператору управлять устройствами, подключенными к приложению. Разработчик решения также может использовать свойства облака как часть определения правила, чтобы сделать пороговое значение доступным для изменения оператором.
В следующем фрагменте кода DTDL показан пример определения облачного свойства:
{
"@id": "dtmi:azureiot:Thermostat:CustomerName",
"@type": [
"Property",
"Cloud",
"StringValue"
],
"displayName": {
"en": "Customer Name"
},
"name": "CustomerName",
"schema": "string"
}
Телеметрия
IoT Central позволяет просматривать данные телеметрии на представлениях и диаграммах устройства, а также использовать правила для активации действий при достижении пороговых значений. IoT Central использует сведения в модели устройства, такие, как типы данных, единицы и отображаемые имена, чтобы определить способ отображения значений телеметрии. Вы также можете отображать значения телеметрии на панелях мониторинга приложения и личных панелях мониторинга.
Функцию экспорта данных IoT Central можно использовать для потоковой передачи телеметрии в другие назначения, такие как хранилище или Центры событий.
Команды
По умолчанию команда должна выполняться в течение 30 секунд, а при получении команды устройство должно быть подключено. Если устройство отвечает вовремя или устройство не подключено, команда завершается ошибкой.
Команды могут иметь параметры запроса и возвращать ответ.
Автономные команды
Если устройство в настоящее время находится вне сети, можно выбрать команду очереди, включив параметр Помещать в очередь, если вне сети в шаблоне устройства.
Оффлайн команды — это односторонние уведомления для устройства от вашего решения. Автономные команды могут иметь параметры запроса, но не возвращать ответ.
Примечание.
Автономные команды помечаются как durable, если вы экспортируете модель в формате DTDL.
Автономные команды используют сообщения формата облако-устройство центра IoT для отправки команд и полезных данных на устройство.
Полезная нагрузка сообщения, полученного устройством, представляет собой необработанное значение параметра. Пользовательское свойство с именем method-name хранит имя команды IoT Central. В следующей таблице показаны примеры полезной нагрузки.
| Схема запроса IoT Central | Пример полезных данных, получаемых устройством |
|---|---|
| Нет параметра запроса | @ |
| Двойной | 1.23 |
| Строка | sample string |
| Объект | {"StartTime":"2021-01-05T08:00:00.000Z","Bank":2} |
В следующем фрагменте кода из модели устройства показано определение команды. Команда имеет параметр объекта с полем даты и времени и перечислением:
{
"@type": "Command",
"displayName": {
"en": "Generate Diagnostics"
},
"name": "GenerateDiagnostics",
"request": {
"@type": "CommandPayload",
"displayName": {
"en": "Payload"
},
"name": "Payload",
"schema": {
"@type": "Object",
"displayName": {
"en": "Object"
},
"fields": [
{
"displayName": {
"en": "StartTime"
},
"name": "StartTime",
"schema": "dateTime"
},
{
"displayName": {
"en": "Bank"
},
"name": "Bank",
"schema": {
"@type": "Enum",
"displayName": {
"en": "Enum"
},
"enumValues": [
{
"displayName": {
"en": "Bank 1"
},
"enumValue": 1,
"name": "Bank1"
},
{
"displayName": {
"en": "Bank2"
},
"enumValue": 2,
"name": "Bank2"
},
{
"displayName": {
"en": "Bank3"
},
"enumValue": 3,
"name": "Bank3"
}
],
"valueSchema": "integer"
}
}
]
}
}
}
Если включить параметр Очередь для автономной работы в пользовательском интерфейсе шаблона устройства для команды в предыдущем фрагменте, то сообщение, которое получит устройство, будет содержать следующие свойства:
| Имя свойства | Пример значения |
|---|---|
custom_properties |
{'method-name': 'GenerateDiagnostics'} |
data |
{"StartTime":"2021-01-05T08:00:00.000Z","Bank":2} |
Представления
Разработчик решения создает представления, которые позволяют операторам отслеживать подключенные устройства и управлять ими. Представления являются частью шаблона устройства, поэтому представление связано с конкретным типом устройства. Представление может содержать следующее.
- Диаграммы для построения данных телеметрии.
- Плиточный интерфейс для просмотра свойств устройства, доступных только для чтения.
- Интерфейс плиток, позволяющий оператору редактировать свойства устройства, доступные для записи.
- Плиточный интерфейс, позволяющий оператору изменять свойства облака.
- Плитки, позволяющие оператору вызывать команды, включая команды, которым требуется нагрузка.
- Плитки для отображения меток, изображений или текста с форматированием Markdown.
Следующий шаг
Теперь, когда вы узнали о шаблонах устройств, рекомендуемый следующий шаг — ознакомиться с телеметрией, свойствами и данными команд, чтобы узнать больше о данных, которыми устройство обменивается с IoT Central.