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

# Événements de changement d'entrée

Comment la table des événements de changement d'entrée détecte les changements d'entrée discrets et comment l'interroger.

La transformation des événements de changement d'entrée enregistre chaque fois qu'une entrée discrète d'un appareil change d'état et que ce changement correspond à une `input_change` configurée. Chaque ligne dans `processed_common_data.input_change_events` représente un changement correspondant : quelle entrée a basculé, sa nouvelle valeur, quand et où cela s'est produit, et à quelle règle il a satisfait.

Comme les événements du conducteur basés sur des règles, les événements de changement d'entrée s'exécutent selon un calendrier fixe plutôt qu'en continu. Une fonction d'actualisation réévalue une fenêtre de données brutes toutes les 15 minutes, de sorte qu'une nouvelle ligne puisse avoir jusqu'à 15 minutes de retard par rapport au changement réel de l'entrée sur l'appareil.

{% hint style="info" %}

* Tous les horodatages sont stockés en UTC.
* Seuls les changements qui correspondent à une règle `input_change` input\_change `raw_telematics_data.additional_data`, juste pas affiché ici.
  {% endhint %}

## Table de sortie : processed\_common\_data.input\_change\_events

Chaque ligne représente un changement d’entrée détecté qui correspondait à un `input_change` règle. La table est indexée sur `device_id`, `device_time`, et `id_de_règle`.

<table><thead><tr><th width="180">Champ</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>device_id</code></td><td>entier</td><td>Identifiant de l'appareil.</td></tr><tr><td><code>Traceur_id</code></td><td>entier</td><td>Identifiant du Traceur (véhicule/actif) associé à l'appareil.</td></tr><tr><td><code>libellé_du_Traceur</code></td><td>texte</td><td>Nom lisible du Traceur. Déjà dénormalisé dans cette table, donc contrairement aux Trajets, aucune jointure avec <code>raw_business_data.objects</code> est nécessaire pour l'afficher.</td></tr><tr><td><code>device_time</code></td><td>horodatage</td><td>Moment où la modification de l'entrée s'est produite sur l'appareil.</td></tr><tr><td><code>id_de_règle</code></td><td>entier</td><td>Identifiant de la <code>input_change</code> règle correspondante.</td></tr><tr><td><code>numéro d'entrée</code></td><td>entier</td><td>Numéro d'entrée, indexé à partir de 1, correspondant à la position dans le <code>entrées discrètes</code> chaîne de bits dans <code>raw_telematics_data.additional_data</code>.</td></tr><tr><td><code>valeur d'entrée</code></td><td>entier</td><td>Nouvelle valeur de l'entrée après la modification : <code>0</code> ou <code>1</code>.</td></tr><tr><td><code>event_type</code></td><td>texte</td><td>Toujours <code>input_change</code>.</td></tr><tr><td><code>commentaire_événement1</code></td><td>texte</td><td>Premier commentaire configuré sur la règle correspondante.</td></tr><tr><td><code>commentaire_evenement2</code></td><td>texte</td><td>Second commentaire configuré sur la règle correspondante.</td></tr><tr><td><code>identifiant_zone</code></td><td>entier</td><td>Identifiant de la Zone géographique dans laquelle l'appareil se trouvait au moment du changement. Null si la règle n'est pas liée à une zone.</td></tr><tr><td><code>libellé_zone</code></td><td>texte</td><td>Nom de cette zone. Null si la règle n'est pas liée à une zone.</td></tr><tr><td><code>latitude</code></td><td>numérique</td><td>Latitude au moment du changement, en degrés.</td></tr><tr><td><code>longitude</code></td><td>numérique</td><td>Longitude au moment du changement, en degrés.</td></tr><tr><td><code>created_at</code></td><td>horodatage</td><td>Lorsque la ligne a été écrite par l'actualisation planifiée.</td></tr></tbody></table>

Les exemples ci-dessous montrent des modèles de requête courants. La requête de base renvoie les modifications récentes des entrées, triées par appareil et par heure. La deuxième filtre pour un numéro d’entrée et une valeur spécifiques. La troisième filtre pour une règle spécifique.

{% tabs %}
{% tab title="Requête de base" %}
{% code overflow="wrap" expandable="true" %}

```sql
Sélectionner
    device_id,
    étiquette_objet,
    heure de l'appareil,
    nombre_d'entrée,
    valeur d’entrée,
    libellé_zone
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="Filtrer par entrée" %}
{% code overflow="wrap" expandable="true" %}

```sql
Sélectionner
    device_id,
    étiquette_objet,
    heure de l'appareil,
    valeur d’entrée,
    libellé_zone
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="Filtrer par règle" %}
{% code overflow="wrap" expandable="true" %}

```sql
Sélectionner
    device_id,
    étiquette_objet,
    heure de l'appareil,
    nombre_d'entrée,
    valeur d'entrée
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 %}

## Comment les changements d'entrée sont détectés

Une ligne de ce tableau n’est pas écrite dès qu’une entrée change sur l’appareil. Elle est écrite lors du prochain rafraîchissement planifié, qui réévalue une fenêtre de Données brutes par rapport au dernier état connu de chaque appareil.

{% stepper %}
{% step %}

#### Actualisation planifiée

Toutes les 15 minutes, la fonction de rafraîchissement lit la fenêtre de lignes la plus récente depuis `raw_telematics_data.additional_data`.
{% endstep %}

{% step %}

#### Comparaison avec le dernier état connu

L’état actuel de chaque appareil `entrées discrètes` et `discrete_outputs` les chaînes de bits sont comparées, bit par bit, à l’état enregistré lors du rafraîchissement précédent. Seuls les bits qui ont réellement basculé sont pris en compte par la suite.
{% endstep %}

{% step %}

#### Correspondance avec les règles

Un bit ayant basculé devient un événement candidat si son numéro d’entrée et sa nouvelle valeur correspondent à la condition configurée sur une `input_change` règle. Voir [Déclenchement des entrées](https://gitlab.navixy.dev/docs/user-docs/-/tree/main/docs/user-guide/guide/events-and-notifications/inputs-and-outputs/input-triggering.md) pour savoir comment ces règles sont configurées, et [Référence des types de règles](https://navixy.com/docs/navixy-api/user-api/backend-api/resources/tracking/tracker/rules/rule_types) pour la liste complète des types de règles.
{% endstep %}

{% step %}

#### Vérification de zone

Si la règle correspondante est liée à une Zone géographique, l'actualisation confirme que l'appareil se trouvait dans cette zone au moment du changement avant d'écrire une ligne. Les règles qui ne sont pas liées à une zone ignorent cette vérification.
{% endstep %}

{% step %}

#### Mise à jour du dernier état connu

Une fois l'actualisation terminée, le dernier état binaire de chaque appareil est enregistré pour comparaison lors de l'exécution suivante.
{% endstep %}
{% endstepper %}

## Personnalisation

Les événements de changement d'entrée ne sont pas personnalisés via un workflow de Transformation Builder comme c'est le cas pour Trajets. Les lignes qui apparaissent ici reflètent directement quel que soit `input_change` les règles sont configurées sur votre compte : pour modifier ce qui est enregistré, ajoutez, modifiez ou supprimez les règles correspondantes plutôt qu'un modèle de transformation. Voir [Déclenchement des entrées](https://gitlab.navixy.dev/docs/user-docs/-/tree/main/docs/user-guide/guide/events-and-notifications/inputs-and-outputs/input-triggering.md) pour savoir comment configurer ces règles.

## Étapes suivantes

* [**Transformations courantes**](/docs/analytics/fr/iot-query/schema-overview/transformation-layer/common-transformations.md): Retour à l'index des transformations.
* [**Trajets**](/docs/analytics/fr/iot-query/schema-overview/transformation-layer/common-transformations/trips.md): Une transformation sœur qui s’exécute également selon une planification sur des données télématiques brutes.
* [**Événements du Conducteur basés sur des règles**](/docs/analytics/fr/iot-query/schema-overview/transformation-layer/common-transformations/rule-based-driver-events.md): Une transformation sœur qui enregistre les infractions d’Eco conduite selon la même planification de 15 minutes.
* [**Couche de Données brutes**](/docs/analytics/fr/iot-query/schema-overview/bronze-layer.md): Explorer `données supplémentaires`, la table source qui alimente les événements de modification d’entrée.
* [**Déclenchement des entrées**](https://gitlab.navixy.dev/docs/user-docs/-/tree/main/docs/user-guide/guide/events-and-notifications/inputs-and-outputs/input-triggering.md): Configurer le `input_change` les règles qui déterminent quelles modifications d’entrée sont enregistrées ici.


---

# 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/fr/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.
