Manuel Technique : Collecteur Traccar V5.0

🔬 Synopsis Technique

Le script apitraccar.py (Script ID : 1) est le connecteur universel API pour les environnements Traccar. Développé en Python, il utilise l’asynchronisme (concurrent.futures avec 10 workers) pour maximiser le débit de collecte. La V5.0 introduit le déclenchement en cascade automatique du moteur d’intelligence spatiale (Valhalla).

📚 Dictionnaire de Lignage (Entrées / Sorties)

Conformément à nos règles d’architecture, les exécutions Python ne pouvant exploiter le moteur en mémoire (MEMORY) de la même manière que SQL, les données sont écrites de manière persistante dans des tables de staging physiques.

  • 📥 Sources (Read) :

    • API Traccar : Endpoints /devices et /positions.

    • MySQL : Lecture de la table assoamhd.jsmc_machines pour cibler les machines actives (devid > 0).

  • 📤 Cibles (Write) :

    • MySQL : assoamhd.jsmc_machines (INSERT IGNORE des nouvelles machines avec idsociete = 0 pour qualification manuelle).

    • MySQL : Table physique assoamhd.agg_trajets_recap (Staging massif via executemany). Insertion stricte de 10 colonnes dont date_debut (UTC), latitude_debut, longitude_debut, et le flag crucial valhalla_processed = '0'.

⚙️ Cœur Algorithmique et Sécurités

  1. Paradigme « Less is More » : Exclusion volontaire de la vitesse instantanée native (transmise en nœuds marins par l’API) pour éviter le stockage d’artefacts GPS.

  2. Trigger Automatique : À l’issue de l’insertion physique réussie, le script invoque un sous-processus (subprocess.run) pour lancer valhalla.py, transmettant le lot pour enrichissement topographique immédiat.

  3. Hygiène Temporelle : Conversion stricte des paramètres --start et --end en ISO 8601 UTC.

📐 Équations & Normes

Le rejet de la vitesse native par ce script prépare le terrain pour le redressement métrologique ultérieur basé sur la distance topographique réelle (et non la distance à vol d’oiseau), selon la formule qui sera appliquée par le moteur SQL :

$$V = \frac{Distance_{Valhalla}}{Temps}$$

Ce calcul, différé à l’étape suivante, garantit une conformité totale avec les exigences de précision odométrique de l’IPMVP.