> 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/flow-management/flow-configuration-example.md).

# Contoh konfigurasi aliran

Contoh langkah demi langkah yang menunjukkan cara membangun aliran IoT Logic yang mengumpulkan telemetri perangkat, menghitung metrik turunan, dan meneruskan data yang diperkaya ke sistem eksternal.

Contoh ini menunjukkan cara mengonfigurasi aliran yang mengumpulkan data dari perangkat IoT, melakukan perhitungan untuk menurunkan metrik yang relevan bagi bisnis, dan meneruskan data yang diperkaya ke sistem eksternal. Contoh ini menggunakan pola aliran linear yang dapat disesuaikan untuk berbagai kasus penggunaan industri.

## Skenario bisnis

Dalam skenario ini, sebuah organisasi telah menerapkan perangkat GPS pada aset mereka dan perlu memproses data dari perangkat ini untuk analitik bisnis. Organisasi menerima parameter berikut langsung dari perangkat pelacakan mereka:

* `speed`: Kecepatan kendaraan dalam kilometer per jam
* `temperature`: Suhu lingkungan dalam derajat Celsius
* `odometer`: Jarak tempuh dalam kilometer
* `pengapian`: Status pengapian mesin (1 = menyala, 0 = mati)
* `level_bahan_bakar`: Pengukuran tingkat bahan bakar saat ini
* `tekanan_psi`: Pembacaan tekanan dalam PSI
* `tegangan`: Tegangan baterai dalam volt
* `akselerator`: Posisi pedal akselerator dari bus CAN (0-255)
* `level_Bahan bakar_1`: Pengukuran level tangki Bahan bakar pertama
* `level_Bahan bakar_2`: Pengukuran level tangki Bahan bakar kedua

Organisasi perlu:

1. Kumpulkan data telemetri mentah dari perangkat untuk memelihara catatan lengkap operasi aset
2. Ubah satuan pengukuran agar sesuai dengan format pelaporan standarnya (satuan imperial) demi konsistensi dengan sistem bisnis yang ada
3. Hitung metrik berbasis waktu yang menunjukkan pola penggunaan untuk mengoptimalkan pemanfaatan aset dan jadwal pemeliharaan
4. Buat metrik turunan untuk menghasilkan wawasan operasional yang tidak disediakan secara langsung oleh perangkat keras
5. Teruskan data yang diperkaya ke sistem analisis eksternal untuk integrasi dengan platform business intelligence
6. Kirim data mentah yang tidak diubah ke Navixy untuk pemantauan

Aliran ini mengubah data mentah perangkat menjadi format yang secara langsung mendukung pengambilan keputusan bisnis sambil mempertahankan integritas pengukuran asli.

## Langkah konfigurasi aliran

Ikuti langkah-langkah berikut untuk membangun aliran transformasi dan penerusan data yang komprehensif:

{% stepper %}
{% step %}

### Buat aliran baru

Buka IoT Logic. Di halaman awal, klik **Buat aliran**. Masukkan *Pemrosesan Telemetri Aset* sebagai nama aliran, tambahkan deskripsi (*"Mengumpulkan data perangkat, menghitung metrik turunan, dan meneruskan ke platform analitik."*), dan pastikan **toggle aliran diaktifkan** sudah diaktifkan. Klik **Konfirmasi** untuk membuka kanvas.
{% endstep %}

{% step %}

### Konfigurasikan sumber data

1. Seret sebuah **Sumber Data** node dari menu kiri ke ruang kerja
2. Klik dua kali pada node untuk membuka panel konfigurasinya
3. Di **Nama node** jenis *Pelacak Aset*
4. Pilih perangkat yang akan disertakan dalam aliran ini dari daftar yang difilter

* Untuk contoh ini, pilih setidaknya dua perangkat dengan kemampuan serupa

5. Klik **Terapkan** untuk menyimpan konfigurasi node
   {% endstep %}

{% step %}

### Siapkan transformasi data dasar

