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

# Perintah

Definisikan perintah perangkat dan perangkat lunak kustom untuk perangkat GPS di Navixy dan kirimkan sesuai permintaan dari widget Pelacak.

Blok **Perintah** blok ini memungkinkan Anda menentukan perintah kustom untuk sebuah perangkat di Navixy dan mengirimkannya sesuai permintaan dari [widget Pelacak perangkat](/docs/user/id/guide/tracking/objects-list/object-widget.md) atau [X-GPS Mobile](/docs/user/id/guide/x-gps-mobile-apps/x-gps-mobile.md) aplikasi. Gunakan untuk mengirim instruksi tingkat firmware langsung ke perangkat, seperti mengirim perintah CAN atau mengaktifkan output, atau memanggil sistem eksternal apa pun yang menerima permintaan HTTP, seperti kanal Slack, layanan notifikasi, CRM, atau endpoint API kustom. Setelah dikonfigurasi, perintah dapat dikirim hanya dengan satu klik.

Blok Perintah mendukung dua jenis perintah:

* **Perintah perangkat** mengirim string instruksi tingkat protokol langsung ke perangkat, misalnya untuk mengirim perintah CAN atau mengaktifkan output.
* **Perintah perangkat lunak** mengirim permintaan HTTP POST dengan isi JSON ke URL mana pun, dengan opsi menyertakan data perangkat saat ini seperti lokasi, kecepatan, atau ID perangkat dalam payload.

Perintah disimpan per perangkat dan tetap tersedia untuk penggunaan berulang.

{% hint style="info" %}
**Kapan menggunakan Perintah vs. IoT Logic**

Perintah dirancang untuk tindakan manual ad hoc yang menargetkan satu perangkat. Gunakan saat Anda perlu mengirim perintah sekali pakai tanpa mengonfigurasi aliran otomatisasi.

Untuk pengiriman perintah otomatis berbasis aturan, seperti memicu Aksi atau Webhook saat ambang sensor terlampaui, atau mengirim perintah yang sama ke beberapa perangkat, gunakan [IoT Logic](/docs/user/id/guide/account/iot-logic.md). Node **Aksi** dan **Webhook** di IoT Logic memberikan kemampuan dasar yang sama dengan otomatisasi aliran penuh dan penargetan multi-perangkat.
{% endhint %}

## Konfigurasi

Untuk mengonfigurasi Perintah untuk sebuah perangkat, ikuti langkah-langkah berikut:

1. Buka **Perangkat dan pengaturan** di bilah samping kiri.
2. Pilih perangkat yang ingin Anda konfigurasikan.
3. Temukan dan perluas **Perintah** blok tersebut.

<figure><img src="https://3001559198-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>

Anda dapat menambahkan beberapa perintah untuk setiap jenis. Setiap perintah disimpan secara terpisah.

### Perintah perangkat

Sebuah **perintah perangkat** mengirim string instruksi tingkat protokol langsung ke perangkat melalui saluran komunikasinya.

<figure><img src="https://3001559198-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>

Untuk menambahkan perintah perangkat, klik **Tambah perintah perangkat** di bagian bawah blok. Konfigurasikan bidang berikut:

1. **Nama perintah**: label untuk perintah sebagaimana tampil di widget Pelacak, misalnya `restart perangkat`. Pilih nama yang dengan jelas menjelaskan fungsi perintah.
2. **String perintah**: string instruksi persis yang dikirim ke perangkat, misalnya `cpureset`.

{% hint style="warning" %}
String perintah yang valid bersifat khusus perangkat dan ditentukan oleh produsen perangkat. Selalu merujuk ke dokumentasi resmi untuk model perangkat Anda guna menemukan string perintah yang benar. Memasukkan nilai yang salah dapat menimbulkan efek yang tidak diinginkan pada perangkat.
{% endhint %}

Klik **Simpan** untuk menyimpan perintah. Klik **Hapus** untuk menghapusnya.

### Perintah perangkat lunak

Sebuah **perintah perangkat lunak** mengirim permintaan HTTP POST dengan isi JSON ke URL yang Anda tentukan. Ini dapat berupa endpoint layanan eksternal, seperti Slack, penerima Webhook kustom, atau REST API apa pun, atau endpoint API Navixy.

Isi permintaan berbentuk JSON dan harus disusun sesuai dengan format yang diharapkan endpoint tujuan. Anda dapat menyertakan atribut data perangkat dalam isi menggunakan `{{attribute_name}}` sintaks.

Perintah perangkat lunak dikonfigurasikan melalui dua tab: **Umum** dan **Isi**.

Untuk menambahkan perintah perangkat lunak, klik **Tambah perintah perangkat lunak** di bagian bawah blok.

#### Tab Umum

{% columns %}
{% column width="58.333333333333336%" %}
Konfigurasikan hal berikut:

