> 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/ru/guide/account/iot-logic/nodes/logic-node.md).

# Логика IF/THEN

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

{% columns %}
{% column %}
Отчёт **Логика IF/THEN** узел создает интеллектуальные точки ветвления, которые направляют входящие данные по разным путям на основе логических условий. Он получает данные от других узлов, проверяет их по заданным вами условиям и направляет результаты по разным путям в зависимости от того, успешна проверка или нет. Узел позволяет вам строить рабочие процессы IF->THEN/ELSE, в которых разные действия автоматически выполняются на основе условий данных в реальном времени.
{% endcolumn %}

{% column %}

<figure><img src="/files/52e22e8de78dcbbb693a1e41f4dc9491fcd6c71b" alt="IF/THEN Logic node tile"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Отчёт **Логика IF/THEN** узлы настраиваются отдельно для каждого потока в интерфейсе платформы Navixy. Каждый узел содержит только одну логическую формулу, используя [Navixy IoT Logic Expression Language](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).\
Для конкретных вариантов синтаксиса, относящихся к логическим выражениям, см. [Выражения и синтаксис IF/THEN Logic](/docs/user/ru/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endhint %}

<figure><img src="/files/611405f443deab3885050aa571df0ebb884e6b68" alt="IF/THEN Logic node positioning in the flow architecture (with inbound and outbound connections)"><figcaption></figcaption></figure>

### Как работают узлы IF/THEN Logic

Когда данные впервые достигают **Логика IF/THEN** узла, система создает определяемый пользователем логический атрибут, который хранит результаты проверки. Каждый последующий пакет данных проверяется по вашему логическому выражению, при этом значение этого атрибута обновляется, а данные направляются соответствующим образом:

* **Истинные результаты**: Данные проходят через соединение THEN (зеленое), при этом логический атрибут устанавливается в `true`
* **Ложные результаты**: Данные проходят через соединение ELSE (красное), при этом логический атрибут устанавливается в `false`

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

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

Логические атрибуты, созданные **Логика IF/THEN** узлами, выходят за рамки маршрутизации потока и интегрируются с более широкими возможностями мониторинга Navixy. Поскольку это пользовательские атрибуты, они могут быть:

* **Отслеживаться в реальном времени**: Просматривайте результаты проверки в [Анализатор потока данных](/docs/user/ru/guide/account/iot-logic/data-stream-analyzer.md) для устранения неполадок в условиях и проверки логики
* **Добавляться как пользовательские датчики**: Интегрируются с основным интерфейсом Navixy для постоянного мониторинга

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

* **Срабатывание оповещений**: Вы можете создавать пользовательские правила на основе значения датчика, чтобы получать уведомления в случае отклонений. Подробнее о создании правил см. [Правила и уведомления](/docs/user/ru/guide/events-and-notifications.md).
* **Объекты мониторинга**: Вы можете добавить атрибут в [Список объектов](/docs/user/ru/guide/tracking/objects-list.md) виджет, чтобы отслеживать его значение вместе с другими показаниями устройства. Подробнее о том, как создать пользовательский датчик из атрибута IoT Logic, см. [Отображение новых вычисленных атрибутов на платформе Navixy](/docs/user/ru/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).

{% hint style="info" %}
Отчёт **Логика IF/THEN** узлу требуется соединение как минимум с одним предыдущим узлом (**Источник данных** или другими узлами обработки), чтобы получать входные данные для проверки.
{% endhint %}

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

Отчёт **Логика IF/THEN** узел предлагает:

* **Условная маршрутизация данных**: Создавайте рабочие процессы с ветвлением, которые автоматически направляют данные на основе логических выражений, возвращающих истинный или ложный результат.
* **Проверка в реальном времени**: Проверяйте входящие данные устройства на соответствие бизнес-правилам и эксплуатационным порогам по мере поступления данных.
* **Поддержка сложных условий**: Объединяйте несколько параметров с помощью логических операторов (AND, OR и т. д.) для принятия сложных решений.
* **Условия на основе геозон**: Ссылайтесь на геозоны Navixy по имени непосредственно в выражениях, используя `inGeofence()`, `enterGeofence()`, и `leaveGeofence()` функции, без ручного сравнения координат. См. [Функции геозон](/docs/user/ru/guide/account/iot-logic/nodes/logic-node/geofence-functions.md).
* **Создание атрибутов**: Создавайте логические атрибуты, которые записывают результаты проверки для использования в других узлах, системах мониторинга Navixy и сторонних сервисах.
* **Гибкие выходные пути**: Направляйте данные через соединения THEN (true) и ELSE (false), чтобы запускать разные последующие действия.

