> 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/rule-based-driver-events.md).

# Événements du conducteur basés sur des règles

Comment la table des événements de conduite basée sur des règles transforme vos règles d'alerte en enregistrements d'infractions de conduite, et comment l'interroger.

La transformation des événements du Conducteur basée sur des règles enregistre les infractions d’Eco conduite sous forme d’enregistrements d’événements individuels, évalués par rapport aux règles d’alerte configurées sur votre compte. Chaque ligne dans `données_communes_traitées.événements_du_conducteur_basés_sur_des_règles` représente une infraction : quelle règle l’a détectée, de quel type elle était, quand et où elle s’est produite, et à quelle vitesse le véhicule était En mouvement à ce moment-là.

Contrairement à la transformation basée sur un déclencheur qu’elle remplace, celle-ci s’exécute selon un planning fixe. Une fonction d’actualisation réévalue une fenêtre de données récentes toutes les 15 minutes, de sorte qu’une nouvelle ligne peut accuser jusqu’à 15 minutes de retard par rapport à l’événement sur l’appareil.

{% hint style="info" %}

* Les seuils pour l’excès de vitesse et Au ralenti proviennent de vos propres règles d’alerte, et non des paramètres par défaut de la plateforme. Deux appareils peuvent produire des événements différents à partir d’une Eco conduite identique si des règles différentes leur sont appliquées.
* Les événements matériels répétés du même type provenant du même appareil dans un délai de 10 secondes sont regroupés en une seule ligne, car un appareil peut envoyer plusieurs signaux pour un seul incident.
* Les événements basés sur l'Accéléromètre sont ignorés lorsque le véhicule est en mouvement à moins de 3 km/h. Cela évite de signaler les vibrations dues au chargement ou au stationnement comme une infraction.
* Tous les horodatages sont stockés en UTC.
  {% endhint %}

## Table de sortie : processed\_common\_data.rule\_based\_Conducteur\_events

Chaque ligne représente une violation détectée. Le tableau est indexé sur `ID de l'appareil`, `device_time`, `ID de règle`, et `hw_event_id`.

Plusieurs colonnes sont des copies dénormalisées de valeurs stockées ailleurs, de sorte que les requêtes de tableau de bord les plus courantes n’ont besoin d’aucune jointure : `traceur_label` provient de l’enregistrement du Traceur, et `speed_limit`, `event_comment1`, et `event_comment2` proviennent de la règle qui a généré l’événement.