1. **Judul**: label untuk perintah sebagaimana tampil di widget Pelacak.
2. **URL**: URL endpoint lengkap tempat permintaan POST dikirim, misalnya `https://hooks.slack.com/services/...` atau `https://api.eu.navixy.com/v2/...`.
3. **Header**: pasangan kunci-nilai yang dikirim sebagai header permintaan HTTP. Tambahkan header sesuai kebutuhan untuk endpoint tujuan. Klik **Tambah header** untuk menyisipkan baris baru.
   * Gunakan `Authorization` header untuk autentikasi berbasis token, misalnya `Authorization` diatur ke `Bearer your_token`.
   * Metode autentikasi lain yang didukung oleh tujuan, seperti Kunci API yang diteruskan sebagai parameter kueri di URL, juga dapat digunakan.
     {% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://3001559198-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 %}

#### Tab Isi

{% columns %}
{% column width="58.333333333333336%" %}
Blok **Isi** kolom ini adalah tempat Anda menyusun payload JSON. Tulis JSON valid yang sesuai dengan format yang diharapkan endpoint tujuan.

Untuk menyertakan data perangkat langsung dalam payload, gunakan `{{attribute_name}}` sintaks. Klik tombol pemilih atribut <img src="https://3001559198-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"> di kanan atas kolom isi untuk membuka daftar atribut yang tersedia bagi perangkat yang dapat dicari. Memilih sebuah atribut akan menyisipkan `{{attribute_name}}` placeholder yang sesuai ke dalam isi pada posisi kursor.
{% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://3001559198-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" %}
Atribut yang tersedia bergantung pada perangkat tertentu dan data yang dikirimkannya ke platform Navixy. Hanya atribut yang benar-benar dikirim oleh perangkat yang muncul di daftar. Gunakan pemilih untuk menghindari salah ketik atau nama atribut yang salah.
{% endhint %}

Klik **Simpan** untuk menyimpan perintah. Klik **Hapus** untuk menghapusnya.

#### Contoh: mengirim notifikasi Slack

Slack mendukung penerimaan Pesan dari layanan eksternal melalui Incoming Webhooks. Setelah Anda menyiapkan Webhook di ruang kerja Slack dan memperoleh URL Webhook (lihat [panduan Slack Incoming Webhooks](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/)), buat perintah perangkat lunak dengan konfigurasi berikut.

**Tab Umum:**

* **Judul**: `Beri tahu Slack`
* **URL**: URL Webhook Slack Incoming Anda, misalnya `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXX`
* **Header**: tidak memerlukan header

**Tab Isi:**

{% code overflow="wrap" %}

```json
{
  "text": "Perangkat {{device_id}}: kecepatan {{speed}} km/jam di {{latitude}}, {{longitude}}"
}
```

{% endcode %}

Slack mengharapkan objek JSON dengan sebuah field `text` . Placeholder `{{device_id}}`, `{{speed}}`, `{{latitude}}`, dan `{{longitude}}` placeholder diganti dengan nilai perangkat saat ini pada saat perintah dikirim. Saat dipicu dari widget Pelacak, Pesan muncul di kanal Slack yang dikonfigurasikan untuk Webhook Anda.

### Nilai dinamis perintah

String perintah atau isi perintah perangkat lunak dapat menyertakan satu `<>` placeholder untuk meminta nilai setiap kali Anda mengirim perintah, alih-alih menanamkan nilai tetap secara hard-coded.

* Dalam perintah perangkat, tambahkan `<>` di dalam **String perintah** kolom, misalnya `relay,<>` untuk mengirimkan status relay yang berbeda pada setiap pengiriman.
* Dalam perintah perangkat lunak, tambahkan `<>` di dalam **Isi** kolom, misalnya `{"value": "<>"}`.

Hanya satu `<>` placeholder diizinkan per perintah. Menyimpan perintah dengan lebih dari satu placeholder akan menghasilkan error "Hanya satu nilai diizinkan per perintah. Hapus < > tambahan."

Saat Anda mengirim perintah yang berisi `<>` dari widget Pelacak, dialog meminta nilai sebelum dikirim. Lihat [Mengirim perintah dari widget Pelacak](#sending-commands-from-the-object-widget) untuk aliran lengkapnya.

{% hint style="info" %}
Klik ikon bantuan di blok Perintah untuk membuka **Cara kerja nilai perintah**, ringkasan tentang `<>` sintaks.
{% endhint %}

## Mengirim perintah dari widget Pelacak

Setelah perintah disimpan, perintah tersebut muncul di **Perintah** blok pada perangkat [widget Pelacak perangkat](/docs/user/id/guide/tracking/objects-list/object-widget.md) di modul Tracking.

<figure><img src="https://3001559198-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>

Klik **kirim** tombol di samping nama perintah untuk mengirimkannya. Blok Perintah menampilkan semua perintah perangkat dan perintah perangkat lunak yang dikonfigurasikan untuk perangkat tersebut.

* Jika perintah tidak berisi sebuah [placeholder nilai dinamis](#dynamic-command-values), Navixy mengirimkannya segera. Tidak ada dialog konfirmasi.
* Jika perintah berisi `<>`, dialog terbuka dan meminta Anda memasukkan nilai. Masukkan nilai hingga 500 karakter dan klik **Kirim** untuk mengirim perintah dengan nilai yang digantikan untuk `<>`. Node **Kirim** tombol tetap nonaktif sampai Anda memasukkan nilai, dan nilai kosong atau hanya berisi spasi tidak diterima.

Setelah perintah dijalankan, Navixy menampilkan notifikasi dengan hasil:

* **Perintah perangkat** menampilkan hanya apakah perintah berhasil, seperti `{ "success": true }` atau `{ "success": false }`.
* **Perintah perangkat lunak** menampilkan nama perintah dan respons mentah dari endpoint tujuan, seperti `{status, body}`. Respons yang panjang dapat digulir di dalam notifikasi.

Perintah yang dikirim juga muncul di [Peristiwa terbaru](/docs/user/id/guide/tracking/objects-list/object-widget.md#data-blocks) blok pada widget Pelacak, dengan hasilnya tersedia dalam tampilan yang dapat diperluas. Jika perintah menyertakan sebuah [placeholder nilai dinamis](#dynamic-command-values), judul entri juga menampilkan nilai yang dikirim, misalnya `Perbarui status <online>`.

<figure><img src="https://3001559198-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" %}
Perintah bersifat per perangkat. Perintah yang dikonfigurasikan untuk satu perangkat tidak muncul di widget Pelacak perangkat lain. Untuk mengirim perintah ke beberapa perangkat berdasarkan aturan atau kondisi, gunakan 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/id/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.
