Общие сведения о схеме модели устройства
С помощью имитированных устройств в решении для удаленного мониторинга можно проверить его реакцию на событие. Решение для удаленного мониторинга включает в себя службу моделирования устройств для запуска имитированных устройств. При развертывании решения для удаленного мониторинга коллекция имитированных устройств подготавливается автоматически. Вы можете создать имитированные устройства или настроить имеющиеся.
В этой статье описана схема модели устройства, которая определяет возможности имитированного устройства и его реакцию на событие. Модель устройства хранится в JSON-файле.
Эта схема моделей устройств предназначена только для имитированных устройств, размещенных в службе моделирования устройств. Если вам требуется создать реальное устройство, см. статью Подключение устройства к акселератору решения для удаленного мониторинга (Node.js).
В приведенных ниже статьях описаны связанные сведения.
- Статья Implement the device model behavior (Реакция модели устройства на событие) содержит сведения о файлах JavaScript, используемых для того, чтобы имитированное устройство реагировало на событие.
- Статья Create a new simulated device (Создание имитированного устройства) объединяет все сведения, а также описывает процедуру развертывания нового типа имитированного устройства в решение.
Вы узнаете, как выполнять следующие задачи:
- использование JSON-файла для определения модели имитированного устройства;
- указание свойств имитированного устройства;
- указание данных телеметрии, отправляемых имитированным устройством;
- указание методов передачи из облака на устройство, на которые отвечает устройство.
Части схемы модели устройства
Каждая модель устройства, например chiller или truck, определяет тип устройства, которое служба моделирования может имитировать. Все модели устройства хранятся в JSON-файле со следующей схемой верхнего уровня:
Вы можете просмотреть файлы схемы для стандартных имитированных устройств в папке devicemodels на GitHub.
В следующей таблице описаны записи схемы верхнего уровня:
Запись схемы Описание SchemaVersion Версия схемы всегда будет 1.0.0 . Она соответствует формату этого файла. Id Уникальный идентификатор для модели устройства. Version Определяет версию модели устройства. Name Понятное имя модели устройства. Description Описание модели устройства. Protocol Протокол подключения, который использует устройство. Возможные значения: AMQP , MQTT и HTTP .
В следующих разделах описаны другие разделы схемы JSON.
Simulation
В разделе Simulation определите внутреннее состояние имитированного устройства. Все значения телеметрии, отправленные устройством, должны быть частью состояния устройства.
Определение состояния устройства состоит из двух элементов:
- InitialState определяет начальные значения для всех свойств объекта состояния устройства.
- Script указывает файл JavaScript, который выполняется по расписанию, чтобы обновить состояние устройства. Вы можете использовать файл сценария, чтобы создать случайные значения телеметрии, отправленные устройством.
Дополнительные сведения о файле JavaScript, который обновляет объект состояния устройства, см. в статье Implement the device model behavior (Реакция модели устройства на событие).
В следующем примере приводится определение объекта состояния устройства для имитированного устройства Chiller:
Служба моделирования запускает файл chiller-01-state.js каждые 5 секунд, чтобы обновить состояние устройства. Вы можете просмотреть файлы JavaScript для стандартных имитированных устройств в папке сценариев на GitHub. Обычно эти файлы JavaScript имеют суффикс -state. Это позволяет отличить их от файлов, которые реализуют метод реакции на события.
Свойства
Раздел Properties схемы определяет значения свойств, которые устройство передает в решение. Пример.
При запуске решения оно отправляет запросы во все имитированные устройства на создание списка значений Type для использования в пользовательском интерфейсе. Решение использует свойства Latitude и Longitude для добавления расположения устройства к карте на панели мониторинга.
Телеметрия
Массив Telemetry выводит список всех типов телеметрии, которые имитированное устройство отправляет в решение.
В следующем примере сообщение телеметрии JSON отправляется каждые 10 секунд с данными floor , vibration и temperature , собранными c датчиков лифта.
MessageTemplate определяет структуру сообщения JSON, отправленного имитированным устройством. Заполнители в MessageTemplate используют синтаксис $ , где NAME — это ключ объекта состояния устройства. Строки следует заключить в кавычки, а числа — нет.
MessageSchema определяет схему сообщения, отправленного имитированным устройством. Схема сообщения также публикуется в Центр Интернета вещей. Это позволяет серверным приложениям повторно использовать сведения для интерпретации входящей телеметрии.
Сейчас вы можете использовать только схемы сообщений JSON. Поля, перечисленные в схеме, могут быть следующих типов:
- Object — можно сериализовать с помощью JSON.
- Binary — можно сериализовать с помощью Base64.
- текст
- Логическое
- Целое число
- Double
- Дата и время
Чтобы отправить сообщения телеметрии с разными интервалами, добавьте несколько типов телеметрии к массиву Telemetry . В следующем примере данные температуры и влажности отправляются каждые 10 секунд, а сведения о состоянии освещения — каждую минуту.
CloudToDeviceMethods
Имитированное устройство может отвечать на вызовы методов передачи информации из облака на устройство, поступающих из Центра Интернета вещей. Раздел CloudToDeviceMethods в файле схемы модели устройства позволяет выполнить следующие действия:
- Определить методы, на которые имитированное устройство может отвечать.
- Указать файл JavaScript, который содержит логику для выполнения.
Имитированное устройство отправляет список поддерживаемых методов в Центр Интернета вещей.
Дополнительные сведения о файле JavaScript, который реализует реагирование устройства, см. в статье Implement the device model behavior (Реакция модели устройства на событие).
В следующем примере указаны три поддерживаемых метода и файлы JavaScript, которые их реализуют.
Вы можете просмотреть файлы JavaScript для стандартных имитированных устройств в папке сценариев на GitHub. Обычно эти файлы JavaScript имеют суффикс -method. Это позволяет отличить их от файлов, которые реализуют поведение состояния.
Дальнейшие действия
В этой статье описано, как создать пользовательскую модель имитированного устройства. Из этой статьи вы узнали, как выполнять следующие задачи:
- использование JSON-файла для определения модели имитированного устройства;
- указание свойств имитированного устройства;
- указание данных телеметрии, отправляемых имитированным устройством;
- указание методов передачи из облака на устройство, на которые отвечает устройство.
Теперь, когда вы узнали о схеме JSON, предлагаем ознакомиться со статьей Реализация режима работы модели устройства.
Дополнительные сведения для разработчиков о решении для удаленного мониторинга см. в следующих источниках: