> 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 menguerinya.

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

Seperti peristiwa pengemudi 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 di belakang perubahan input sebenarnya pada perangkat.

{% hint style="info" %}

* Semua stempel waktu disimpan dalam UTC.
* Hanya perubahan yang cocok dengan aturan yang dikonfigurasi `input_change` menghasilkan satu baris. Aktivitas input diskret yang tidak cocok dengan aturan apa pun tetap 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">Kolom</th><th width="100">Tipe</th><th>Deskripsi</th></tr></thead><tbody><tr><td><code>device_id</code></td><td>bilangan bulat</td><td>Pengidentifikasi perangkat.</td></tr><tr><td><code>pelacak_id</code></td><td>bilangan bulat</td><td>Pengidentifikasi Pelacak (kendaraan/Aset) yang terkait dengan perangkat.</td></tr><tr><td><code>label objek</code></td><td>teks</td><td>Nama pelacak yang dapat dibaca manusia. Sudah didenormalisasi ke dalam tabel ini, jadi tidak seperti Perjalanan, tidak ada penggabungan 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, yang sesuai dengan posisi dalam <code>discrete_inputs</code> rangkaian 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>event_type</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 dikonfigurasi pada aturan yang cocok.</td></tr><tr><td><code>zone_id</code></td><td>bilangan bulat</td><td>Pengenal zona Perimeter tempat perangkat berada saat perubahan terjadi. Null jika aturan tidak terhubung ke zona.</td></tr><tr><td><code>zone_label</code></td><td>teks</td><td>Nama zona tersebut. Null jika aturan tidak terkait dengan zona.</td></tr><tr><td><code>lintang</code></td><td>numerik</td><td>Lintang pada saat perubahan, dalam derajat.</td></tr><tr><td><code>bujur</code></td><td>numerik</td><td>Bujur pada saat perubahan, dalam derajat.</td></tr><tr><td><code>created_at</code></td><td>stempel waktu</td><td>Saat baris ditulis oleh penyegaran terjadwal.</td></tr></tbody></table>

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

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

```sql
SELECT
    device_id,
    Pelacak_label,
    device_time,
    input_number,
    input_value,
    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="Saring berdasarkan input" %}
{% code overflow="wrap" expandable="true" %}

```sql
SELECT
    device_id,
    Pelacak_label,
    device_time,
    input_value,
    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,
    device_time,
    input_number,
    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 %}

## Bagaimana perubahan input dideteksi

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

{% stepper %}
{% step %}

#### Penyegaran 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 `discrete_inputs` dan `discrete_outputs` string bit saat ini 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

Sebuah bit yang berubah menjadi peristiwa kandidat jika nomor input dan nilai barunya cocok dengan kondisi yang dikonfigurasi pada sebuah `input_change` aturan. Lihat [Pemicu input](/docs/user/id/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/resources/tracking/tracker/rules/rule_types) untuk daftar lengkap jenis aturan.
{% endstep %}

{% step %}

#### Pemeriksaan zona

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

{% step %}

#### Memperbarui status terakhir yang diketahui

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

## Penyesuaian

Peristiwa perubahan input tidak disesuaikan melalui alur kerja Transformation Builder seperti Perjalanan. Baris yang muncul di sini secara langsung mencerminkan aturan apa pun yang `input_change` dikonfigurasi di akun Anda: untuk mengubah apa yang dicatat, tambahkan, edit, atau hapus aturan yang sesuai, bukan templat transformasi. Lihat [Pemicu input](/docs/user/id/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 terhadap 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 mencatat 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**](/docs/user/id/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 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/analytics/id/iot-query/schema-overview/transformation-layer/common-transformations/input-change-events.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.
