Активы, агенты и атрибуты
Версия: 1.26.0
Активы
Актив — это цифровое представление физического или логического Thing (это Thing в Интернете вещей). Ресурс всегда привязан к области, поэтому данные не передаются между сферами; каждая сфера считается изолированной. Активы сохраняются. OpenRemote сохраняет текущий статус вашего актива в своей базе данных и управляет им с помощью правил и потоков. В совокупности это называется контекстом вашей системы OpenRemote.
Атрибуты
Каждый актив может иметь один или несколько атрибутов, которые содержат значение; значение может быть любого типа, который может быть представлен как JSON. Имя атрибута используется для перекрестной ссылки на него с дескриптором атрибута (см. ниже), который предоставляет информацию о схеме атрибута.
Точки данных
В дополнение к своему текущему значению атрибут может хранить исторические точки данных.
Это можно включить, установив метаэлемент storeDataPoints для атрибута. По умолчанию история хранится в течение одного месяца, но это можно настроить с помощью метаэлемента dataPointsMaxAgeDays.
После включения на странице ресурса в пользовательском интерфейсе менеджера вы увидите панель «История» и сможете выбрать этот атрибут из раскрывающегося меню. При этом отображается линейный график значений атрибутов за настраиваемый период времени.
Это также позволяет использовать атрибут в графиках на информационных панелях Insights.
Прогнозируемые точки данных
Атрибут также может хранить значения, которые атрибут будет принимать в будущем, то есть прогнозируемые точки данных.
Это можно включить, установив метаэлемент hasPredictedDataPoints для атрибута.
Прогнозируемые точки данных автоматически удаляются по истечении их времени (программа очистки выполняется один раз в день).
Если дополнительно установить для атрибута метаэлемент applyPredictedDataPoints, то прогнозируемое значение автоматически применяется в качестве текущего значения при совпадении времени.
Элементы конфигурации
Помимо наличия значения, атрибут может иметь элементы конфигурации (называемые в коде «метаэлементами»), которые
управляют поведением атрибута (свяжите его с агентом для чтения/записи из/во внешние системы, свяжите его с другим
атрибутом, настройте хранилище исторических значений и многое другое). Каждый атрибут может иметь один или несколько
метаэлементов, которые по существу представляют собой хорошо известное именованное значение (метаданные), которое можно
использовать в различных частях системы для управления поведением связанного атрибута (например, метаэлемент
agentLink используется для подключения атрибута к агенту/протоколу).
Агенты
Агенты — это особый тип ресурсов, которые связывают внешние службы/устройства с вашей системой OpenRemote через протоколы (HTTP/TCP/...). Сам агент хранит параметры конфигурации в качестве атрибутов, и эта конфигурация передается экземпляру соответствующего протокола; между агентом и экземпляром протокола существует связь «один к одному». Подробнее об агентах
Дерево активов
Активы могут быть структурированы в виде иерархического дерева, чтобы определить некоторую логическую иерархию для конкретного варианта использования (например, в городе есть здания, этажи, датчики присутствия).
Модель типа актива
Модель типов активов можно адаптировать к предметной области конкретного проекта, например к энергетике или умному городу. Сейчас модель актива настраивается в Java-коде платформы. Доступную экземпляру модель можно запросить через HTTP API модели активов.
Модель актива имеет следующие типы и структуру:
- Информация о типе актива
- Дескриптор актива (уникальный в пределах данного экземпляра OpenRemote)
- Дескриптор(ы) атрибута. Список дескрипторов атрибутов, применимых к этому типу актива. Данное имя атрибута является уникальным в пределах данной иерархии типа актива.
- Имена дескрипторов мета-элементов. - Список имен дескрипторов мета-элементов, применимых к этому типу актива, каждое из которых уникально в пределах данного экземпляра OpenRemote и может использоваться для поиска фактического дескриптора мета-элемента.
- Имена дескрипторов значений. - Список имен дескрипторов значений, применимых к этому типу актива, каждое из которых уникально в пределах данного экземпляра OpenRemote и может использоваться для поиска фактического дескриптора значения.
Информация о типе актива
Информация о типе актива содержит все дескрипторы, применимые для данного типа актива, и может рассматриваться как определение схемы, которое затем используется для целей проверки и создания пользовательского интерфейса; базовым типом актива является Thing, который не имеет ограничений атрибутов, но может использоваться как универсальный актив. Параметры зависят от типов ресурсов, загруженных в ваше развертывание. Вы можете вызвать конечную точку модели активов Swagger работающей системы, чтобы получить всю информацию о типах активов (см. https://YOUR_DEPLOYMENT/swagger/#/Asset%20Model).
Дескриптор актива
Дескриптор актива определяет следующую информацию для конкретного типа актива:
name- это должно быть уникально в пределах данного экземпляра OpenRemote и должно быть простым именем класса Java.icon— дополнительный значок, который может использоваться пользовательским интерфейсом внешнего интерфейса для представления ресурсов этого типа на картах и т. д.colour— дополнительный цвет, который может использоваться пользовательским интерфейсом внешнего интерфейса для представления ресурсов этого типа на картах и т. д.
Дескриптор атрибута
Дескриптор атрибута имеет имя, которое ссылается на имя атрибута, и оно должно быть уникальным в пределах иерархии типов активов. Оно также содержит следующую информацию:
type- имя дескриптора типа значения, описывающего тип данных атрибута.constraints- ограничения значения, которые должны быть применены к значению (размер/длина, регулярное выражение, не пустое и т.д.)format— правила форматирования, которые будут применяться при преобразовании значения в строковое представление для целей пользовательского интерфейса (количество десятичных знаков, логическое значение вкл/выкл и т. д.)units— массив строк, составляющих единицы измерения для этого атрибута, на основе HTML5 Intl API, но с более широкой поддержкой единиц измерения (например,["kilo", "metre", "per", "hour"]→km/h) (см. здесь для получения полного списка стандартных типов единиц измерения, которые поддерживает наша система — можно использовать дополнительные, но необходимо выполнить переводы пользовательского интерфейса). быть предоставлены для их поддержки). Символы валют также поддерживаются путем предоставления кода валюты в верхнем регистре, как определено вISO 4217 currency codes. В зависимости от выбранного вами языка система затем либо добавляет символ валюты в начало (£0.15/kWh), либо добавляет его (0.15€/kWh).meta— список метаэлементов по умолчанию (элементов конфигурации), которые следует добавить при первом создании этого атрибута.optional— логический флаг, указывающий, должен ли атрибут присутствовать (это не контролирует, должен ли он иметь значение или нет — это обрабатывается ограничениями)
Дескриптор метаэлемента
Дескриптор мета-элемента имеет имя, которое ссылается на имя мета-элемента, и оно должно быть уникальным в пределах экземпляра OpenRemote, а также содержит следующую информацию:- type - то же, что и дескриптор атрибута выше.
constraints- то же, что и дескриптор атрибута выше.format- то же, что и дескриптор атрибута выше.units- то же, что и дескриптор атрибута выше.
Подробную информацию о доступных встроенных дескрипторах мета-элементов см. в здесь, для элементов конфигурации, специфичных для актива/агента, проверьте их страницы документации и/или документацию Javadoc.
Дескрипторы значений
Дескриптор значения имеет имя, которое должно быть уникальным в пределах экземпляра OpenRemote. В конечном итоге оно описывает форму данных для целей сериализации/десериализации, а также содержит следующую информацию:
type- простое имя класса типа данных, который описывает этот дескриптор значения.jsonType- тип типа данныхJSONarrayDimensions- число, указывающее, что значение представляет собой массив данных, где каждый элемент имеет тип, описанный этим дескриптором.constraints- то же, что и дескриптор атрибута выше.format- то же, что и дескриптор атрибута выше.units- то же, что и дескриптор атрибута выше.
Доступные встроенные дескрипторы значений перечислены в модели данных платформы.
Уведомление о лицензии: атрибуция документации OpenRemote