> 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/analytics/id/iot-query/schema-overview/transformation-layer/common-transformations/input-change-events.md).

# Peristiwa perubahan input

Cara tabel peristiwa perubahan input mendeteksi perubahan input diskret dan cara melakukan kueri padanya.

Transformasi peristiwa perubahan input merekam setiap kali input diskret sebuah perangkat berubah status dan perubahan itu cocok dengan sebuah `input_change` aturan. Setiap baris di `processed_common_data.input_change_events` merepresentasikan satu perubahan yang cocok: input mana yang berubah, nilai barunya, kapan dan di mana itu terjadi, serta aturan mana yang dipenuhinya.

Seperti peristiwa Supir berbasis aturan, peristiwa perubahan input berjalan pada jadwal tetap, bukan terus-menerus. Fungsi penyegaran mengevaluasi ulang jendela data mentah setiap 15 menit, sehingga baris baru dapat tertinggal hingga 15 menit dari perubahan input aktual pada perangkat.

{% hint style="info" %}

* Semua cap waktu disimpan dalam UTC.
* Hanya perubahan yang cocok dengan sebuah `input_change` aturan menghasilkan satu baris. Aktivitas input diskret yang tidak cocok dengan aturan apa pun masih tersedia di `raw_telematics_data.additional_data`, hanya saja tidak ditampilkan di sini.
  {% endhint %}

## Tabel keluaran: processed\_common\_data.input\_change\_events

Setiap baris mewakili satu perubahan input terdeteksi yang cocok dengan sebuah `input_change` aturan. Tabel ini dikunci berdasarkan `device_id`, `device_time`, dan `rule_id`.

<table><thead><tr><th width="180">Bidang</th><th width="100">Tipe</th><th>Deskripsi</th></tr></thead><tbody><tr><td><code>device_id</code></td><td>bilangan bulat</td><td>Pengenal perangkat.</td></tr><tr><td><code>Pelacak_id</code></td><td>bilangan bulat</td><td>Pengenal Pelacak (kendaraan/Aset) yang terkait dengan perangkat.</td></tr><tr><td><code>label objek</code></td><td>teks</td><td>Nama pelacak yang mudah dibaca. Sudah didenormalisasi ke dalam tabel ini, jadi tidak seperti Perjalanan, tidak ada join ke <code>raw_business_data.objects</code> diperlukan untuk menampilkannya.</td></tr><tr><td><code>device_time</code></td><td>stempel waktu</td><td>Saat perubahan input terjadi pada perangkat.</td></tr><tr><td><code>rule_id</code></td><td>bilangan bulat</td><td>Pengenal dari <code>input_change</code> aturan yang cocok.</td></tr><tr><td><code>input_number</code></td><td>bilangan bulat</td><td>Nomor input, berbasis 1, sesuai dengan posisi dalam <code>discrete_inputs</code> string bit dalam <code>raw_telematics_data.additional_data</code>.</td></tr><tr><td><code>input_value</code></td><td>bilangan bulat</td><td>Nilai baru input setelah perubahan: <code>0</code> atau <code>1</code>.</td></tr><tr><td><code>jenis_peristiwa</code></td><td>teks</td><td>Selalu <code>input_change</code>.</td></tr><tr><td><code>event_comment1</code></td><td>teks</td><td>Komentar pertama yang dikonfigurasi pada aturan yang cocok.</td></tr><tr><td><code>event_comment2</code></td><td>teks</td><td>Komentar kedua yang dikonfigurasikan pada aturan yang cocok.</td></tr><tr><td><code>zone_id</code></td><td>bilangan bulat</td><td>Pengidentifikasi zona Perimeter tempat perangkat berada saat perubahan terjadi. Null jika aturan tidak terkait zona.</td></tr><tr><td><code>zone_label</code></td><td>teks</td><td>Nama zona tersebut. Null jika aturan tidak terkait zona.</td></tr><tr><td><code>latitude</code></td><td>numeric</td><td>Lintang pada saat perubahan, dalam derajat.</td></tr><tr><td><code>longitude</code></td><td>numeric</td><td>Bujur pada saat perubahan, dalam derajat.</td></tr><tr><td><code>created_at</code></td><td>stempel waktu</td><td>Ketika baris ditulis oleh penyegaran terjadwal.</td></tr></tbody></table>

Contoh-contoh di bawah ini menunjukkan pola kueri yang umum. Kueri dasar mengembalikan perubahan input terbaru yang diurutkan berdasarkan perangkat dan waktu. Yang kedua memfilter ke nomor dan nilai input tertentu. Yang ketiga memfilter ke aturan tertentu.

{% tabs %}
{% tab title="Kueri dasar" %}
{% code overflow="wrap" expandable="true" %}

```sql
SELECT
    device_id,
    pelacak_label,
    waktu perangkat,
    nomor input,
    nilai masukan,
    zone_label
FROM processed_common_data.input_change_events
WHERE device_time >= CURRENT_DATE - INTERVAL '7 days'
ORDER BY device_id, device_time;
```