<table><thead><tr><th width="180">Champ</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>ID de l'appareil</code></td><td>entier</td><td>Identifiant de l’appareil.</td></tr><tr><td><code>id_objet</code></td><td>entier</td><td>Identifiant du Traceur (véhicule ou Actif) associé à l’appareil au moment de l’événement.</td></tr><tr><td><code>traceur_label</code></td><td>texte</td><td>Nom lisible du Traceur. Déjà dénormalisé dans cette table, donc aucune jointure vers <code>données_métier_brutes.objets</code> n’est nécessaire.</td></tr><tr><td><code>device_time</code></td><td>horodatage</td><td>Horodatage de l’événement, en UTC.</td></tr><tr><td><code>ID de règle</code></td><td>entier</td><td>La Règle d’alerte qui a généré l’événement. Référence <code>raw_business_data.rules</code>. Définir à <code>0</code> pour <code>TR/MIN dépassé</code> événements, qui ne sont pas régis par des règles. Voir <a href="#how-rules-shape-the-output">Comment les règles façonnent la sortie</a>.</td></tr><tr><td><code>Type d'événement</code></td><td>texte</td><td>Catégorie de violation. L'une des quatre valeurs. Voir <a href="#violation-types">Types de violation</a> ci-dessous.</td></tr><tr><td><code>hw_event_id</code></td><td>entier</td><td>Code d’événement matériel pour les violations détectées par l’Accéléromètre et le capteur. <code>0</code> pour <code>accélération</code> et <code>ralenti_doux</code>, qui sont dérivées plutôt que signalées par l’appareil.</td></tr><tr><td><code>event_comment1</code></td><td>texte</td><td>Étiquette en texte libre copiée depuis la règle. Définie lors de la configuration de la règle, elle est utile pour regrouper les événements selon vos propres catégories. Nulle pour <code>TR/MIN dépassé</code>.</td></tr><tr><td><code>event_comment2</code></td><td>texte</td><td>Deuxième étiquette en texte libre copiée depuis la règle. Nulle pour <code>TR/MIN dépassé</code>.</td></tr><tr><td><code>speed_limit</code></td><td>entier</td><td>Le seuil configuré sur la règle, dénormalisé depuis <code>raw_business_data.rules</code>. Pour <code>accélération</code> règles, il s’agit de la limite de vitesse en km/h ; pour <code>ralenti_doux</code> règles, il s’agit de la tolérance Au ralenti en minutes.</td></tr><tr><td><code>vitesse_km_h</code></td><td>numérique</td><td>Vitesse du véhicule au moment de l’événement, en km/h.</td></tr><tr><td><code>duration_sec</code></td><td>entier</td><td>Durée de la violation en secondes, pour les types d’événements qui s’étendent sur une période de temps plutôt que de se produire instantanément.</td></tr><tr><td><code>identifiant_zone</code></td><td>entier</td><td>Zone géographique dans laquelle l’événement s’est produit, lorsque la règle est limitée à des zones spécifiques. Null lorsque la règle n’a aucune zone associée, et également lorsque la règle est configurée pour se déclencher en dehors de ses zones. Voir <a href="#zone-scoping">Délimitation par zone</a>.</td></tr><tr><td><code>libellé_zone</code></td><td>texte</td><td>Nom lisible par l’humain de la Zone géographique, dénormalisé avec <code>identifiant_zone</code>.</td></tr><tr><td><code>latitude</code></td><td>double précision</td><td>Latitude en degrés.</td></tr><tr><td><code>longitude</code></td><td>double précision</td><td>Longitude en degrés.</td></tr><tr><td><code>valeur_supplémentaire</code></td><td>numérique</td><td>Mesure dépendante du contexte, définie pour les types d’événements qui enregistrent une mesure autre que la vitesse. Pour <code>TR/MIN dépassé</code> événements, la valeur de TR/MIN qui a déclenché l’événement.</td></tr><tr><td><code>created_at</code></td><td>horodatage</td><td>Lorsque la ligne a été écrite par la fonction d’actualisation. Plus tard que <code>device_time</code> de la durée d’un cycle d’actualisation au maximum.</td></tr></tbody></table>

### Types de violation

Le tableau ci-dessous répertorie chaque type d’infraction enregistré par la transformation, la valeur exacte `Type d'événement` stockée pour celui-ci, et l’origine de son seuil. Utilisez la `Type d'événement` valeur de la colonne directement lors du filtrage ou du regroupement des requêtes.

<table><thead><tr><th width="150">valeur event_type</th><th width="230">Signification</th><th width="150">hw_event_id</th><th>Seuil</th></tr></thead><tbody><tr><td><code>accélération</code></td><td>Le véhicule a dépassé la limite de vitesse définie par la règle</td><td><code>0</code></td><td>Selon la règle, en km/h</td></tr><tr><td><code>conduite_agressive</code></td><td>Accéléromètre ou événement matériel signalé par l’appareil : Accélération brutale, freinage, virages, changements de voie et infractions à la ceinture de sécurité</td><td><code>900</code>, <code>931</code>, <code>987</code>–<code>991</code>, <code>996</code></td><td>Détecté par l’appareil. Ignoré en dessous de 3 km/h</td></tr><tr><td><code>ralenti_doux</code></td><td>Véhicule à l’arrêt avec Contact activé pendant une durée supérieure à celle autorisée par la règle</td><td><code>0</code></td><td>Selon la règle, en minutes</td></tr><tr><td><code>TR/MIN dépassé</code></td><td>TR/MIN moteur supérieur au seuil de la plateforme</td><td><code>9002</code></td><td>Fixé à 5 000 TR/MIN</td></tr></tbody></table>