## Параметры настройки

{% columns %}
{% column valign="middle" %}
Отчёт **Логика IF/THEN** узел позволяет вам задавать условные выражения, которые оценивают входящие данные и создают ветвящиеся пути в вашем потоке на основе результатов.
{% endcolumn %}

{% column %}

<figure><img src="/files/37ff5afa49ab7ae4a1955f31f8473528756263d4" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

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

### Шаги настройки

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

Введите описательное имя для этого **Логика IF/THEN** узел.

* Используйте имя, которое четко отражает цель проверки (например, *Проверка температурного оповещения*, *Обнаружение превышения скорости*).
* Это имя будет отображаться на схеме потока для удобной идентификации.
  {% endstep %}

{% step %}
**Задайте имя выражения**

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

* Этот атрибут появится в [Анализатор потока данных](/docs/user/ru/guide/account/iot-logic/data-stream-analyzer.md) и станет доступным для использования в последующих узлах.
* Используйте понятные имена, такие как *high\_temperature\_alert* или speed\_violation\_detected.
* Система автоматически сгенерирует имена, такие как *logic\_1*, *logic\_2* если они не указаны.
  {% endstep %}

{% step %}
**Создайте условное выражение**

Составьте логическое выражение в поле выражения.

* Используйте [логические операторы в соответствии с синтаксисом Navixy Expression Language](/docs/user/ru/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md) для ссылки на параметры устройства и вычисленные атрибуты.
* Выражение должно возвращать логическое значение (true/false) для корректной работы узла.
* Используйте [функцию автодополнения](/docs/user/ru/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#autofill-attribute-names) чтобы выбрать доступные атрибуты из подключенных источников данных.
* Чтобы использовать геозону Navixy в качестве условия, воспользуйтесь [селектором геозоны](/docs/user/ru/guide/account/iot-logic/nodes/logic-node/geofence-functions.md) в поле выражения.
  {% endstep %}

{% step %}
**Сохраните конфигурацию узла**

Нажмите **Примените изменения** чтобы завершить создание узла.
{% endstep %}

{% step %}
**Подключите выходные пути**

После настройки узла необходимо установить соединения для результатов проверки.

* **Соединение THEN** (зеленое): Подключается к узлам, которые должны обрабатывать данные, когда выражение вычисляется как true.
* **Соединение ELSE** (красное): Подключается к узлам, которые должны обрабатывать данные, когда выражение вычисляется как false или null.
* Соединение THEN обязательно, а соединение ELSE — необязательно.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
Когда логические выражения не могут быть вычислены из-за значений null, неверных типов данных или синтаксических ошибок, результат считается `false`, и данные проходят по пути ELSE.
{% endhint %}

Подробную информацию о синтаксисе выражений, операторах и поведении потока данных см. [Выражения и синтаксис IF/THEN Logic](/docs/user/ru/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).

## Выходные соединения и поток данных

Отчёт **Логика IF/THEN** узел создает два отдельных выходных пути на основе результатов вычисления выражения.

<figure><img src="/files/59c0b464e8e917fe76fb487bcf250071eadafa02" alt="IF/THEN Logic node showing THEN and ELSE connections with green and red color coding"><figcaption></figcaption></figure>

### Соединение THEN (<mark style="color:green;">green</mark>)

* **Активируется, когда**: Логическое выражение возвращает `true`.
* **Требование к соединению**: Обязательно — каждый узел IF/THEN Logic должен иметь как минимум один выход THEN.
* **Несколько соединений**: Может соединяться с несколькими последующими узлами для параллельной обработки.
* **Типичные случаи использования**: Срабатывание предупреждений, специальная обработка, условные вычисления или маршрутизация данных к определенным конечным точкам.

### Соединение ELSE (<mark style="color:красное;">красное</mark>)

* **Активируется, когда**: Логическое выражение возвращает `false`, `null`, или возникают ошибки вычисления.
* **Требование к соединению**: Необязательно — используйте только тогда, когда нужно обработать отрицательные результаты.
* **Обработка ошибок**: Обрабатывает случаи, когда выражения не могут быть вычислены из-за отсутствующих данных или синтаксических ошибок.
* **Типичные случаи использования**: Журналирование неудачных проверок, маршрутизация данных по альтернативным путям обработки или продолжение обычной работы.

### **Требование к терминальному узлу**

При подключении к терминальным узлам ([Действие](/docs/user/ru/guide/account/iot-logic/nodes/action-node.md), [Webhook](/docs/user/ru/guide/account/iot-logic/nodes/webhook-node.md)), которые не поддерживают исходящие соединения, создайте параллельные соединения, чтобы и терминальный узел, и Output Endpoint получали данные:

<figure><img src="/files/daa40016ed78a478edb3c1fd04e698029f0e5cc2" alt=""><figcaption></figcaption></figure>

**Почему обеим веткам нужны Output Endpoints:**

* Обеспечивает сохранность данных и видимость в системе
* Обеспечивает проверку потока
* Обе ветки могут использовать один и тот же узел Output Endpoint

{% hint style="danger" %}
**Ошибка проверки:** Потоки без Output Endpoints на всех ветках не сохранятся с этой ошибкой.
{% endhint %}

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

#### Могу ли я использовать атрибуты, созданные другими узлами, в выражениях IF/THEN Logic?

Да. **Логика IF/THEN** узлы могут ссылаться на любые атрибуты, доступные из подключенных источников данных, включая исходные параметры устройства и атрибуты, вычисленные предыдущими **Инициировать атрибут** узлами. Функция автодополнения помогает выбирать из всех доступных атрибутов.

#### Что произойдет, если в моем выражении есть синтаксические ошибки?

Если выражение содержит синтаксические ошибки или не может быть вычислено, узел **Логика IF/THEN** рассматривает результат как `false` и направляет данные через соединение ELSE. Проверьте синтаксис выражения и убедитесь, что все указанные атрибуты существуют в вашем потоке данных.

#### Могу ли я подключить несколько узлов к одному и тому же выходу узла IF/THEN Logic?

Да. Соединения THEN и ELSE поддерживают несколько исходящих соединений, позволяя запускать несколько разных действий на основе одного и того же логического условия. Это обеспечивает параллельную обработку для сложных бизнес-процессов.

#### Как отслеживать результаты узла IF/THEN Logic?

Результаты узла IF/THEN Logic отображаются как логические атрибуты в [Анализатор потока данных](/docs/user/ru/guide/account/iot-logic/data-stream-analyzer.md) таблице. Выберите свои устройства и найдите имя атрибута, которое вы указали в поле имени выражения. Значения будут отображаться как `true` или `false` в зависимости от результатов проверки.

#### Могу ли я объединять несколько узлов IF/THEN Logic в цепочку?

Да. Вы можете соединять **Логика IF/THEN** узлы последовательно, чтобы создавать сложные деревья решений. Каждый **Логика IF/THEN** узел может ссылаться на логические атрибуты, созданные предыдущими **Логика IF/THEN** узлами, что позволяет создавать сложные многоэтапные рабочие процессы проверки.

<figure><img src="/files/a3355bdf291ab78fd7ab1d6be1d86a5c6cf3c9ac" alt="Example flow showing multiple IF/THEN Logic nodes connected in sequence for complex decision trees"><figcaption></figcaption></figure>

#### Почему ветки IF/THEN Logic должны подключаться к Output Endpoints?

Каждая ветка IF/THEN Logic должна завершаться в Output Endpoint для проверки потока данных и видимости в системе. При использовании терминальных узлов (Action, Webhook), которые не поддерживают исходящие соединения, создайте параллельное соединение от узла IF/THEN Logic напрямую к Output Endpoint. При необходимости обе ветки могут использовать один и тот же Output Endpoint.


---

# 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/ru/guide/account/iot-logic/nodes/logic-node.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.
