Управление атрибутами

Узел Инициализировать атрибут Узел позволяет создавать, редактировать и управлять атрибутами данных в вашем потоке IoT Logic. Это руководство охватывает основные действия по управлению атрибутами (создание, редактирование, удаление) и важные операции, включая функцию автозаполнения для создания формул.

Создание атрибутов

Вот как создать новый атрибут в узле Initiate attribute:

1

Добавить новый атрибут

Нажмите Add attribute кнопку

2

Назовите атрибут

Введите имя для вашего атрибута (например, «Speed mph»). Это имя будет отображаться в Data Stream Analyzer и служить пользовательским именем датчика в Navixy.

3

Определите формулу

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

Короткий синтаксис используется по умолчанию для автозаполняемых имен атрибутов в формулах, и вы также можете использовать его при ручном вводе формулы. При обращении только к последнему допустимому значению атрибута можно опустить полный value() синтаксис функции и кавычки. Например, формулу преобразования температуры можно записать как temperature*1.8 + 32 вместо value('temperature', 0, 'valid')*1.8 + 32.

4

Добавьте настройки времени (по желанию)

По желанию настройте время генерации и серверное время, для этого включите Specify time attributes переключатель Для подробностей см. Настройки времени для атрибутов

5

Завершите конфигурацию

Нажмите Сохранить чтобы подтвердить конфигурацию узла

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

Настройки времени для атрибутов

Настройки времени дают вам контроль над метками времени, связанными с вашими атрибутами:

  • Время генерации: Когда данные были созданы

    • Используйте now() чтобы установить текущее время в миллисекундах

    • Используйте genTime('parameter_name', 0, 'valid') чтобы использовать собственное время генерации параметра

  • Серверное время: Когда данные были получены IoT Logic

    • Используйте now() чтобы установить текущее время в миллисекундах

    • Используйте srvTime('parameter_name', 0, 'valid') чтобы использовать серверное время параметра

    • Добавьте сдвиги для учета часовых поясов (например, srvTime('can_speed', 0, 'valid') + 120000 добавляет 2 минуты)

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

Автозаполнение имен атрибутов

При создании формул вычислений необходимо ссылаться на существующие имена атрибутов из физических устройств или вычисляемые атрибуты из других узлов. Чтобы упростить этот процесс и предотвратить опечатки, IoT Logic предоставляет функцию автозаполнения имен атрибутов.

Чтобы использовать автозаполнение при создании формул:

  1. Нажмите image-20250605-130755.png в поле Formula поле.

  2. Выберите требуемый атрибут из появившегося списка; он поддерживает ручный ввод текста для поиска.

  3. Нажмите на имя атрибута, чтобы вставить его в формулу.

Выбранный атрибут автоматически вставляется в готовом для использования формате, используя короткий синтаксис языка выражений Navixy IoT Logic. Это означает, что автозаполнение обращается к любому последнему значению выбранного атрибута.

Вы можете при необходимости изменять параметры — изменить номер индекса для исторических значений или скорректировать флаг валидности. Для этого необходимо явно определить формулу, используя полный синтаксис в явном виде, внутри vaue() функции.

Список фильтруется на основе источников данных вашего потока и соответствует тому, что видно в Data Stream Analyzer.

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

  • Поддерживается устройствами - Атрибут должен поддерживаться по крайней мере одним устройством, добавленным в ваш поток

  • Фактически передается - Устройство должно фактически отправлять реальные данные для этого атрибута (а не просто поддерживать его теоретически)

  • Доступен в потоке - Это включает как параметры устройства, так и вычисляемые атрибуты из других Инициализировать атрибут узлов внутри того же потока

Пример: Если ваше устройство поддерживает как датчики скорости, так и температуры, но отправляло только данные о скорости (возможно, из-за неисправного датчика температуры), список автозаполнения покажет атрибут «speed», но не «temperature». Атрибут температуры появится только после того, как устройство действительно начнет отправлять показания температуры, даже если устройство технически поддерживает его.

