> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md).

# Gerenciando atributos

O **Iniciar Atributo** Este nó permite criar, editar e gerenciar atributos de dados em todo o seu fluxo do IoT Logic. Este guia aborda as ações básicas de gerenciamento de atributos (criar, editar, excluir) e operações essenciais, incluindo a funcionalidade de preenchimento automático para a criação de fórmulas.

## Criar atributos

Veja como criar um novo atributo no nó Iniciar Atributo:

{% stepper %}
{% step %}

### Adicionar novo atributo

Clique no **Adicionar atributo** botão
{% endstep %}

{% step %}

### Nomear o atributo

Digite um nome para o seu atributo (por exemplo, "Speed mph"). Esse nome será exibido em [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) e atuará como um [nome de sensor personalizado no Navixy](/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).
{% endstep %}

{% step %}

### Definir fórmula

Defina a expressão de valor. Para criar fórmulas mais rapidamente, use [o preenchimento automático](#autofill-attribute-names).

{% hint style="info" %}
A sintaxe curta é o padrão para nomes de atributos preenchidos automaticamente em fórmulas, e você também pode usá-la para entrada manual de fórmulas. Ao referenciar apenas o valor válido mais recente de um atributo, você pode omitir a sintaxe completa da `value()` função e as aspas. Por exemplo, a fórmula de conversão de temperatura pode ser escrita como `temperature*1.8 + 32` em vez de `value('temperature', 0, 'valid')*1.8 + 32`.
{% endhint %}
{% endstep %}

{% step %}

### Finalizar configuração

Clique em **Salvar** para confirmar a configuração do nó
{% endstep %}
{% endstepper %}

O novo atributo é salvo no nó e o cálculo configurado é aplicado imediatamente no fluxo.

### Configurações de tempo para atributos

As configurações de tempo permitem que você controle os carimbos de data e hora associados aos seus atributos:

* **Tempo de geração**: Quando os dados foram criados
  * Use `now()` para definir o tempo atual em milissegundos
  * Use `genTime('parameter_name', 0, 'valid')` para usar o tempo de geração do próprio parâmetro
* **Tempo do servidor**: Quando os dados foram recebidos pelo IoT Logic
  * Use `now()` para definir o tempo atual em milissegundos
  * Use `srvTime('parameter_name', 0, 'valid')` para usar o tempo do servidor do parâmetro
  * Adicione deslocamentos para ajustar fusos horários (por exemplo, `srvTime('can_speed', 0, 'valid') + 120000` adiciona 2 minutos)

{% hint style="info" %}
As configurações de tempo são importantes para a análise e sincronização de dados. Uma configuração correta de tempo garante que seus dados mantenham a integridade cronológica ao longo de todo o fluxo.
{% endhint %}

### Preenchimento automático de nomes de atributos

Ao criar fórmulas de cálculo, você precisa referenciar nomes de atributos existentes de dispositivos físicos ou atributos calculados de outros nós. Para simplificar esse processo e evitar erros de digitação, o IoT Logic oferece a funcionalidade de preenchimento automático para nomes de atributos.

Para usar o preenchimento automático ao criar fórmulas:

1. Clique em ![image-20250605-130755.png](/files/9e7fedbd68718849c0aec0c0bf90796afa6ef565) em **Fórmula** campo.
2. Selecione o atributo desejado na lista exibida; ela aceita entrada manual de texto para pesquisa.
3. Clique no nome do atributo para inseri-lo na sua fórmula.

O atributo selecionado é inserido automaticamente em um formato pronto para uso, usando a [sintaxe curta](#short-syntax) da Linguagem de Expressão do Navixy IoT Logic. Isso significa que os itens preenchidos automaticamente acessam o valor mais recente de qualquer atributo selecionado.

Você pode modificar os parâmetros conforme necessário — altere o número do índice para valores históricos ou ajuste o sinalizador de validade. Para fazer isso, você precisa definir a fórmula usando a [sintaxe completa](#full-syntax) explicitamente, dentro da `value()` função.

A lista é filtrada com base nas fontes de dados do seu fluxo e corresponde ao que está visível em [Analisador de dados](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md).

{% hint style="info" %}
A lista de preenchimento automático exibe apenas atributos que atendem **todos** os critérios a seguir simultaneamente:

* **Compatíveis com dispositivos** - O atributo deve ser compatível com pelo menos um dispositivo atualmente adicionado ao seu fluxo
* **Realmente transmitidos** - O dispositivo deve ter enviado dados reais para esse atributo (e não apenas oferecê-lo teoricamente)
* **Disponível no fluxo** - Isso inclui tanto os parâmetros do dispositivo quanto os atributos calculados de outros **Iniciar Atributo** nós no mesmo fluxo

**Exemplo**: Se o seu dispositivo oferece suporte a sensores de velocidade e temperatura, mas só transmitiu dados de velocidade (talvez devido a um sensor de temperatura com defeito), a lista de preenchimento automático mostrará o atributo 'speed', mas não 'temperature'. O atributo de temperatura só aparecerá quando o dispositivo realmente enviar leituras de temperatura, mesmo que o dispositivo o suporte tecnicamente.
{% endhint %}

#### Atributos indexados no preenchimento automático

Alguns atributos de dados contêm vários valores indexados dentro de um único atributo, como leituras de vários sensores analógicos conectados a um dispositivo telemático principal. Para usar esses atributos em cálculos, você precisa especificar o número exato do índice correspondente ao sensor ou à entrada específica que deseja referenciar.

Por exemplo, se você precisar trabalhar com leituras de tensão da terceira entrada analógica do seu dispositivo, esses dados chegam por meio do atributo `analog_2` (usando indexação baseada em zero, em que a primeira entrada é o índice 0). Na sua fórmula, isso apareceria como `value('analog_2', 0, 'valid')`.

O preenchimento automático também lida com esse cenário para você:

* Os atributos indexados são marcados com o ![image-20250606-123725.png](/files/b64e46294fa0719d519d8d6e6cb545eb67d33605) ícone na lista de preenchimento automático.
* Essas entradas exibem o intervalo de índices disponível entre colchetes, como `analog_[1..4]` para atributos que suportam cinco valores indexados (índices de 1 a 4).
* Quando você seleciona um atributo indexado, o cursor é posicionado automaticamente no final do nome do atributo dentro das aspas, permitindo que você digite imediatamente o número de índice específico de que precisa.

## Linguagem de expressão

Todas as fórmulas no IoT Logic seguem as especificações do [Linguagem de Expressão do Navixy IoT Logic](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md). A seguir, você encontra uma breve referência às duas opções de sintaxe da linguagem. A escolha da sintaxe depende do caso específico e foi pensada para oferecer conveniência:

* A sintaxe curta é fácil de escrever e funciona melhor quando você precisa apenas dos dados mais recentes.
* A sintaxe completa é um pouco mais complexa, mas oferece mais controle sobre a profundidade dos dados quando você precisa lidar com valores históricos.

{% hint style="success" %}
A opção de sintaxe não afeta a fórmula em si! Você também pode combinar sintaxe curta e completa na mesma fórmula.
{% endhint %}

### Sintaxe curta

A opção de fórmula curta acessa o valor mais recente do atributo, sem verificar a validade. Ela é útil quando você não precisa de valores históricos em uma fórmula e não quer filtrar `nulo` valores.

{% hint style="info" %}
[Preenchimento automático ](#autofill-attribute-names)recurso sempre usa a sintaxe curta.
{% endhint %}

**Sintaxe:** `attribute_name`

**Padrões:**

* Índice: `0` (valor atual)
* Validação: `'all'` (inclui valores nulos)

Por exemplo, a forma curta `temperature` é igual à fórmula completa `value('temperature', 0, 'all')`. Isso significa que você pode criar cálculos facilmente sem adicionar explicitamente os parâmetros padrão:

```jexl
temperature * 1.8 + 32
```

### Sintaxe completa

Usar a sintaxe completa da fórmula permite que você acesse valores históricos ou um modo explícito de validação. Isso ajuda quando você precisa usar valores não mais recentes e tratar nulos. No caso da sintaxe completa, você precisa definir a `value()` função.

**Função:** `value(attribute_name, index, validation)`

**Parâmetros:**

<table><thead><tr><th width="152.54547119140625">Parâmetro</th><th width="176.45452880859375">Intervalo/valores</th><th>Descrição</th></tr></thead><tbody><tr><td><code>attribute_name</code></td><td>Qualquer atributo válido</td><td>Nome exato da telemetria do dispositivo (pode ser <a href="#autofill-attribute-names">preenchido automaticamente</a>)</td></tr><tr><td><code>index</code></td><td>0-12</td><td>Posição histórica: 0=atual, 1=anterior, 12=12 leituras atrás</td></tr><tr><td><code>validation</code></td><td><code>'all'</code> ou <code>'valid'</code></td><td><code>'all'</code>=inclui nulos (índice exato), <code>'valid'</code>=exclui nulos (N-ésima leitura válida)</td></tr></tbody></table>

**Exemplos:**

* Qualquer leitura anterior

```jexl
value('temperature', 1, 'all')
```

* 5ª leitura válida anterior

```jexl
value('speed', 5, 'valid')
```

* Variação de temperatura (sintaxes curta e completa usadas na mesma fórmula)

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

{% hint style="info" %}
Para mais exemplos de fórmulas, consulte [Exemplos de cálculo](/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/calculation-examples.md).
{% endhint %}

## Editar atributos existentes

Para modificar um atributo existente:

1. Abra a janela de configuração do nó passando o mouse sobre o nó para exibir as ações rápidas ou clicando duas vezes no nó
2. Localize o atributo que deseja editar na lista de atributos
3. Faça as alterações necessárias nos campos de texto das propriedades do atributo: **Nome do atributo**, **Fórmula** ou configurações de tempo
4. Se precisar editar outros atributos neste nó, repita a etapa 3 para eles
5. Clique em **Salvar** para aplicar suas alterações à configuração do nó

{% hint style="info" %}
Quando você edita um atributo, as alterações serão aplicadas apenas a novos dados recebidos após salvar. Os dados históricos já coletados não serão recalculados.
{% endhint %}

## Excluir atributos

Para remover um atributo que não é mais necessário:

1. Abra a janela de configuração do nó passando o mouse sobre o nó para exibir as ações rápidas ou clicando duas vezes no nó
2. Localize o atributo que deseja remover e clique em <img src="/files/94d1683eb6f223497bb833f05177d1ef68ce689e" alt="" data-size="line">
3. Clique em **Aplicar alterações** para confirmar a configuração do nó

{% hint style="info" %}
Quando você exclui um atributo, ele deixará de ser calculado para novos dados, mas os dados históricos que contêm esse atributo permanecerão inalterados no banco de dados.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/user/pt-br/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
