> 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/devices-and-settings/object-management/commands.md).

# Команды

Настройте пользовательские команды устройства и программного обеспечения для GPS-устройства в Navixy и отправляйте их по запросу из виджета «Объект».

Блок **Команды** позволяет вам настраивать пользовательские команды для устройства в Navixy и отправлять их по запросу из устройства's [виджета Объект](/docs/user/ru/guide/tracking/objects-list/object-widget.md) или из [X-GPS Mobile](/docs/user/ru/guide/x-gps-mobile-apps/x-gps-mobile.md) приложения. Используйте его, чтобы отправить устройству команду на уровне прошивки, например отправить CAN-команду или активировать выход, либо вызвать любую внешнюю систему, принимающую HTTP-запросы, такую как канал Slack, сервис уведомлений, CRM или пользовательскую конечную точку API. После настройки команды можно отправлять одним щелчком.

Блок Команды поддерживает два типа команд:

* **Команда устройства** отправляет строку инструкции на уровне протокола напрямую на устройство, например чтобы отправить CAN-команду или активировать выход.
* **Программная команда** отправляет HTTP POST-запрос с JSON-телом на любой указанный URL, при необходимости включая в полезную нагрузку текущие данные устройства, такие как местоположение, скорость или идентификатор устройства.

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

{% hint style="info" %}
**Когда использовать Команды и IoT Logic**

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

Для автоматической отправки команд по правилам, например для запуска Действия устройства или Вебхука при превышении порога датчика, либо для отправки одной и той же команды на несколько устройств, используйте [IoT Logic](/docs/user/ru/guide/account/iot-logic.md). Узлы **Действие устройства** и **Вебхук** в IoT Logic обеспечивают те же базовые возможности с полной автоматизацией потока и таргетингом на несколько устройств.
{% endhint %}

## Настройка

Чтобы настроить Команды для устройства, выполните следующие действия:

1. Перейдите **Управление устройствами** в левой боковой панели.
2. Выберите устройство, которое хотите настроить.
3. Найдите и разверните **Команды** блок.

<figure><img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-0b08686ab5211cfcdda8ed6f2edc4f90b87fdc6a%2Foutput-control-block.png?alt=media" alt="Commands block showing device and software command options"><figcaption></figcaption></figure>

Вы можете добавить несколько команд каждого типа. Каждая команда сохраняется отдельно.

### Команды устройства

Команда **устройства** отправляет строку инструкции на уровне протокола напрямую на устройство по его каналу связи.

<figure><img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4fb41dda6033a61f1af4dbdae9e75b73ddf14353%2Foutput-control-device-vommand.png?alt=media" alt="Device command form with Command name and Command string fields"><figcaption></figcaption></figure>

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

1. **Название команды**: метка команды, как она отображается в виджете Объект, например `перезагрузка устройства`. Выберите название, которое ясно описывает, что делает команда.
2. **Строка команды**: точная строка инструкции, которая отправляется устройству, например `cpureset`.

{% hint style="warning" %}
Допустимые строки команд зависят от устройства и определяются его производителем. Всегда обращайтесь к официальной документации по вашей модели устройства, чтобы найти правильные строки команд. Ввод неверных значений может привести к непредвиденным последствиям для устройства.
{% endhint %}

Нажмите **Сохранить** чтобы сохранить команду. Нажмите **Удалить** чтобы удалить ее.

### Программные команды

Команда **программная команда** отправляет HTTP POST-запрос с JSON-телом на указанный вами URL. Это может быть конечная точка внешнего сервиса, например Slack, пользовательский приемник вебхуков, любой REST API или конечная точка API Navixy.

Тело запроса — это JSON и должно быть структурировано в соответствии с ожиданиями конечной точки назначения. Вы можете включать в тело атрибуты данных устройства, используя `{{attribute_name}}` синтаксис.

Программные команды настраиваются на двух вкладках: **Общие** и **Тело**.

Чтобы добавить программную команду, нажмите **Добавить программную команду** в нижней части блока.

#### Вкладка «Общие»

{% columns %}
{% column width="58.333333333333336%" %}
Настройте следующее:

1. **Название**: метка команды, как она отображается в виджете Объект.
2. **URL**: полный URL конечной точки, на который отправляется POST-запрос, например `https://hooks.slack.com/services/...` или `https://api.eu.navixy.com/v2/...`.
3. **Заголовки**: пары «ключ-значение», отправляемые в заголовках HTTP-запроса. Добавьте заголовки по мере необходимости для конечной точки назначения. Нажмите **Добавить заголовок** чтобы вставить новую строку.
   * Используйте `Authorization` заголовок для аутентификации по токену, например `Authorization` установленный в `Bearer your_token`.
   * Можно также использовать другие методы аутентификации, поддерживаемые конечной точкой, например API-ключи, передаваемые в URL как параметры запроса.
     {% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-38e4eab9ed360e81a51ad8247392a8b9104d5db4%2Foutput-control-software-command-general.png?alt=media" alt="Software command General tab with Title, URL, and Headers fields"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Вкладка «Тело»

{% columns %}
{% column width="58.333333333333336%" %}
Блок **Тело** поле — это место, где вы формируете JSON-полезную нагрузку. Напишите корректный JSON, соответствующий формату, ожидаемому конечной точкой назначения.

Чтобы включить в полезную нагрузку актуальные данные устройства, используйте `{{attribute_name}}` синтаксис. Нажмите кнопку выбора атрибутов <img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-1fa59f996fe69fa378ac659fa97f7e00c376f263%2Fimage.png?alt=media" alt="" data-size="line"> в правом верхнем углу поля тела, чтобы открыть доступный для поиска список атрибутов устройства. Выбор атрибута вставляет соответствующий `{{attribute_name}}` заполнитель в тело в позиции курсора.
{% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-82eaece7ab729a184238a6d1f3413b4fec7300ab%2Foutput-control-software-command-body.png?alt=media" alt="Software command Body tab with JSON body field and attribute picker"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Доступные атрибуты зависят от конкретного устройства и данных, которые оно передает на платформу Navixy. В списке отображаются только атрибуты, фактически отправляемые устройством. Используйте выбор атрибутов, чтобы избежать опечаток или неверных имен атрибутов.
{% endhint %}

Нажмите **Сохранить** чтобы сохранить команду. Нажмите **Удалить** чтобы удалить ее.

#### Пример: отправка уведомления в Slack

Slack поддерживает получение сообщений от внешних сервисов через входящие вебхуки. После того как вы настроите вебхук в рабочем пространстве Slack и получите URL вебхука (см.  [руководство по входящим вебхукам Slack](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/)), создайте программную команду со следующей конфигурацией.

**Вкладка «Общие»:**

* **Название**: `Уведомление Slack`
* **URL**: ваш URL входящего вебхука Slack, например `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXX`
* **Заголовки**: заголовки не требуются

**Вкладка «Тело»:**

{% code overflow="wrap" %}

```json
{
  "text": "Устройство {{device_id}}: скорость {{speed}} км/ч в точке {{latitude}}, {{longitude}}"
}
```

{% endcode %}

Slack ожидает JSON-объект с полем `text` Плейсхолдеры `{{device_id}}`, `{{speed}}`, `{{latitude}}`, и `{{longitude}}` заменяются текущими значениями устройства в момент отправки команды. Если команда запускается из виджета Объект, сообщение отображается в канале Slack, настроенном для вашего вебхука.

### Динамические значения команд

Строка команды или тело программной команды может содержать один `<>` плейсхолдер, чтобы каждый раз при отправке команды запрашивать значение вместо жестко заданного фиксированного значения.

* В команде устройства добавьте `<>` внутрь **Строка команды** поля, например `relay,<>` чтобы при каждой отправке передавать другое состояние реле.
* В программной команде добавьте `<>` внутрь **Тело** поля, например `{"value": "<>"}`.

Только один `<>` плейсхолдер допускается на одну команду. При сохранении команды с более чем одним плейсхолдером возвращается ошибка «Допускается только одно значение на одну команду. Удалите лишний < >.»

Когда вы отправляете команду, содержащую `<>` из виджета Объект, диалоговое окно запрашивает значение перед отправкой. См. [Отправка команд из виджета Объект](#sending-commands-from-the-object-widget) для полного сценария.

{% hint style="info" %}
Нажмите значок справки в блоке Команды, чтобы открыть **Как работают значения команд**, краткое описание `<>` синтаксис.
{% endhint %}

## Отправка команд из виджета Объект

После сохранения команды отображаются в **Команды** блоке [виджета Объект](/docs/user/ru/guide/tracking/objects-list/object-widget.md) устройства в модуле Мониторинг.

<figure><img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-d3074f8879c2b2a0b719e8d54783c387e53a2794%2Fobject-widget-commands.png?alt=media" alt="Object widget Commands block showing two commands with send buttons"><figcaption></figcaption></figure>

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

* Если команда не содержит [плейсхолдер динамического значения](#dynamic-command-values), Navixy отправляет ее сразу. Диалог подтверждения не отображается.
* Если команда содержит `<>`, открывается диалоговое окно с запросом значения. Введите значение длиной до 500 символов и нажмите **Отправить** чтобы отправить команду с подстановкой значения вместо `<>`. Узлы **Отправить** кнопка остается недоступной, пока вы не введете значение, а пустые значения или значения только из пробелов не принимаются.

После выполнения команды Navixy показывает уведомление с результатом:

* **Команды устройства** показывают только успешность выполнения команды, например `{ "success": true }` или `{ "success": false }`.
* **Программные команды** показывают название команды и необработанный ответ от конечной точки назначения, например `{status, body}`. Длинные ответы прокручиваются внутри уведомления.

Отправленные команды также отображаются в [Недавние события](/docs/user/ru/guide/tracking/objects-list/object-widget.md#data-blocks) блоке виджета Объект, а их результат доступен в разворачиваемом виде. Если команда содержала [плейсхолдер динамического значения](#dynamic-command-values), заголовок записи также показывает отправленное значение, например `Обновить статус <на связи>`.

<figure><img src="https://2388694493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-a0310f4425c07ba87b52177eb45073451f14a827%2Frecent-events-command-value.png?alt=media" alt="Recent events entry showing the sent value in the entry title next to the command name"><figcaption></figcaption></figure>

{% hint style="info" %}
Команды задаются для каждого устройства отдельно. Команды, настроенные для одного устройства, не отображаются в виджетах Объект других устройств. Чтобы отправлять команды на несколько устройств по правилам или условиям, используйте IoT Logic.
{% 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/ru/guide/devices-and-settings/object-management/commands.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.
