Depuis de nombreuses années, nous exploitons pour nos clients notre propre plateforme de localisation GPS : les véhicules et les appareils transmettent leur position à notre serveur de suivi, les clients voient leur flotte en direct sur la carte, tiennent des carnets de route, définissent des géozones et sont avertis en cas d'alarme. L'interface correspondante était une application PHP qui avait grandi au fil du temps, avec sa propre gestion des utilisateurs, sa propre facturation et ses propres rapports – en parallèle de tout ce que nous utilisons par ailleurs dans l'entreprise.
Nous avons changé cela. La localisation est désormais un module de notre Odoo 19 Community et fait ainsi partie du même système dans lequel fonctionnent aussi les clients, les contrats, les factures et le support. Pour nos clients de la localisation, cela signifie : un identifiant, une interface, et la facture de localisation se trouve là où se trouvent aussi toutes les autres factures.
Pourquoi nous avons intégré la localisation dans Odoo
Deux systèmes séparés signifient des données de base en double. Chaque client existait une fois dans la localisation et une fois dans l'ERP, chaque changement d'adresse devait être effectué deux fois, et le cycle de facturation de la localisation produisait des documents qui étaient ensuite transférés à la main dans la comptabilité.
Avec le passage à Odoo, un principe simple s'applique désormais : les données de base dans Odoo, les données de masse à l'extérieur. Clients, utilisateurs, balises de suivi, groupes, géozones, produits et prix se trouvent dans Odoo et y sont reliés à la comptabilité, au portail et à la gestion des droits. Les données de position – le véritable flux de données des appareils, 24 heures sur 24 – restent dans un stockage de positions distinct. Une base de données ERP n'est pas l'endroit adapté pour des millions de points GPS, et elle n'a pas à l'être.
Le serveur de suivi qui reçoit les appareils n'est pas affecté par la migration. C'est précisément ce qui a rendu la refonte réaliste : l'interface a pu être recréée sans toucher à la réception des données.
Ce que nos clients ont désormais dans le portail
Les clients de la localisation se connectent au portail client Odoo et y trouvent la rubrique Localisation. Qui n'utilise que la localisation arrive directement sur la carte après la connexion et ne voit aucun autre contenu du portail.
Carte en direct
La carte affiche tous les véhicules propres et partagés avec leur statut (en mouvement, à l'arrêt, hors ligne), leur vitesse, leur direction et leur adresse résolue. Les positions arrivent en temps réel via une connexion WebSocket au serveur de suivi – une seule connexion pour toute l'installation, et non une par navigateur ouvert – et sont distribuées de manière filtrée : chaque client ne reçoit que les véhicules qui lui appartiennent ou qui sont partagés avec lui. Les véhicules se déplacent de façon fluide entre deux messages au lieu de sauter.
Comme fonds de carte, on peut choisir OpenStreetMap, une carte de relief, la basemap officielle autrichienne avec photo aérienne et une carte en noir et blanc ; le relief et les bâtiments 3D peuvent être ajoutés comme calques. La vue avec laquelle la carte s'ouvre – type de carte, cadrage, groupe par défaut – est mémorisée par Odoo pour chaque utilisateur.
Carnet de route avec trajets professionnels et privés
Les trajets sont détectés sur le serveur, et non dans le navigateur : un trajet a lieu même lorsque personne n'a la carte ouverte. Le début, la fin, les adresses de départ et d'arrivée, le kilométrage, la distance et la durée sont consignés pour chaque trajet.
Chaque trajet peut être classé comme trajet professionnel ou trajet privé – par trajet, et non par véhicule, parce que la même voiture va chez le client le matin et rentre à la maison le soir, et que cette distinction est fiscalement pertinente en Autriche. Au départ d'un trajet, la fenêtre de classement apparaît directement sur la carte ; qui le fait plus tard retrouve le trajet dans le carnet de route avec son champ de notes. Les conducteurs sont reconnus via des clés électroniques iButton lorsque le véhicule en est équipé.
Deux rapports sont disponibles, tous deux en PDF et en Excel :
- Carnet de route individuel – les trajets d'un véhicule sur la période choisie avec itinéraire, classement et note
- Carnet de route de la flotte – une ligne par véhicule avec durée de conduite, distance, séparation entre kilomètres professionnels et privés et consommation extrapolée, ainsi que les totaux par groupe et le total général
Géozones et alarmes
Les géozones sont dessinées directement sur la carte – sous forme de cercle, de carré ou de polygone libre – ou reprises à partir de modèles communs tels que « Autriche » ou « Vienne ». Pour chaque zone et chaque véhicule, on peut définir si une alarme est déclenchée à l'entrée ou à la sortie, et vers où : par SMS, e-mail, webhook ou sous forme de message à notre centre d'appels.
Les alarmes – changement de zone, vitesse, allumage, perte de tension, appel d'urgence, mouvement, hors ligne – arrivent sous forme d'enregistrements distincts dans Odoo, avec l'heure, la position et le statut de traitement.
Recherche : quel véhicule se trouvait ici ?
Une contravention arrive, le point de mesure y figure – mais de quel véhicule s'agissait-il ? La recherche dans l'historique d'itinéraire répond précisément à cette question : choisir un point sur la carte ou une adresse, restreindre le rayon et la période, et la localisation montre quels véhicules s'y trouvaient. Les points de mesure de vitesse d'OpenStreetMap sont déjà disponibles pour cela comme calque sur la carte.
Gestion par le client lui-même
Ce qui devait auparavant nous être délégué, les clients le font désormais dans le portail :
- Activer des balises – saisir l'IMEI figurant sur l'autocollant de l'appareil, choisir un groupe ou en créer un, et c'est terminé
- Balises et groupes – désignations, symboles, affectation aux groupes, pleins de carburant avec quantité et prix, rapports par véhicule
- Autorisations – partager des véhicules avec d'autres utilisateurs ou entreprises, avec droit de lecture ou d'écriture et la possibilité de masquer certains champs tels que l'adresse ou le kilométrage
- Géozones – dessiner, modifier, définir l'alerte
- iButtons – associer les clés électroniques aux noms des conducteurs
Ce qui a changé en interne pour nous
Dans le back-end d'Odoo, il existe la rubrique Localisation avec carte en direct, gestion des balises, alarmes, trajets, données de base (groupes, géozones, types d'appareils, fabricants) et facturation.
Gestion des balises. Chaque appareil porte son IMEI, son numéro de carte SIM, son type d'appareil, ses entrées et sorties (allumage, blocage moteur, chauffage d'appoint et autres), son étalonnage, sa correction du compteur kilométrique, son seuil hors ligne et les paramètres du carnet de route. L'historique du chatter d'Odoo consigne chaque modification.
SMS vers les appareils. Les balises sont configurées par SMS. L'envoi se fait désormais depuis Odoo, est consigné sans lacune et est protégé contre les erreurs de manipulation : un plafond par opération d'envoi empêche qu'un clic déclenche des centaines de messages payants, et les numéros incomplets ne sont tout simplement pas transmis.
Centre d'appels. Les signalements de vol et d'accident apparaissent sous forme de dossiers avec les données du véhicule, les coordonnées du propriétaire et un déroulement guidé : propriétaire joint ? Fausse alerte ? Autres mesures ? Chaque étape est consignée, et les responsables du traitement sont avertis par notification push.
Facturation. Le cycle de facturation prend en compte toutes les balises dont la prochaine échéance de facturation est atteinte et en génère des brouillons de factures dans Odoo – avec le prix client final ou le prix partenaire. La validation reste volontairement du ressort de la comptabilité : le cycle ne comptabilise rien, il prépare. L'intervalle de facturation, le produit et la prochaine échéance sont rattachés à la balise ; après le cycle, les lignes de facture se trouvent directement sur l'appareil.
L'architecture sous-jacente
Appareils GPS
│
▼
Serveur de suivi ──► Stockage des positions Odoo 19 Community
(inchangé) aujourd'hui : base de ├─ Données de base (balises, clients, géozones)
données ├─ Portail client /my/ortung
existante ├─ Back-end Localisation / …
plus tard : PostGIS ├─ Facturation (brouillons de factures)
▲ │
└─ lecture seule ──┘
L'accès aux positions passe exclusivement par une interface interchangeable. Aujourd'hui, Odoo lit dans la base de données de localisation existante, que le serveur de suivi continue d'alimenter sans changement. Le passage à un serveur PostGIS dédié est donc un changement de configuration, et non une refonte – PostGIS calcule alors lui-même les analyses spatiales telles que les contrôles de géozones. Pour le développement et la formation, il existe en outre un stockage de démonstration avec des données synthétiques, avec lequel le module fonctionne même sans serveur de suivi.
Les adresses sont résolues via un géocodeur dédié et mises en cache dans Odoo, arrondies à environ onze mètres : un véhicule à l'arrêt n'est pas résolu à nouveau à chaque bruit GPS, et la carte ne dépend pas du temps de réponse d'un service externe.
Comment la migration s'est déroulée
Nous n'avons pas migré d'un seul coup, mais pas à pas selon le modèle Strangler : l'ancien système est resté opérationnel, un reverse proxy décidait pour chaque chemin qui répondait, et la nouvelle carte a d'abord fonctionné pour un groupe pilote, en parallèle de l'ancienne.
La reprise des données de base a été la partie la plus délicate. Un script de migration lit les clients, utilisateurs, balises, groupes et géozones de l'ancienne application et les crée dans Odoo – de façon répétable sous forme d'exécution delta, avec l'ancien identifiant comme clé. Comme de nombreux clients de la localisation existaient depuis longtemps comme partenaires dans Odoo, un assistant propose des correspondances qui doivent être confirmées une à une : une entreprise mal associée verrait les véhicules d'autrui, et c'est plus coûteux qu'un doublon.
Ce qui n'a volontairement pas été repris : la double base de code pour le bureau et le mobile (le front-end d'Odoo est responsif), la table de traduction propre, la gestion propre des droits et des sessions et une bonne douzaine de rapports que plus personne n'ouvrait dans la pratique.
Ce que cela signifie pour vous en tant que client
Si vous êtes client de notre service de localisation, vous avez déjà reçu votre accès au portail ou le recevrez dans les prochaines semaines. Vos véhicules, groupes, géozones et autorisations ont été repris ; le carnet de route continue de fonctionner sans interruption.
Vous trouvez dans un seul portail votre localisation, vos factures et vos demandes de support. Et si vous voulez davantage que la localisation – helpdesk, contrats de maintenance, facturation de projets – c'est le même système.
Nous répondons volontiers à vos questions sur la migration. Et si vous cherchez, pour votre propre entreprise, une localisation de véhicules reliée à l'ERP au lieu de se tenir à côté : contactez-nous.