{% hint style="warning" %}
Le `Type d'événement` valeurs, et le `hw_event_id` numérotation, diffèrent de la table des événements de performance Conducteur que cette transformation remplace. Les requêtes écrites pour l'ancienne table doivent voir leurs valeurs de filtre mises à jour, et pas seulement le nom de la table. En particulier, les infractions à la ceinture de sécurité n'ont plus leur propre type d'événement : elles arrivent sous la forme de `conduite_agressive` avec `hw_event_id = 931`.
{% endhint %}

Les exemples ci-dessous montrent des modèles de requêtes courants. La requête de base renvoie les violations récentes triées par appareil et par heure. La deuxième ajoute la définition de la règle derrière chaque événement. La troisième filtre uniquement l’Eco Conduite détectée par le matériel.

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

```sql
Sélectionner
    device_id,
    Traceur_label,
    device_time,
    type d'événement,
    vitesse_kmh,
    limite_de_vitesse,
    latitude,
    longitude
FROM processed_common_data.rule_based_conducteur_events
WHERE device_time >= CURRENT_DATE - INTERVAL '7 days'
ORDER BY device_id, device_time;
```

{% endcode %}
{% endtab %}

{% tab title="Avec les détails de la règle" %}
{% code overflow="wrap" expandable="true" %}

```sql
Sélectionner
    e.device_id,
    e.libellé_traceur,
    e.device_time,
    e.event_type,
    e.speed_kmh,
    e.limite de vitesse,
    e.event_comment1,
    r.maximum AS rule_threshold
DE processed_common_data.rule_based_Conducteur_events e
LEFT JOIN raw_business_data.rules r
    ON r.rule_id = e.rule_id
WHERE e.device_time >= CURRENT_DATE - INTERVAL '7 days'
ORDER BY e.device_id, e.device_time;
```

{% endcode %}

Utilisez un `jointure gauche` plutôt qu’une jointure interne. `TR/MIN dépassé` les événements portent `rule_id = 0` et n’ont aucune ligne correspondante dans `raw_business_data.rules`, donc une jointure interne les ignore silencieusement.
{% endtab %}

{% tab title="Eco Conduite uniquement" %}
{% code overflow="wrap" expandable="true" %}

```sql
Sélectionner
    device_id,
    Traceur_label,
    device_time,
    hw_event_id,
    vitesse_km_h
FROM processed_common_data.rule_based_conducteur_events
WHERE event_type = 'harsh_Eco conduite'
  ET device_time >= CURRENT_DATE - INTERVAL '7 days'
ORDER BY device_id, device_time;
```

{% endcode %}

Filtrage sur un seul `Type d'événement` la valeur remplace le long `DANS` énumérez le tableau précédent requis, puisque toutes les violations de l’Accéléromètre et du matériel partagent désormais une seule catégorie. Séparez-les avec `hw_event_id` lorsque vous avez besoin de la manœuvre individuelle.
{% endtab %}
{% endtabs %}

## Comment les règles façonnent la sortie

Les lignes de ce tableau ne sont pas générées par la logique de détection à l’échelle de la plateforme. À l’exception de `TR/MIN dépassé`, chaque événement est le résultat d'une Règle d'alerte configurée sur votre compte, et la règle détermine à la fois le seuil et le périmètre.

{% stepper %}
{% step %}

#### La règle définit le seuil

Chaque règle stocke son seuil dans `raw_business_data.rules.maximum`: une vitesse en km/h pour `accélération` les règles, une durée en minutes pour `ralenti_doux` les règles. La transformation copie cette valeur dans `speed_limit` à chaque ligne qu'elle écrit, afin que vous puissiez voir par rapport à quoi le véhicule a été mesuré sans refaire la jointure avec la règle.
{% endstep %}

