> 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 ini menunjukkan cara mengonfigurasi aliran yang mengumpulkan data dari perangkat IoT, melakukan perhitungan untuk menghasilkan metrik yang relevan bagi bisnis, dan meneruskan data yang diperkaya ke sistem eksternal. Contoh ini menggunakan pola aliran linear yang dapat disesuaikan dengan berbagai kasus penggunaan industri.

## Skenario bisnis

Dalam skenario ini, sebuah organisasi telah memasang perangkat GPS pada asetnya dan perlu memproses data dari perangkat ini untuk analitik bisnis. Organisasi menerima parameter berikut secara langsung dari perangkat pelacaknya:

* `kecepatan`: Kecepatan kendaraan dalam kilometer per jam
* `temperature`: Suhu lingkungan dalam Celsius
* `odometer`: Jarak tempuh dalam kilometer
* `Pengapian`: Status Pengapian mesin (1 = aktif, 0 = nonaktif)
* `level Bahan bakar`: Pengukuran level Bahan bakar saat ini
* `tekanan_psi`: Pembacaan tekanan dalam PSI
* `tegangan`: Tegangan baterai dalam volt
* `pedal gas`: Posisi pedal gas dari bus CAN (0-255)
* `level Bahan bakar 1`: Pengukuran level tangki Bahan bakar pertama
* `level bahan bakar 2`: Pengukuran tingkat tangki bahan bakar kedua

Organisasi perlu:

