Можно ли применить [Цепочка правил] после [Конвертер данных]? - PullRequest
0 голосов
/ 22 января 2020

В настоящее время я работаю над заказом C, используя ThingsBoard PE. Наши необработанные данные содержат [Актив] [Атрибуты].

Поток данных: [IoT cloud] --https webhook carry raw data--> [ThingsBoard PE HTTP INTEGRATION] --uplink--> [ThingsBoard PE Data Converter]

Мой вопрос: возможно ли применить [Цепь правил] после [ThingsBoard PE Data Converter]? Следовательно, устройство может автоматически создавать отношения с [Активом] с помощью [Атрибута], а не [AssetName].

Пример данных после процесса преобразования данных:

{
    "deviceName": "ABC",
    "deviceType": "temperature",
    "attributes": {
        "asset_id": 6 // <-- the id is used in asset attribute
    },
    "telemetry": {
        "temperature": 39.43
    }
}

1 Ответ

0 голосов
/ 24 января 2020

Отвечая на два ваших отдельных вопроса:

возможно ли применить [Цепь правил] после [Преобразователь данных ThingsBoard PE]?

Да, это возможно. Как только ваши данные успешно интегрированы и вы получаете их, вы можете получить к ним доступ с помощью [Input] узла правил (зеленый по умолчанию, который всегда присутствует при создании правила) и направить его на любой другой узел, который вам нужен.

Таким образом, устройство может автоматически создавать отношения с [Активом] с помощью [Атрибут], а не [Имя-актива].

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

Версия PE уже имеет Узел создания отношений . Тем не менее, кажется, что он не может делать то, что вы ищете (не имеет возможности указать свой идентификатор актива).

Тем не менее, у вас есть два варианта:

  • Создайте пользовательский узел правил , который делает то, что вы хотите. Для этого попробуйте заглянуть на страницу Thingsboard Rule Node Development . Вы можете использовать узел создания отношений в качестве базы и работать оттуда. Это может быть более длительным решением, чем выполнение ...

  • Обогащите метаданные вашего входящего сообщения, добавив желаемый атрибут . Узел «Создать связь» позволяет вам использовать переменные в метаданных вашего сообщения в шаблонах «Имя» и «Тип», как видно из снимка экрана, который я взял с этого узла:

Node Screenshot

Это позволяет нам обойти то, что вы хотите сделать: Добавить Узел преобразования скрипта , который добавляет attributes.asset_id к метаданным , например как metadata.asset_id, так что вы можете использовать его как ${asset_id} в своих шаблонах Name и Type.

Например, ваш Transform() метод такого узла преобразования скриптов должен выглядеть примерно так:

function Transform(msg, metadata, msgType){
    //assumming your desired id is msg.attributes.asset_id, add it to the metadata
    metadata.asset_id = msg.attributes.asset_id;
    //return the message, in your case to the Create Relation Node
    return {msg: msg, metadata:metadata, msgType:msgType};
}

Наконец, ваше правило должно быть подключено так:

[Input] -> [Script Node] -> [Create Relation Node] -> [... все, что вам нравится]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...