1. Seret sebuah **Inisiasi Atribut** node dari menu kiri ke ruang kerja
2. Hubungkan **Sumber Data** node ke ini **Inisiasi Atribut** node
3. Klik dua kali node untuk membuka konfigurasinya
4. Di **Nama node** jenis *Konversi satuan*
5. Buat atribut berikut untuk konversi satuan (semua contoh menggunakan sintaks singkat, yang merujuk pada nilai atribut terbaru tanpa pemeriksaan validitas):
   1. Tambahkan atribut baru untuk konversi kecepatan (km/jam ke mph): 1. Nama atribut: *speed\_mph* 2. Nilai: `speed/1.609`
   2. Tambahkan atribut baru untuk konversi suhu (Celsius ke Fahrenheit): 1. Nama atribut: *temperature\_F* 2. Nilai: `temperature*1.8 + 32`
   3. Tambahkan atribut baru untuk konversi jarak (kilometer ke mil): 1. Nama atribut: *distance\_miles* 2. Nilai: `odometer/1.609`
   4. Tambahkan atribut baru untuk konversi tekanan (PSI ke Bar): 1. Nama atribut: *pressure\_bar* 2. Nilai: `pressure_psi * 0.06895`
6. Klik **Terapkan** untuk menyimpan konfigurasi node