{% step %}

#### La règle définit le périmètre

Une règle s'applique aux objets qui lui sont liés via `rules2objects`, et éventuellement aux géorepérimètres liés via `rules2zones`. Un appareil en dehors de la liste de Traceur d’une règle ne produit aucun événement pour cette règle, même s’il est piloté.
{% endstep %}

{% step %}

#### La règle fournit ses propres étiquettes

`event_comment1` et `event_comment2` sont des champs de texte libre renseignés lors de la configuration de la règle. Ils sont copiés sur chaque événement afin que les tableaux de bord puissent afficher votre propre terminologie sans jointure.
{% endstep %}

{% step %}

#### La fonction d’actualisation évalue la fenêtre

Toutes les 15 minutes, `actualiser_les_evenements_du_Conducteur_basés_sur_des_règles` réexamine une fenêtre de 40 minutes de données récentes et écrit tout événement admissible. La fenêtre est délibérément plus longue que l’intervalle, afin que les enregistrements qui arrivent tard sur la plateforme soient encore pris en compte lors d’un passage ultérieur.
{% endstep %}

{% step %}

#### TR/MIN est l'exception

`TR/MIN dépassé` les événements ne sont pas guidés par des règles. Ils utilisent un seuil de plateforme fixe de 5 000 TR/MIN, portent `rule_id = 0`, et n'ont pas de `event_comment1` ou `event_comment2` valeurs.
{% endstep %}
{% endstepper %}

### Délimitation par zone

Lorsqu'une règle a des zones géographiques associées via `rules2zones`, ces zones déterminent à la fois si un événement est enregistré et si `identifiant_zone` est renseigné. La géométrie de la zone est lue depuis `processed_common_data.zones_geom`, matérialisée à partir de `raw_business_data.zones`.

<table><thead><tr><th width="260">Configuration de la règle</th><th width="200">Événements enregistrés</th><th>valeur de zone_id</th></tr></thead><tbody><tr><td>Aucune zone associée</td><td>Partout</td><td>Nul</td></tr><tr><td>Zones associées, <code>zone_inverted = false</code></td><td>Uniquement à l’intérieur des zones</td><td>La zone dans laquelle l’événement s’est produit</td></tr><tr><td>Zones associées, <code>zone_inverted = true</code></td><td>Uniquement à l’extérieur des zones</td><td>Nul</td></tr></tbody></table>

{% hint style="warning" %}
Une valeur nulle `identifiant_zone` est ambigu en soi : cela signifie soit que la règle n’avait aucune zone, soit que la règle se déclenche en dehors de ses zones. Le filtrage avec `WHERE zone_id IS NULL` mélangera les deux cas. Faites une jointure avec `rules2zones` quand vous devez les distinguer.
{% endhint %}

<details>

<summary>Constantes fixes de la plateforme</summary>

