> 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/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md).

# Mengelola atribut

Buat, edit, dan hapus atribut di node Inisiasi Atribut. Gunakan pengisian otomatis untuk menyusun ekspresi rumus dengan cepat dari bidang telemetri yang tersedia.

Blok **Inisiasi Atribut** Node ini memungkinkan Anda membuat, mengedit, dan mengelola atribut data di seluruh aliran IoT Logic Anda. Panduan ini mencakup tindakan dasar pengelolaan atribut (membuat, mengedit, menghapus) dan operasi penting, termasuk fungsionalitas pengisian otomatis untuk pembuatan formula.

## Membuat atribut

Berikut cara membuat atribut baru di node Inisiasi Atribut:

{% stepper %}
{% step %}

### Tambahkan atribut baru

Klik **Tambah atribut** tombol
{% endstep %}

{% step %}

### Beri nama atribut

Masukkan nama untuk atribut Anda (mis., "Speed mph"). Nama ini akan ditampilkan di [Penganalisis Data](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md) dan berfungsi sebagai [nama sensor kustom di Navixy](/docs/user/id/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).
{% endstep %}

{% step %}

### Tentukan formula

Tentukan ekspresi nilai. Untuk pembuatan formula yang lebih cepat, gunakan [pengisian otomatis](#autofill-attribute-names).

{% hint style="info" %}
Sintaks pendek adalah default untuk nama atribut yang diisi otomatis dalam formula, dan Anda juga dapat menggunakannya untuk input formula manual. Saat mereferensikan hanya nilai valid terbaru dari suatu atribut, Anda dapat menghilangkan sintaks fungsi lengkap dan tanda kutip. `value()` Sebagai contoh, formula konversi suhu dapat ditulis sebagai `temperature*1.8 + 32` tetap `value('temperature', 0, 'valid')*1.8 + 32`.
{% endhint %}
{% endstep %}

{% step %}

### Selesaikan konfigurasi

Klik **Simpan** untuk mengonfirmasi konfigurasi node
{% endstep %}
{% endstepper %}

Atribut baru disimpan di node dan perhitungan yang dikonfigurasi diterapkan segera dalam aliran.

### Pengaturan waktu untuk atribut

Pengaturan waktu memberi Anda kendali atas cap waktu yang terkait dengan atribut Anda:

* **Waktu pembuatan**: Saat data dibuat
  * Gunakan `now()` untuk menetapkan waktu saat ini dalam milidetik
  * Gunakan `genTime('parameter_name', 0, 'valid')` untuk menggunakan waktu pembuatan milik parameter itu sendiri
* **Waktu server**: Saat data diterima oleh IoT Logic
  * Gunakan `now()` untuk menetapkan waktu saat ini dalam milidetik
  * Gunakan `srvTime('parameter_name', 0, 'valid')` untuk menggunakan waktu server parameter
  * Tambahkan offset untuk menyesuaikan zona waktu (misalnya, `srvTime('can_speed', 0, 'valid') + 120000` menambahkan 2 menit)

{% hint style="info" %}
Pengaturan waktu penting untuk analisis data dan sinkronisasi. Konfigurasi waktu yang tepat memastikan bahwa data Anda mempertahankan integritas kronologis sepanjang aliran.
{% endhint %}

### Pengisian otomatis nama atribut

Saat membuat formula perhitungan, Anda perlu mereferensikan nama atribut yang sudah ada dari perangkat fisik atau atribut terhitung dari node lain. Untuk menyederhanakan proses ini dan mencegah salah ketik, IoT Logic menyediakan fungsionalitas pengisian otomatis untuk nama atribut.

Untuk menggunakan pengisian otomatis saat membuat formula:

1. Klik ![image-20250605-130755.png](https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-246f310d842a27356a230db8e06eb7dfa5d87a8a%2Fimage-20250605-130755.png?alt=media) di **Rumus** bidang.
2. Pilih atribut yang diinginkan dari daftar yang muncul; daftar ini mendukung input teks manual untuk pencarian.
3. Klik nama atribut untuk menyisipkannya ke dalam formula Anda.

Atribut yang dipilih secara otomatis disisipkan dalam format siap pakai, menggunakan [sintaks pendek](#short-syntax) Bahasa Ekspresi IoT Logic Navixy. Artinya, entri yang diisi otomatis mengakses nilai terbaru dari atribut yang dipilih.

Anda dapat memodifikasi parameter sesuai kebutuhan - ubah nomor indeks untuk nilai historis atau sesuaikan tanda validitas. Untuk melakukannya, Anda perlu mendefinisikan formula menggunakan [sintaks lengkap](#full-syntax) secara eksplisit, di dalam `value()` fungsi.

Daftar difilter berdasarkan sumber data aliran Anda dan cocok dengan yang terlihat di [Penganalisis Data](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md).

{% hint style="info" %}
Daftar pengisian otomatis hanya menampilkan atribut yang memenuhi **semua** kriteria berikut secara bersamaan:

* **Didukung oleh perangkat** - Atribut harus didukung oleh setidaknya satu perangkat yang saat ini ditambahkan ke aliran Anda
* **Benar-benar dikirim** - Perangkat harus telah mengirim data nyata untuk atribut ini (bukan hanya mendukungnya secara teoritis)
* **Tersedia dalam aliran** - Ini mencakup parameter perangkat dan atribut terhitung dari **Inisiasi Atribut** node lain dalam aliran yang sama

**Contoh**: Jika perangkat Anda mendukung sensor kecepatan dan suhu, tetapi hanya mengirimkan data kecepatan (mungkin karena sensor suhu rusak), daftar pengisian otomatis akan menampilkan atribut 'speed' tetapi bukan 'temperature'. Atribut temperature hanya akan muncul setelah perangkat benar-benar mengirimkan pembacaan suhu, meskipun secara teknis perangkat mendukungnya.
{% endhint %}

#### Atribut terindeks dalam pengisian otomatis

Beberapa atribut data berisi beberapa nilai yang diindeks di dalam satu atribut, seperti pembacaan dari beberapa sensor analog yang terhubung ke perangkat telematika utama. Untuk menggunakan atribut ini dalam perhitungan, Anda perlu menentukan nomor indeks yang tepat sesuai sensor atau input spesifik yang ingin Anda referensikan.

Misalnya, jika Anda perlu bekerja dengan pembacaan tegangan dari input analog ketiga pada perangkat Anda, data ini masuk melalui atribut `analog_2` (menggunakan pengindeksan berbasis nol, di mana input pertama adalah indeks 0). Dalam formula Anda, ini akan ditampilkan sebagai `value('analog_2', 0, 'valid')`.

Pengisian otomatis juga menangani skenario ini untuk Anda:

* Atribut terindeks ditandai dengan ![image-20250606-123725.png](https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-65afe9be52f6e729d0e1cc25714ef6f5dbd39294%2Fimage-20250606-123725.png?alt=media) ikon di daftar pengisian otomatis.
* Entri ini menampilkan rentang indeks yang tersedia dalam tanda kurung siku, seperti `analog_[1..4]` untuk atribut yang mendukung lima nilai terindeks (indeks 1 hingga 4).
* Saat Anda memilih atribut terindeks, kursor otomatis berada di akhir nama atribut di dalam tanda kutip, sehingga Anda dapat langsung mengetik nomor indeks spesifik yang Anda perlukan.

## Bahasa ekspresi

Semua formula di IoT Logic mengikuti spesifikasi [Bahasa Ekspresi IoT Logic Navixy](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md). Di bawah ini, Anda akan menemukan referensi singkat untuk dua opsi sintaks bahasa tersebut. Pilihan sintaks bergantung pada kasus tertentu, dan dirancang untuk kemudahan:

* Sintaks pendek mudah ditulis dan paling cocok saat Anda hanya memerlukan data terbaru.
* Sintaks panjang sedikit lebih kompleks, tetapi menawarkan kontrol lebih besar atas kedalaman data saat Anda perlu menangani nilai historis.

{% hint style="success" %}
Opsi sintaks tidak memengaruhi formula itu sendiri! Anda juga dapat menggabungkan sintaks pendek dan panjang dalam formula yang sama.
{% endhint %}

Formula juga dapat memanggil fungsi Perimeter, yang membaca posisi perangkat terhadap Perimeter di akun Anda. `geofenceName()` mengembalikan nama Perimeter tempat perangkat berada sebagai teks, sehingga langsung cocok dengan nilai atribut. Lihat [Fungsi Perimeter](/docs/user/id/guide/account/iot-logic/nodes/geofence-functions.md).

Kedua opsi sintaks dapat membaca nilai yang tidak ada. Formula yang kemudian menghitung dengan nilai tersebut tidak menghasilkan apa-apa, dan atribut dikeluarkan dari paket data. Lihat [Nilai yang hilang dalam ekspresi](/docs/user/id/guide/account/iot-logic/nodes/missing-values-in-expressions.md).

### Sintaks pendek

Opsi formula pendek mengakses nilai atribut terbaru, tanpa memeriksa validitas. Gunakan ini ketika Anda tidak memerlukan nilai historis dalam formula. Nilai yang dibacanya dapat kosong, dan sebagian besar operator tidak dapat menghitung dengan nilai kosong.

{% hint style="info" %}
[Pengisian otomatis ](#autofill-attribute-names)fitur selalu menggunakan sintaks pendek.
{% endhint %}

**Sintaks:** `attribute_name`

**Default:**

* Indeks: `0` (nilai saat ini)
* Validasi: `'all'` (mencakup nilai null)

Sebagai contoh, bentuk pendek `temperature` sama dengan formula lengkap `value('temperature', 0, 'all')`. Ini berarti Anda dapat dengan mudah membuat perhitungan tanpa menambahkan parameter default secara eksplisit:

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

### Sintaks lengkap

Menggunakan sintaks formula lengkap memungkinkan Anda mengakses nilai historis atau mode validasi eksplisit. Ini membantu saat Anda perlu menggunakan nilai selain yang terbaru dan menangani null. Dalam kasus sintaks lengkap, Anda perlu mendefinisikan `value()` fungsi.

**Fungsi:** `value(attribute_name, index, validation)`

**Parameter:**

<table><thead><tr><th width="152.54547119140625">Parameter</th><th width="176.45452880859375">Rentang/Nilai</th><th>Deskripsi</th></tr></thead><tbody><tr><td><code>attribute_name</code></td><td>Atribut valid apa pun</td><td>Nama persis dari telemetri perangkat (dapat <a href="#autofill-attribute-names">diisi otomatis</a>)</td></tr><tr><td><code>indeks</code></td><td>0-11</td><td>Posisi historis: 0=saat ini, 1=sebelumnya, 11=nilai tersimpan tertua</td></tr><tr><td><code>validasi</code></td><td><code>'all'</code> atau <code>'valid'</code></td><td><code>'all'</code>=mencakup null (indeks tepat), <code>'valid'</code>=mengecualikan null (pembacaan valid ke-N)</td></tr></tbody></table>

Navixy menyimpan 12 pembacaan per atribut untuk setiap perangkat, dan menyimpannya hingga 30 hari setelah pesan terbaru dari perangkat tersebut. Perangkat yang kembali setelah lebih dari 30 hari tanpa komunikasi memulai tanpa riwayat. Pada pesan pertama setelah kembali, `value('temperature', 1, 'valid')` bernilai null. Untuk memeriksa riwayat yang dimiliki perangkat saat ini, buka [Penganalisis Data](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md).

**Contoh:**

* Pembacaan sebelumnya apa pun

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

* Pembacaan valid ke-5 ke belakang

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

* Perubahan suhu (sintaks pendek dan lengkap digunakan dalam formula yang sama)

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

{% hint style="info" %}
Untuk contoh formula lainnya, lihat [Contoh perhitungan](/docs/user/id/guide/account/iot-logic/nodes/initiate-attribute-node/calculation-examples.md).
{% endhint %}

## Mengedit atribut yang ada

Untuk memodifikasi atribut yang ada:

1. Buka jendela konfigurasi node dengan mengarahkan mouse ke node untuk menampilkan tindakan cepat, atau klik ganda node
2. Temukan atribut yang ingin Anda edit di daftar atribut
3. Lakukan perubahan yang diperlukan di bidang teks properti atribut: **Nama atribut**, **Rumus** atau pengaturan waktu
4. Jika Anda perlu mengedit atribut lain di node ini, ulangi langkah 3 untuk atribut tersebut
5. Klik **Simpan** untuk menerapkan perubahan Anda pada konfigurasi node

{% hint style="info" %}
Saat Anda mengedit atribut, perubahan hanya akan diterapkan pada data baru yang diterima setelah penyimpanan. Data historis yang sudah dikumpulkan tidak akan dihitung ulang.
{% endhint %}

## Menghapus atribut

Untuk menghapus atribut yang tidak lagi diperlukan:

1. Buka jendela konfigurasi node dengan mengarahkan mouse ke node untuk menampilkan tindakan cepat, atau klik ganda node
2. Temukan atribut yang ingin Anda hapus dan klik <img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-91fdf4a5f67bca3919ef3bde451fbd50678ef82e%2Fimage.png?alt=media" alt="" data-size="line">
3. Klik **Terapkan perubahan** untuk mengonfirmasi konfigurasi node

{% hint style="info" %}
Saat Anda menghapus atribut, atribut tersebut tidak akan lagi dihitung untuk data baru, tetapi data historis yang berisi atribut ini akan tetap tidak berubah di basis data.
{% 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
