> 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 и отправлять их по требованию из [виджета «Объект»](/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, при необходимости включая в полезную нагрузку текущие данные устройства, такие как местоположение, скорость или ID устройства.

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

{% 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, настроенном для вашего вебхука.

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

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

* В команде устройства добавьте `<>` внутрь **Строка команды** поля, например `реле,<>` чтобы при каждой отправке задавать другое состояние реле.
* В программной команде добавьте `<>` внутрь **Тело** поля, например `{"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.
