Fa molts anys que operem per als nostres clients una plataforma pròpia de localització GPS: els vehicles i dispositius comuniquen la seva posició al nostre servidor de seguiment, els clients veuen la seva flota en directe al mapa, porten registres de trajectes, defineixen geozones i reben notificacions en cas d'alarmes. La interfície era una aplicació PHP crescuda amb el temps, amb gestió d'usuaris pròpia, facturació pròpia i informes propis, en paral·lel a tot el que fem servir per a la resta de l'empresa.
Això ho hem canviat ara. A partir d'ara, la localització és un mòdul del nostre Odoo 19 Community i, per tant, forma part del mateix sistema on funcionen també els clients, els contractes, les factures i el suport. Per als nostres clients de localització això significa: un sol inici de sessió, una sola interfície, i la factura de la localització es troba allà on es troben totes les altres factures.
Per què hem portat la localització a Odoo
Dos sistemes separats vol dir dades mestres duplicades. Cada client existia una vegada a la localització i una altra a l'ERP, cada canvi d'adreça s'havia de fer dues vegades, i l'execució de facturació de la localització generava documents que després passaven a mà a la comptabilitat.
Amb el trasllat a Odoo ara val un principi senzill: dades mestres a Odoo, dades massives fora. Clients, usuaris, trackers, grups, geozones, productes i preus són a Odoo i hi estan connectats amb la comptabilitat, el portal i la gestió de permisos. Les dades de posició, el flux de dades pròpiament dit dels dispositius, les 24 hores del dia, es queden en un emmagatzematge de posicions independent. Una base de dades d'ERP no és el lloc adequat per a milions de punts GPS, i no cal que ho sigui.
El servidor de seguiment que accepta els dispositius no es veu afectat pel canvi. Precisament això ha fet realista la reforma: la interfície es podia crear de nou sense tocar la recepció de dades.
Què tenen ara els nostres clients al portal
Els clients de localització s'identifiquen al portal de clients d'Odoo i hi troben l'àrea Localització. Qui utilitza exclusivament la localització va a parar, després d'iniciar sessió, directament al mapa i no veu cap altre contingut del portal.
Mapa en directe
El mapa mostra tots els vehicles propis i compartits amb estat (en moviment, aturat, fora de línia), velocitat, direcció de marxa i adreça resolta. Les posicions arriben en temps real mitjançant una connexió WebSocket al servidor de seguiment (una única connexió per a tota la instal·lació, no una per navegador obert) i es distribueixen filtrades: cada client només rep els vehicles que li pertanyen o que s'han compartit amb ell. Els vehicles es mouen amb fluïdesa entre dos missatges en lloc de saltar.
Com a mapes base es poden triar OpenStreetMap, un mapa de terreny, el mapa base oficial austríac (Basemap) amb ortofoto i un mapa en blanc i negre; el terreny i els edificis en 3D es poden afegir com a capes. La vista amb què s'obre el mapa (tipus de mapa, enquadrament, grup per defecte) l'Odoo la recorda per a cada usuari.
Registre de trajectes amb trajecte d'empresa i privat
Els trajectes es detecten al servidor, no al navegador: un trajecte es produeix també quan ningú no té el mapa obert. De cada trajecte es registren l'inici, la fi, les adreces d'origen i de destinació, el comptaquilòmetres, la distància i la durada.
Cada trajecte es pot classificar com a trajecte d'empresa o trajecte privat: per trajecte, no per vehicle, perquè el mateix cotxe va al matí al client i al vespre cap a casa, i la distinció és rellevant fiscalment a Àustria. En començar un trajecte, al mapa apareix directament la finestra per classificar-lo; qui ho fa més tard, retroba el trajecte al registre de trajectes amb un camp de notes. Els conductors es reconeixen mitjançant xips de clau iButton, si el vehicle en va equipat.
Hi ha dues anàlisis disponibles, totes dues en PDF i Excel:
- Registre de trajectes individual: els trajectes d'un vehicle en el període triat, amb ruta, classificació i nota
- Registre de trajectes de la flota: una fila per vehicle amb temps de conducció, distància, la separació en quilòmetres d'empresa i privats i el consum extrapolat, a més de totals per grup i totals generals
Geozones i alarmes
Les geozones es dibuixen directament al mapa (com a cercle, quadrat o polígon lliure) o s'adopten a partir de plantilles compartides com «Àustria» o «Viena». Per a cada zona i vehicle es pot definir si es dona l'alarma en entrar o en sortir, i on: per SMS, correu electrònic, webhook o com a missatge al nostre centre d'atenció telefònica.
Les alarmes (canvi de zona, velocitat, encesa, pèrdua de tensió, emergència, moviment, fora de línia) apareixen com a registres propis a Odoo, amb data i hora, posició i estat de tramitació.
Cerca: quin vehicle era aquí?
Arriba una multa amb el punt de mesura indicat, però quin vehicle era? La cerca a l'historial de ruta respon precisament això: triï un punt al mapa o una adreça, acoti el radi i el període, i la localització mostra quins vehicles hi eren. Els punts de mesura de velocitat d'OpenStreetMap ja són al mapa com a capa.
Gestió pel mateix client
Allò que abans s'havia de delegar en nosaltres, ara ho fan els clients al portal:
- Activar trackers: escrigui l'IMEI de l'adhesiu del dispositiu, triï o creï un grup, i llest
- Trackers i grups: noms, icones, assignació de grup, repostatges amb quantitat i preu, anàlisis per vehicle
- Permisos: compartir vehicles amb altres usuaris o empreses, amb dret de lectura o d'escriptura i la possibilitat d'ocultar camps concrets com l'adreça o el comptaquilòmetres
- Geozones: dibuixar, editar, definir l'alarma
- iButtons: assignar els xips de clau al nom dels conductors
Què ha canviat internament per a nosaltres
Al backend d'Odoo hi ha l'àrea Localització amb mapa en directe, gestió de trackers, alarmes, trajectes, dades mestres (grups, geozones, tipus de dispositiu, fabricants) i la facturació.
Gestió de trackers. Cada dispositiu porta IMEI, número de telèfon de la SIM, tipus de dispositiu, entrades i sortides (encesa, bloqueig del motor, calefacció estacionària i altres), calibratge, correcció del comptaquilòmetres, llindar de fora de línia i els paràmetres del registre de trajectes. L'historial del chatter d'Odoo registra cada canvi.
SMS als dispositius. Els trackers es configuren per SMS. L'enviament ara es fa des d'Odoo, es registra sense llacunes i està protegit contra errors d'ús: un límit màxim per procés d'enviament impedeix que un sol clic provoqui centenars de missatges de pagament, i els números de telèfon incomplets ni tan sols es transmeten.
Centre d'atenció telefònica. Els avisos de robatori i d'accident apareixen com a gestions amb dades del vehicle, dades de contacte del propietari i un procés guiat: s'ha localitzat el propietari? Falsa alarma? Altres mesures? Cada pas es registra, i els gestors responsables reben una notificació push.
Facturació. L'execució de facturació té en compte tots els trackers la pròxima data de facturació dels quals s'ha assolit i en genera esborranys de factura a Odoo, amb preu de client final o de soci. L'aprovació es deixa deliberadament a la comptabilitat: l'execució no comptabilitza res, ho prepara. L'interval de facturació, el producte i la pròxima data van lligats al tracker; després de l'execució, les línies de factura apareixen directament al dispositiu.
L'arquitectura que hi ha al darrere
Dispositius GPS
│
▼
Servidor de seguiment ──► Emmagatzematge de posicions Odoo 19 Community
(sense canvis) avui: base de dades ├─ Dades mestres (trackers, clients, geozones)
existent ├─ Portal de clients /my/ortung
més tard: PostGIS ├─ Backend Localització / …
▲ ├─ Facturació (esborranys de factura)
└─ només lectura ─┘
L'accés a les posicions es fa exclusivament mitjançant una interfície intercanviable. Avui Odoo llegeix de la base de dades de localització existent, que el servidor de seguiment continua omplint sense canvis. El pas a un servidor PostGIS propi és, per tant, un canvi de configuració, no una reforma; les anàlisis espacials, com les comprovacions de geozones, les calcula llavors el mateix PostGIS. Per a desenvolupament i formació hi ha, a més, un emmagatzematge de demostració amb dades sintètiques, amb el qual el mòdul funciona també sense servidor de seguiment.
Les adreces es resolen mitjançant un geocodificador propi i es desen a la memòria cau d'Odoo, arrodonides a uns onze metres: un vehicle aturat no es torna a resoldre a cada soroll de GPS, i el mapa no depèn del temps de resposta d'un servei extern.
Com ha anat el canvi
No hem fet el canvi d'un sol cop, sinó pas a pas, segons el patró Strangler: el sistema antic va continuar operatiu, un servidor intermediari invers (reverse proxy) decidia per a cada ruta qui responia, i el mapa nou va funcionar primer per a un grup pilot en paral·lel amb l'antic.
El traspàs de les dades mestres va ser la part més delicada. Un script de migració llegeix clients, usuaris, trackers, grups i geozones de l'aplicació antiga i els crea a Odoo, repetible com a execució delta, amb l'identificador antic com a clau. Com que molts clients de localització ja existien des de fa temps a Odoo com a socis, un assistent proposa assignacions que cal confirmar una a una: una empresa vinculada erròniament veuria vehicles aliens, i això surt més car que un duplicat.
Allò que deliberadament no s'ha traslladat: la base de codi duplicada per a escriptori i mòbil (el frontend d'Odoo és adaptable), la taula de traduccions pròpia, la gestió pròpia de permisos i sessions i una bona dotzena d'informes que a la pràctica ja no obria ningú.
Què significa això per a vostè com a client
Si és client de localització nostre, ja ha rebut l'accés al portal o el rebrà en les pròximes setmanes. Els seus vehicles, grups, geozones i permisos s'han traspassat; el registre de trajectes continua sense interrupcions.
En un sol portal hi troba la seva localització, les seves factures i les seves sol·licituds de suport. I si vol més que localització (helpdesk, contractes de manteniment, facturació de projectes), és el mateix sistema.
Responem encantats les preguntes sobre el canvi. I qui busqui per a la seva pròpia empresa una localització de vehicles connectada a l'ERP en lloc de funcionar al costat: posi's en contacte amb nosaltres.