# Узел Initiate Attribute

## Технический обзор и возможности

{% columns %}
{% column %}
В IoT Logic, **Initiate Attribute** узел преобразует показания устройства, создавая новые данные-атрибуты на основе входящей телеметрии. Этот узел позволяет манипулировать данными с помощью математических формул, переименовывать существующие параметры и выполнять побитовые операции с использованием [Navixy Expression Language](https://app.gitbook.com/s/tx3J5BxnWyPV0nP2xr0z/technologies/navixy-iot-logic-expression-language). Узел служит ключевым компонентом в потоке, позволяя обогащать данные перед отправкой в целевые системы.
{% endcolumn %}

{% column %}
![](https://2707447327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-27f841121a339221e8e1d543e6ccde8db193c395%2Fimage-20250404-083140.png?alt=media)
{% endcolumn %}
{% endcolumns %}

**Initiate Attribute** узел настраивается для каждого потока в интерфейсе платформы Navixy. Для конкретных вариантов синтаксиса и подробной справки по языку выражений см. [Navixy Expression Language](https://app.gitbook.com/s/tx3J5BxnWyPV0nP2xr0z/technologies/navixy-iot-logic-expression-language) в пользовательской документации.

<figure><img src="https://2707447327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-00bdf7c0a1b63de41d4ed076b0a5cdefcb943ccd%2FInitiate-attribute-in-flow.webp?alt=media" alt="Initiate attribute node in the flow workspace showing the node connected to other nodes in the flow"><figcaption></figcaption></figure>

### Интеграция в архитектуру потока

**Initiate Attribute** узел функционирует в архитектуре потока, обеспечивая возможности трансформации данных и предоставляя:

* Обработку сырой телеметрии в значимые бизнес-показатели
* Создание вычисляемых полей на основе нескольких значений параметров
* Преобразование единиц измерения (например, километры в мили)
* Вычисление разниц между текущими и предыдущими показаниями
* Генерацию временных аналитик поведения устройства

{% hint style="info" %}
Узел Initiate attribute требует как минимум один **Data Source** узел, подключенный к нему. Без входных подключений данных расчеты выполняться не будут.
{% endhint %}

### Возможности узла

Узел **Initiate Attribute** сам по себе предлагает:

* **Преобразование атрибутов данных**: Создавайте полностью новые атрибуты, применяя математические операции к тем, что поступают из источников данных
* **Преобразование единиц**: Конвертируйте единицы измерения (например, скорость из *km/h* в *mph*, или температуру из *°C* в *°F*)
* **Временные вычисления**: Сравнивайте текущие показания с предыдущими значениями для определения изменений
* **Манипуляции со временем**: Настраивайте метки времени для момента создания атрибута на устройстве и момента получения его сервером, чтобы избежать несоответствий временной шкалы и унифицировать форматы времени

## Параметры конфигурации

**Initiate Attribute** узел позволяет определить, как параметры устройства преобразуются в атрибуты, которые будут доступны для дальнейшей обработки в вашем потоке данных.

<figure><img src="https://2707447327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-2fd9360360cfe5c656aad630f4bcf1f57937f1ea%2Fimage-20250606-091235.png?alt=media" alt="Initiate attribute node configuration panel showing the list of attributes and the Add New Attribute button"><figcaption></figcaption></figure>

Рассмотрим, какие элементы использует этот узел и что вы можете настроить при работе с ним:

### Шаги конфигурации

{% stepper %}
{% step %}
Укажите **Имя узла**

Введите описательное имя, чтобы подчеркнуть назначение узла. Используйте имя, которое поможет вам идентифицировать выполняемые в этом узле вычисления; оно будет отображаться в диаграмме потока для удобной идентификации.
{% endstep %}

{% step %}
Переключите **Указать временные атрибуты**

если вам нужно манипулировать метками времени событий, это включает две дополнительные опции:

* **Время генерации**: Когда данные были созданы (по умолчанию `now()`)
* **Время сервера**: Когда данные были получены IoT Logic (по умолчанию `now()`)
  {% endstep %}

{% step %}
Определите **Имя атрибута**

Добавьте отличительный идентификатор атрибута.

* Это имя будет отображаться в [Data Stream Analyzer](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/data-stream-analyzer),
* Вы также можете использовать это имя для создания пользовательских датчиков в модуле [Tracking](https://www.navixy.com/docs/user/ru/guide/tracking) . Для этого узел, содержащий этот атрибут, должен быть подключен к **Initiate Attribute** По умолчанию выходной конечной точке **Default Output Endpoint** узлу.
  {% endstep %}

{% step %}
Определите **Формула**

Добавьте математические выражения для вычисления значений атрибутов.

* Используйте `value('parameter_name' 0, 'valid')` формат для ссылки на существующие параметры устройства.\
  **Примечание**. Нажмите ![image-20250605-115154.png](https://2707447327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-3ae9e98cb2dff10c13a5b062c8b6c161b9b038df%2Fimage-20250605-115154.png?alt=media) внутри **Формула** поля, чтобы открыть список доступных атрибутов и выбрать нужный. Он будет автоматически добавлен в поле в готовом к использованию формате. Подробнее о автозаполнении имен атрибутов см. [Автозаполнение имен атрибутов](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/flow-management/managing-attributes#autofill-attribute-names).
* Применяйте математические операции на основе [Navixy IoT Logic Expression Language](https://app.gitbook.com/s/tx3J5BxnWyPV0nP2xr0z/technologies/navixy-iot-logic-expression-language) для преобразования значений.
* Используйте различные значения индекса глубины для доступа к историческим значениям (по умолчанию 0).
  {% endstep %}

{% step %}
(необязательно) Нажмите **Добавить атрибут**

Откроется диалог конфигурации нового атрибута. Здесь вы можете создать новый атрибут данных, если требуется выполнить несколько вычислений в одном узле.
{% endstep %}
{% endstepper %}

Рассмотрим практический пример настройки атрибутов:

<figure><img src="https://2707447327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-15ef02a75483a563545b4d4ba662faaffd9abd67%2Fimage-20250606-090926.png?alt=media" alt="Iniatiate attribute node configuration window with node name Speed conversions, Attribute name KMPH to MPH and formula"><figcaption></figcaption></figure>

В этом примере мы создаем атрибут, который преобразует скорость из километров в мили в час, разделив параметр скорости CAN на 1.609.

Для подробностей о вычислениях для новых атрибутов см. [Примеры вычислений](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/flow-management/initiate-attribute-node/calculation-examples).

Также вы можете найти подробный пример использования вычисляемых атрибутов в потоке в разделе [Пример конфигурации потока → шаги 3 и 4](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/flow-configuration-example#flow-configuration-steps).

## Параметры отображения

Новые атрибуты, вычисленные внутри **Initiate Attribute** узла, можно мониторить так же, как и реальные атрибуты данных, поступающие от устройств, в **Data Stream Analyzer (DSA)** и модуле **Tracking** module.

Для получения дополнительной информации о параметрах отображения см. [Отображение новых вычисляемых атрибутов на платформе Navixy](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/flow-management/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform).

## Особенности потока данных

После настройки вашего **Initiate Attribute** узла убедитесь, что вы:

1. Подключили узел хотя бы к одному **Data Source** узлу в качестве входа
2. Подключили выход к **Выходной конечной точке** узлу, чтобы отправлять преобразованные данные

Внутри **Initiate Attribute** узла значения параметров обрабатываются согласно вашим выражениям каждый раз, когда устройство передаёт данные. На выходе вы получите:

* Все исходные параметры устройства
* Все вычисленные атрибуты с их значениями
* Обновлённые значения времени генерации и времени сервера согласно настройкам

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

## Часто задаваемые вопросы

#### Могу ли я ссылаться на не-актуальные значения в своих вычислениях?

Да. Используйте параметр индекса в функции value, чтобы получить доступ к историческим значениям. Например, `value('temperature', 1, 'valid')` ссылается на предыдущие допустимое значение параметра temperature.

#### Как выполнять вычисления, связанные со временем?

Используйте функции `genTime()` и `srvTime()` для работы с временными метками. Вы можете вычислять разницы во времени, добавлять смещения времени или форматировать метки времени для отображения.

#### Что произойдет, если я удалю атрибут?

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

#### Могу ли я использовать атрибуты, созданные в одном узле Initiate attribute, в другом?

Да. Атрибуты, созданные ранее в потоке, можно ссылаться в последующих **Initiate Attribute** узлах, что позволяет выполнять многоступенчатые вычисления. Все созданные атрибуты также доступны с помощью [функции автозаполнения](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/flow-management/broken-reference) чтобы обеспечить корректное именование.

<figure><img src="https://2707447327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-3387096d8cdd678b4e422a31889e3fba96ebed62%2Fimage-20250404-084039.png?alt=media" alt="Example of a complete flow with two Initiate attribute nodes consecutively"><figcaption></figcaption></figure>

#### **Как избежать опечаток при ссылке на имена атрибутов в формулах?**

Используйте функцию автозаполнения в поле Формула, чтобы выбирать из доступных атрибутов. Для подробных инструкций см. [Автозаполнение имен атрибутов](https://www.navixy.com/docs/user/ru/guide/account/iot-logic/flow-management/managing-attributes#autofill-attribute-names).