Ces valeurs sont les mêmes pour chaque compte et ne sont pas configurables via une règle. Les seuils définis par des règles sont traités dans [Comment les règles façonnent la sortie](#how-rules-shape-the-output).

<table><thead><tr><th width="220">Constante</th><th width="160">Valeur</th><th>Description</th></tr></thead><tbody><tr><td>Vitesse minimale pour les événements de l'Accéléromètre</td><td>3 km/h</td><td>Les infractions basées sur l'Accéléromètre en dessous de cette vitesse sont ignorées, afin d’éviter de signaler les vibrations lorsqu’il est Stationné ou en cours de chargement.</td></tr><tr><td>Seuil de TR/MIN</td><td>5 000 TR/MIN</td><td>Le régime moteur doit dépasser cette valeur pour qu'un <code>TR/MIN dépassé</code> événement soit enregistré.</td></tr><tr><td>Fenêtre de déduplication matérielle</td><td>10 secondes</td><td>Les événements matériels répétés du même type provenant du même appareil dans cette fenêtre sont fusionnés en un seul.</td></tr><tr><td>Intervalle d'actualisation</td><td>15 minutes</td><td>À quelle fréquence la fonction d'actualisation s'exécute.</td></tr><tr><td>Période de rétrospective d'actualisation</td><td>40 minutes</td><td>Jusqu’où chaque exécution réexamine les données, afin que les enregistrements arrivant tardivement ne soient pas manqués.</td></tr></tbody></table>

</details>

## Personnalisation de la transformation

Pour `accélération` et `ralenti_doux`, la personnalisation ne nécessite aucun workflow. Les deux seuils sont lus depuis la Règle d'alerte, donc modifier la règle change ce que la transformation enregistre à partir du prochain rafraîchissement. Il en va de même pour le périmètre : ajustez les objets ou les géorepérimètres rattachés à la règle pour modifier quels Véhicules et quelles zones génèrent des événements.

{% hint style="warning" %}
La fonction de rafraîchissement qui alimente `données_communes_traitées.événements_du_conducteur_basés_sur_des_règles` ne peut pas être modifiée directement. Les seuils qui ne dépendent pas de la règle, comme le seuil de 3 km/h de l’Accéléromètre ou la limite de 5 000 TR/MIN, ne peuvent être modifiés qu’en construisant un workflow parallèle dans Transformation Builder et en l’intégrant dans Ordonnancement comme une transformation distincte dans `données_personnalisées_traitées`. Cela ne modifie pas le tableau décrit sur cette page.
{% endhint %}

Si votre scénario opérationnel nécessite d’autres seuils fixes, contactez **<iotquery@navixy.com>** pour demander le modèle de workflow correspondant. Une fois que vous l’avez, chargez-le dans [Transformation Builder](/docs/analytics/fr/iot-query/schema-overview/transformation-layer/transformation-builder.md), ajustez les valeurs pertinentes et placez le workflow modifié dans Ordonnancement comme transformation personnalisée.

## É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 produit des enregistrements de Voyage des Véhicules à partir de données télématiques brutes.
* [**Agrégation des Données du capteur**](/docs/analytics/fr/iot-query/schema-overview/transformation-layer/common-transformations/sensor-data-aggregation.md): Une transformation sœur qui agrège les relevés des capteurs dans des compartiments temporels.
* [**Couche de Données brutes**](/docs/analytics/fr/iot-query/schema-overview/bronze-layer.md): Explorer `Suivi_données_noyau`, `États`, et `entrées`, les tables sources qui alimentent les événements du Conducteur basés sur des règles.
* [**Transformation Builder**](/docs/analytics/fr/iot-query/schema-overview/transformation-layer/transformation-builder.md): Découvrez comment créer une version personnalisée de cette transformation.
* [**Tableau de bord du Score de conduite**](https://github.com/Navixy/navixy-iot-query-dashboard/blob/main/schemas/12-driver-performance-dashboard.md): Utilise des événements du Conducteur basés sur des règles pour un score de Sécurité de l'Eco conduite à l'échelle de la Flotte.
* [**Tableau de bord d'impact comportemental**](https://github.com/Navixy/navixy-iot-query-dashboard/blob/main/schemas/13-behavior-impact-dashboard.md): Utilise des événements de Conducteur basés sur des règles pour suivre les tendances comportementales au fil du temps.
* [**Tableau de bord Sécurité & Sécurité**](https://github.com/Navixy/navixy-iot-query-dashboard/blob/main/schemas/10-premium-safety-security-dashboard.md): Utilise des événements Conducteur basés sur des règles ainsi que des données de Zone géographique et de Voyage.
* [**Tableau de bord de leasing**](https://github.com/Navixy/navixy-iot-query-dashboard/blob/main/schemas/06-leasing-dashboard.md): Utilise Eco Conduite et des requêtes de détection d'inactivité issues d'événements Conducteur basés sur des règles.


---

# 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/fr/iot-query/schema-overview/transformation-layer/common-transformations/rule-based-driver-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.