1. Kumpulkan data telemetri mentah dari perangkat untuk mempertahankan catatan lengkap operasi aset
2. Ubah satuan pengukuran agar sesuai dengan format pelaporan standar mereka (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 diberikan secara langsung oleh perangkat keras
5. Teruskan data yang diperkaya ke sistem analisis eksternal untuk diintegrasikan dengan platform business intelligence
6. Kirim data mentah tanpa perubahan 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 ini untuk membangun aliran transformasi dan penerusan data yang komprehensif:

{% stepper %}
{% step %}

### Buat aliran baru

Buka IoT Logic. Di halaman beranda, klik **Buat aliran**. Masukkan *Pemrosesan Telemetri Aset* sebagai nama aliran, tambahkan deskripsi (*"Mengumpulkan data perangkat, menghitung metrik turunan, dan meneruskannya ke platform analitik."*), dan pastikan **Aliran diaktifkan** toggle 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** tipe *Pelacak Aset*
4. Pilih perangkat yang akan disertakan dalam aliran ini dari daftar yang telah 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 ini ke **Inisiasi Atribut** node
3. Klik dua kali node untuk membuka konfigurasinya
4. Di **Nama node** tipe *Konversi satuan*
5. Buat atribut berikut untuk konversi unit (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 unit 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 dua kali pada node untuk membuka konfigurasinya
4. Di **Nama node** tipe *Perhitungan lanjutan*
5. Buat atribut berikut untuk metrik lanjutan:
   1. Tambahkan atribut untuk mendeteksi 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 berlalu antara dua pembacaan terakhir:
      1. Nama atribut: *time\_between\_readings\_ms*
      2. Nilai: `srvTime('speed', 0, 'valid') - srvTime('speed', 1, 'valid')`
      3. Waktu pembangkitan: `genTime('speed', 0, 'valid')`
   3. Tambahkan atribut untuk membulatkan suhu ke bilangan bulat terdekat:
      1. Nama atribut: *suhu\_dibulatkan*
      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\_tingkat\_Bahan bakar*
      2. Nilai: `(value('fuel_level', 0, 'valid') - 0) / (100 - 0) * 100`
   5. Tambahkan atribut untuk perhitungan persentase daya 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 tingkat 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 ini ke **Titik Akhir Output** node
3. Klik pada node untuk membuka konfigurasinya
4. Konfigurasikan 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* (default 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. **Nama pengguna 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 dan pengayaan apa pun.
{% endstep %}

{% step %}

### Simpan dan uji aliran

Konfigurasi akhir Anda akan terlihat seperti ini:

<figure><img src="/files/f331aea161144e692258a0e376cae5900e54b2ea" alt="Complete flow configuration with all nodes connected in IoT Logic workspace"><figcaption></figcaption></figure>

Klik tombol **Simpan aliran** tombol pada **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 mengirim data ke aliran
* Perhitungan berfungsi sebagaimana mestinya
* Data diteruskan ke tujuan Misalnya, mari periksa bahwa konversi kecepatan dihitung dengan benar pada sebuah truk. Untuk melakukannya di DSA, pilih **Volvo** perangkat dan atribut **kecepatan** dan **speed\_mph**:\ <img src="/files/1f53f2b2b7a301cc11ddcb2ecb2673c75d1ed80e" alt="Speed attributes for one device in Data Stream Analyzer" data-size="original">

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

## Penjelasan transformasi data

Mari kita telaah perhitungan utama yang digunakan dalam aliran ini.

### Konversi unit 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 mengalikan 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. Ini membantu mendeteksi masalah peralatan seperti kegagalan pendingin pada kendaraan angkut atau masalah HVAC di fasilitas. Misalnya, kenaikan mendadak 5°C pada kontainer berpendingin mungkin menunjukkan 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, sehingga memastikan analisis perubahan suhu berbasis waktu yang akurat.
  * **Waktu server**: Nilai bawaan `now()` secara otomatis menangkap saat server menerima data. Stempel waktu ini tidak perlu diubah, jadi biarkan bidang ini kosong selama 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 yang tidak memerlukan presisi desimal.
  * **Waktu pembuatan**: Menentukan `genTime('speed', 0, 'valid')` menghubungkan metadata ini langsung ke stempel waktu pembacaan asli, sehingga memungkinkan analisis baik terhadap interval waktu maupun kapan peristiwa itu terjadi.
  * **Waktu server**: Nilai bawaan `now()` secara otomatis menangkap saat server menerima data. Stempel waktu ini tidak perlu diubah, jadi biarkan bidang ini kosong selama konfigurasi.
* **Perhitungan nilai terstandar**: Menormalkan pembacaan sensor mentah ke skala persentase (0-100%). Standardisasi ini memudahkan perbandingan pembacaan di berbagai jenis sensor dan model kendaraan. Dalam manajemen armada, ini memungkinkan pelaporan tingkat bahan bakar yang konsisten terlepas dari implementasi sensor bahan bakar yang spesifik di setiap model kendaraan, sehingga memungkinkan aturan peringatan bahan bakar rendah dan analisis konsumsi yang seragam.
* **Perhitungan persentase pengisian baterai**: Menormalkan pembacaan tegangan baterai (rentang 11V-14V) ke skala 0-100% untuk memudahkan pemantauan. Misalnya, pembacaan 12,5V akan dinormalisasi menjadi 50%, sehingga memberikan indikator kesehatan baterai yang intuitif di berbagai jenis kendaraan.
* **Perhitungan posisi throttle**: Mengonversi data posisi throttle mentah (rentang 0-255) dari CAN bus kendaraan ke skala persentase. Standardisasi ini membantu operator memahami perilaku supir dan performa kendaraan dengan cepat tanpa perlu menafsirkan nilai sensor mentah.
* **Rata-rata tingkat bahan bakar dari beberapa sensor**: Menggabungkan pembacaan dari dua sensor bahan bakar terpisah untuk menghasilkan pengukuran tingkat 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 bahan bakar bergeser selama gerakan kendaraan.

## Ringkasan contoh aliran

Konfigurasi aliran ini menunjukkan beberapa kemampuan utama IoT Logic:

1. **Standarisasi**: Mengonversi pembacaan khusus perangkat menjadi metrik bisnis yang terstandarisasi
2. **Pengayaan**: Menciptakan 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 perangkat mentah menjadi intelijen bisnis yang dapat ditindaklanjuti, yang secara langsung mendukung pengambilan keputusan operasional sambil menjaga 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 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/account/iot-logic/flow-management/flow-configuration-example.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.