{% endcode %}
{% endtab %}

{% tab title="Filter berdasarkan input" %}
{% code overflow="wrap" expandable="true" %}

```sql
SELECT
    device_id,
    pelacak_label,
    waktu perangkat,
    nilai masukan,
    zone_label
FROM processed_common_data.input_change_events
WHERE input_number = 3
  AND input_value = 1
  AND device_time >= CURRENT_DATE - INTERVAL '7 days'
ORDER BY device_id, device_time;
```

{% endcode %}
{% endtab %}

{% tab title="Filter berdasarkan aturan" %}
{% code overflow="wrap" expandable="true" %}

```sql
SELECT
    device_id,
    pelacak_label,
    waktu perangkat,
    nomor input,
    input_value
FROM processed_common_data.input_change_events
WHERE rule_id = 12345
  AND device_time >= CURRENT_DATE - INTERVAL '7 days'
ORDER BY device_id, device_time;
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Cara mendeteksi perubahan input

Baris dalam tabel ini tidak ditulis seketika saat sebuah input berubah pada perangkat. Baris ini ditulis pada penyegaran terjadwal berikutnya, yang mengevaluasi ulang jendela data mentah terhadap status terakhir yang diketahui dari setiap perangkat.

{% stepper %}
{% step %}

#### Pembaruan terjadwal

Setiap 15 menit, fungsi penyegaran membaca jendela baris terbaru dari `raw_telematics_data.additional_data`.
{% endstep %}

{% step %}

#### Membandingkan dengan status terakhir yang diketahui

Masing-masing perangkat saat ini `discrete_inputs` dan `discrete_outputs` String bit dibandingkan, bit demi bit, dengan status yang dicatat pada penyegaran sebelumnya. Hanya bit yang benar-benar berubah yang dipertimbangkan lebih lanjut.
{% endstep %}

{% step %}

#### Pencocokan terhadap aturan

Bit yang berubah menjadi kejadian kandidat jika nomor input dan nilai barunya cocok dengan kondisi yang dikonfigurasi pada sebuah `input_change` aturan. Lihat [Pemicu input](https://gitlab.navixy.dev/docs/user-docs/-/tree/main/docs/user-guide/guide/events-and-notifications/inputs-and-outputs/input-triggering.md) untuk cara aturan ini dikonfigurasi, dan [Referensi jenis aturan](https://navixy.com/docs/navixy-api/user-api/backend-api/resources/tracking/tracker/rules/rule_types) untuk daftar lengkap jenis aturan.
{% endstep %}

{% step %}

#### Pemeriksaan zona

Jika aturan yang cocok ditautkan ke Perimeter, penyegaran memastikan perangkat berada di dalam zona itu pada saat perubahan sebelum menulis baris. Aturan yang tidak tertaut ke zona melewati pemeriksaan ini.
{% endstep %}

{% step %}

#### Memperbarui status terakhir yang diketahui

Setelah penyegaran selesai, status bit terbaru setiap perangkat dicatat untuk dibandingkan pada run berikutnya.
{% endstep %}
{% endstepper %}

## Kustomisasi

Peristiwa perubahan input tidak dikustomisasi melalui alur kerja Transformation Builder seperti halnya Perjalanan. Baris yang muncul di sini secara langsung mencerminkan aturan apa pun yang `input_change` dikonfigurasikan di akun Anda: untuk mengubah apa yang dicatat, tambahkan, edit, atau hapus aturan yang sesuai, bukan template transformasi. Lihat [Pemicu input](https://gitlab.navixy.dev/docs/user-docs/-/tree/main/docs/user-guide/guide/events-and-notifications/inputs-and-outputs/input-triggering.md) untuk cara mengonfigurasi aturan ini.

## Langkah berikutnya

* [**Transformasi umum**](/docs/analytics/id/iot-query/schema-overview/transformation-layer/common-transformations.md): Kembali ke indeks transformasi.
* [**Perjalanan**](/docs/analytics/id/iot-query/schema-overview/transformation-layer/common-transformations/trips.md): Transformasi saudara yang juga berjalan terjadwal pada data telematika mentah.
* [**Peristiwa supir berbasis aturan**](/docs/analytics/id/iot-query/schema-overview/transformation-layer/common-transformations/rule-based-driver-events.md): Transformasi saudara yang merekam pelanggaran mengemudi pada jadwal 15 menit yang sama.
* [**Lapisan data mentah**](/docs/analytics/id/iot-query/schema-overview/bronze-layer.md): Jelajahi `additional_data`, tabel sumber yang memasok peristiwa perubahan Input.
* [**Pemicu input**](https://gitlab.navixy.dev/docs/user-docs/-/tree/main/docs/user-guide/guide/events-and-notifications/inputs-and-outputs/input-triggering.md): Konfigurasikan `input_change` Aturan yang menentukan perubahan input mana yang dicatat di sini.


---

# 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/analytics/id/iot-query/schema-overview/transformation-layer/common-transformations/input-change-events.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.