{% hint style="info" %}
Untuk penjelasan tentang perhitungan yang diperkenalkan pada langkah ini, lihat [Konversi satuan dasar](#basic-unit-conversions)
{% endhint %}
{% endstep %}

{% step %}

### Buat metrik terhitung lanjutan

1. Seret yang lain **Inisiasi Atribut** node dari menu kiri ke ruang kerja
2. Hubungkan yang pertama **Inisiasi Atribut** node ke yang baru ini
3. Klik ganda pada node untuk membuka konfigurasinya
4. Di **Nama node** jenis *Perhitungan lanjutan*
5. Buat atribut berikut untuk metrik lanjutan:
   1. Tambahkan atribut untuk deteksi perubahan suhu:
      1. Nama atribut: *temperature\_change*
      2. Nilai: `value('temperature', 0, 'valid') - value('temperature', 1, 'valid')`
      3. `genTime('temperature', 0, 'valid')`
   2. Tambahkan atribut untuk mencari waktu yang telah berlalu antara dua pembacaan terakhir:
      1. Nama atribut: *time\_between\_readings\_ms*
      2. Nilai: `srvTime('speed', 0, 'valid') - srvTime('speed', 1, 'valid')`
      3. Waktu pembuatan: `genTime('speed', 0, 'valid')`
   3. Tambahkan atribut untuk membulatkan suhu ke bilangan bulat terdekat:
      1. Nama atribut: *temperature\_rounded*
      2. Nilai: `math:round(value('temperature', 0, 'valid'))`
   4. Tambahkan atribut untuk perhitungan nilai terstandarisasi (menormalkan level bahan bakar ke 0-100%):
      1. Nama atribut: *persentase level bahan bakar*
      2. Nilai: `(value('fuel_level', 0, 'valid') - 0) / (100 - 0) * 100`
   5. Tambahkan atribut untuk perhitungan persentase pengisian baterai:
      1. Nama atribut: *persentase\_baterai*
      2. Nilai: `(value('voltage', 0, 'valid') - 11) / (14 - 11) * 100`
   6. Tambahkan atribut untuk perhitungan posisi throttle:
      1. Nama atribut: *persentase throttle*
      2. Nilai: `value('throttle', 0, 'valid') / 255 * 100`
   7. Tambahkan atribut untuk level bahan bakar rata-rata dari beberapa sensor:
      1. Nama atribut: *rata-rata tingkat bahan bakar*
      2. Nilai: `(value('fuel_level_1', 0, 'valid') + value('fuel_level_2', 0, 'valid')) / 2`
6. Klik **Terapkan** untuk menyimpan konfigurasi node

{% hint style="info" %}
Untuk penjelasan tentang perhitungan yang diperkenalkan pada langkah ini, lihat [Perhitungan metrik lanjutan](#advanced-metrics-calculations).
{% endhint %}
{% endstep %}

{% step %}

### Konfigurasikan Titik Akhir Output

1. Seret sebuah **Titik Akhir Output** node dari menu kiri ke ruang kerja
2. Hubungkan yang kedua **Inisiasi Atribut** node ke ini **Titik Akhir Output** node
3. Klik node untuk membuka konfigurasinya
4. Atur pengaturan berikut:
   1. **Jenis endpoint**: *Titik akhir MQTT*
   2. **Nama endpoint**: *Platform analitik*
   3. **Protokol** : bawaan *Navixy Generic Protocol (JSON)*
   4. **IP/Domain** : Masukkan alamat sistem tujuan (mis., "*analytics.example.com*")
   5. **Port**: *8883* (bawaan untuk MQTT, Anda dapat membiarkannya kosong)
   6. **Aktifkan SSL**: *aktifkan*
   7. **Versi MQTT**: *5.0*
   8. **ID Klien MQTT**: *aset-telemetry-client*
   9. **Topik**: *telemetry/aset/raw*
   10. **QoS**: *1*
   11. **Autentikasi MQTT**: *Ya* (jika diperlukan oleh sistem tujuan Anda)
   12. **Login dan kata sandi MQTT**: Masukkan kredensial jika berlaku
5. Klik **Buat** untuk menyimpan konfigurasi node
   {% endstep %}

{% step %}

### Tambahkan Titik Akhir Output bawaan

1. Seret sebuah **Titik Akhir Output** node dari menu kiri ke ruang kerja
2. Di **Mode** pilih **Titik akhir default**
3. Klik **Simpan** untuk menerapkan konfigurasi node
4. Hubungkan *Pelacak Aset* (**Sumber Data**) node ke dalamnya

Ini memastikan bahwa data mentah dikirim ke Navixy langsung dari perangkat, tanpa transformasi maupun pengayaan apa pun.
{% endstep %}

{% step %}

### Simpan dan uji aliran

Konfigurasi akhir Anda akan terlihat seperti ini:

<figure><img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-76943e439a5bab01e5e25fe9f9199d46c99ade30%2Fiot-logic-flow-configuration-example.png?alt=media" alt="Complete flow configuration with all nodes connected in IoT Logic workspace"><figcaption></figcaption></figure>

Klik **Simpan aliran** tombol pada the **Node** panel untuk menyimpan konfigurasi aliran Anda.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
Gunakan [Penganalisis Data (DSA)](/docs/user/id/guide/account/iot-logic/data-stream-analyzer.md) untuk memantau data masuk guna memverifikasi:

* Perangkat mengirimkan data ke aliran
* Perhitungan berjalan sebagaimana diharapkan
* Data diteruskan ke tujuan. Misalnya, mari kita periksa bahwa konversi kecepatan dihitung dengan benar pada sebuah truk. Untuk melakukannya di DSA, pilih **Volvo** perangkat dan atribut **speed** dan **speed\_mph**:\ <img src="https://3001559198-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-dd91833c4e91cbf04798d44c3604cd4ef38c0937%2Fimage-20250407-204530.png?alt=media" alt="Speed attributes for one device in Data Stream Analyzer" data-size="original">

Sudah baik! Data diterima dan dikonversi dengan sukses.
{% endhint %}

## Penjelasan transformasi data

Mari kita telaah perhitungan utama yang digunakan dalam aliran ini.

### Konversi satuan dasar

Yang pertama **node Inisiasi Atribut** melakukan konversi satuan sederhana:

* **Kecepatan**: Mengonversi km/jam ke mph dengan membaginya dengan 1,609
* **Suhu**: Mengonversi Celsius ke Fahrenheit menggunakan rumus °F = °C × 1,8 + 32
* **Jarak**: Mengonversi kilometer ke mil dengan membaginya dengan 1,609
* **Tekanan**: Mengonversi PSI ke Bar dengan mengalikannya dengan 0,06895, sehingga kompatibel dengan standar pengukuran tekanan internasional

Konversi ini memastikan konsistensi dengan format pelaporan standar dan membuat data langsung dapat digunakan untuk analisis. Konversi satuan sangat berharga bagi organisasi multinasional yang beroperasi di berbagai wilayah dengan standar pengukuran yang berbeda.

### Perhitungan metrik lanjutan

Yang kedua **node Inisiasi Atribut** melakukan perhitungan yang lebih kompleks:

* **Deteksi perubahan suhu**: Menghitung selisih antara pembacaan suhu saat ini dan sebelumnya untuk mengidentifikasi perubahan mendadak. Hal ini membantu mendeteksi masalah peralatan seperti kegagalan pendinginan pada kendaraan transportasi atau masalah HVAC di fasilitas. Misalnya, kenaikan 5°C yang tiba-tiba pada kontainer berpendingin dapat menandakan kegagalan sistem pendingin yang memerlukan perhatian segera.
  * **Waktu pembuatan**: Menggunakan `genTime('temperature', 0, 'valid')` sangat penting di sini karena mempertahankan stempel waktu yang tepat saat pembacaan suhu dihasilkan oleh perangkat, memastikan analisis perubahan suhu berbasis waktu yang akurat.
  * **Waktu server**: Nilai default `now()` secara otomatis merekam saat server menerima data. Stempel waktu ini tidak perlu diubah, jadi biarkan kolom ini kosong saat konfigurasi.
* **Waktu antar pembacaan**: Mengukur interval antara transmisi data berurutan dengan membandingkan stempel waktu server. Perhitungan ini membantu mengidentifikasi masalah komunikasi atau memvalidasi bahwa perangkat melaporkan pada frekuensi yang diharapkan. Interval yang tidak teratur dapat mengindikasikan masalah konektivitas, sedangkan penundaan yang konsisten dapat menunjukkan kemacetan jaringan atau masalah konfigurasi perangkat.
* **Pembulatan nilai**: Menerapkan pembulatan matematis pada pembacaan suhu, mengurangi presisi desimal menjadi bilangan bulat. Ini menyederhanakan visualisasi data dan pelaporan sekaligus mengurangi kebutuhan penyimpanan untuk data historis. Nilai yang dibulatkan sangat berguna untuk tampilan dasbor dan aturan peringatan berbasis ambang batas ketika presisi desimal tidak diperlukan.
  * **Waktu pembuatan**: Menentukan `genTime('speed', 0, 'valid')` menghubungkan metadata ini langsung ke stempel waktu pembacaan asli, sehingga memungkinkan analisis interval waktu sekaligus waktu terjadinya.
  * **Waktu server**: Nilai default `now()` secara otomatis merekam saat server menerima data. Stempel waktu ini tidak perlu diubah, jadi biarkan kolom ini kosong saat konfigurasi.
* **Perhitungan nilai terstandarisasi**: Menormalkan pembacaan sensor mentah ke skala persentase (0-100%). Standarisasi ini memudahkan perbandingan pembacaan di berbagai jenis sensor dan model kendaraan. Untuk Armada, ini memungkinkan pelaporan tingkat bahan bakar yang konsisten terlepas dari implementasi sensor bahan bakar yang spesifik pada setiap model kendaraan, sehingga memungkinkan aturan peringatan bahan bakar rendah dan analisis konsumsi yang seragam.
* **Perhitungan persentase muatan baterai**: Menormalkan pembacaan tegangan baterai (rentang 11V-14V) ke skala 0-100% agar lebih mudah dipantau. Misalnya, pembacaan 12,5V akan dinormalkan menjadi 50%, memberikan indikator intuitif tentang kesehatan baterai di berbagai jenis kendaraan.
* **Perhitungan posisi throttle**: Mengonversi data posisi throttle mentah (rentang 0-255) dari bus CAN kendaraan ke skala persentase. Standarisasi ini membantu operator dengan cepat memahami perilaku supir dan performa kendaraan tanpa perlu menafsirkan nilai sensor mentah.
* **Rata-rata level bahan bakar dari beberapa sensor**: Menggabungkan pembacaan dari dua sensor bahan bakar terpisah untuk menghasilkan pengukuran level bahan bakar keseluruhan yang lebih akurat. Ini sangat berguna untuk kendaraan dengan bentuk tangki yang kompleks atau beberapa tangki, di mana satu sensor mungkin tidak memberikan pembacaan yang andal karena pergeseran bahan bakar selama pergerakan.

## Ringkasan aliran contoh

Konfigurasi aliran ini menunjukkan beberapa kemampuan utama IoT Logic:

1. **Standardisasi**: Mengonversi pembacaan spesifik perangkat menjadi metrik bisnis yang terstandar
2. **Pengayaan**: Membuat metrik baru yang bermakna yang tidak tersedia langsung dari sensor perangkat
3. **Transformasi**: Mengubah satuan agar sesuai dengan kebutuhan pelaporan bisnis
4. **Konteks historis**: Menggunakan pembacaan sebelumnya untuk menghitung metrik berbasis tren
5. **Penentuan status**: Membuat nilai kategoris berdasarkan beberapa masukan sensor

Kombinasi kemampuan ini mengubah data mentah perangkat menjadi intelijen bisnis yang dapat ditindaklanjuti, secara langsung mendukung pengambilan keputusan operasional sambil mempertahankan integritas pengukuran asli.


---

# 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/flow-management/flow-configuration-example.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.