Индексация атрибутов в автозаполнении

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

Например, если вам нужно работать с показаниями напряжения с третьего аналогового входа на вашем устройстве, эти данные передаются через атрибут analog_2 (используется нулевая индексация, где первый вход имеет индекс 0). В вашей формуле это будет выглядеть как value('analog_2', 0, 'valid').

Автозаполнение также обрабатывает этот сценарий для вас:

  • Индексированные атрибуты помечаются image-20250606-123725.png иконкой в списке автозаполнения.

  • Эти записи отображают диапазон доступных индексов в квадратных скобках, например analog_[1..4] для атрибутов, поддерживающих пять индексированных значений (индексы с 1 по 4).

  • Когда вы выбираете индексированный атрибут, курсор автоматически устанавливается в конец имени атрибута внутри кавычек, что позволяет сразу ввести нужный номер индекса.

Язык выражений

Все формулы в IoT Logic соответствуют спецификациям Navixy IoT Logic Expression Language. Ниже вы найдете краткую справку по синтаксису языка.

Короткий синтаксис

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

Функция автозаполнения всегда использует короткий синтаксис.

Синтаксис: attribute_name

По умолчанию:

  • Индекс: 0 (текущее значение)

  • Валидация: 'all' (включает null значения)

Например, короткая форма temperature равна полной формуле value('temperature', 0, 'all'). Это означает, что вы можете легко создавать вычисления без явного добавления параметров по умолчанию:

temperature * 1.8 + 32

Полный синтаксис

Использование полного синтаксиса формулы позволяет обращаться к историческим значениям или к явному режиму валидации. Это полезно, когда требуется использовать не-актуальные значения и обрабатывать null. В случае полного синтаксиса необходимо определить полный value() функции.

Функция: value(attribute_name, index, validation)

Параметры:

Параметр
Диапазон/Значения
Описание

attribute_name

Любой действительный атрибут

Точное имя из телеметрии устройства (может быть автозаполнено)

индекс

0-12

Историческая позиция: 0=текущая, 1=предыдущая, 12=12 показаний назад

валидация

'all' или 'valid'

'all'=включает null (точный индекс), 'valid'=исключает null (N-ое валидное показание)

Примеры:

  • Любое предыдущее показание

value('temperature', 1, 'all')
  • 5-е валидное показание назад

value('speed', 5, 'valid')
  • Изменение температуры (короткий и полный синтаксисы используются в одной формуле)

temperature - value('temperature', 1, 'all')

Для дополнительных примеров формул см. Примеры вычислений.

Редактирование существующих атрибутов

Чтобы изменить существующий атрибут:

  1. Откройте окно конфигурации узла, наведя курсор на узел для отображения быстрых действий или двойным щелчком по узлу

  2. Найдите атрибут, который вы хотите отредактировать, в списке атрибутов

  3. Внесите необходимые изменения в текстовые поля свойств атрибута: Имя атрибута, Formula или настройки времени

  4. Если вам нужно отредактировать другие атрибуты в этом узле, повторите шаг 3 для них

  5. Нажмите Сохранить чтобы применить ваши изменения к конфигурации узла

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

Удаление атрибутов

Чтобы удалить атрибут, который больше не нужен:

  1. Откройте окно конфигурации узла, наведя курсор на узел для отображения быстрых действий или двойным щелчком по узлу

  2. Найдите атрибут, который вы хотите удалить, в списке атрибутов и наведите на него курсор, чтобы отобразилось image-20250402-101431.png меню

  3. Нажмите на появившееся меню и выберите Delete

  4. Подтвердите ваше решение удалить атрибут

  5. Нажмите Сохранить чтобы применить ваши изменения к конфигурации узла

Deleting attributes in the Initiate attribute node using the trash icon

Когда вы удаляете атрибут, он больше не будет вычисляться для новых данных, но исторические данные, содержащие этот атрибут, останутся неизменными в базе данных.

Последнее обновление

Это было полезно?