Словарь

Словари определяют коллекцию данных в формате "ключ–значение" или "ключ–набор значений".

Словари могут использоваться для отображения данных в виджетах в более удобном виде, а также для хранения данных, которые могут быть использованы в уведомлениях, условиях перехода состояний и триггерах состояний.

Поле Тип Описание

columns

Object

Названия столбцов (ключа и значений) словаря. Присутствует только словарях с именованными столбцами.

Определяется как объект JSON следующего вида:

"columns": {
    "0": {
        "name": "название ключа"
    },
    "1": {
        "name": "название первого значения"
    },
    "2": {
        "name": "название второго значения"
    },
    ...
},
Значения в объекте можно пропускать и оставлять столбцы неназванными.

content

String

Пары ключ-значение, где ключ – реальное значение метрики, а значение – отображаемое пользователю в виджетах.

contentType

String

Строка, которая содержит тип значения словаря. В текущей реализации, всегда содержит object.

description

String

Dictionary’s description.

id

String

Идентификатор словаря.

name

String

Название словаря.

Примеры

Одно значение

Ниже приведён пример словаря, который можно использовать, например, для датчика открытия двери.

Датчик присылает значения 0 и 1, которые соответствуют закрытию и открытию двери соответственно. При использовании словаря в виджете будут отображаться значения Closed и Open.

Значения и их представления указываются в виде JSON-строки в поле content.

{
    "name": "Door status",
    "content": "{\"0\":\"Closed\",\"1\":\"Open\"}",
    "description": "Transforms data from sensors in the human-readable form",
    "contentType": "object",
    "id": "66e40169029ed40f1105e599"
}

Набор значений

Ниже представлен пример словаря, у которого к каждому ключу относится несколько значений. В этом словаре, у каждого сотрудника определено имя, адрес почты, а также зашифрованный пароль.

Для создания зашифрованных полей, нужно задать нужному полю название, содержащее слово password в поле columns. Регистр строки не важен.

Также, для шифрования строк, необходимо включить шифрование в поле encrypt серверной конфигурации. Без этих настроек поля не будут шифроваться, система будет просто скрывать их значение в пользовательском интерфейсе отображения словаря.

{
    "name": "Employees",
    "content": "{\"1\":[\"John Doe\",\"jdoe@example.com\",\"<<crypt:8E993700B6C8BE0CD3849016AF2EF808:0ECB4A66999D516BF80AF91042C7D577>>\"],\"2\":[\"Jane Doe\",\"jdoe@example.com\",\"<<crypt:704FBEF78BF89315840EAF72E9581508:9E984544669ACF7DBCD6C9455360CEB8>>\"]}",
    "description": "List of employees",
    "contentType": "object",
    "columns":
        "0": {
            "name": "ID"
        },
        "1": {
            "name": "Name"
        },
        "2": {
            "name": "Email"
        },
        "0": {
            "name": "Password"
        },
    "id": "66e411bf029ed40f1105e59a"
},