Seit vielen Jahren betreiben wir für unsere Kunden eine eigene GPS-Ortungsplattform: Fahrzeuge und Geräte melden ihre Position an unseren Trackingserver, Kunden sehen ihren Fuhrpark live auf der Karte, führen Fahrtenbücher, definieren Geozonen und werden bei Alarmen benachrichtigt. Die Oberfläche dazu war eine gewachsene PHP-Anwendung mit eigener Benutzerverwaltung, eigener Rechnungslegung und eigenem Berichtswesen – parallel zu allem, was wir sonst im Unternehmen einsetzen.
Das haben wir jetzt geändert. Die Ortung ist ab sofort ein Modul in unserem Odoo 19 Community und damit Teil desselben Systems, in dem auch Kunden, Verträge, Rechnungen und Support laufen. Für unsere Ortungskunden bedeutet das: ein Login, eine Oberfläche, und die Ortungsrechnung liegt dort, wo alle anderen Rechnungen auch liegen.
Warum wir die Ortung in Odoo geholt haben
Zwei getrennte Systeme bedeuten doppelte Stammdaten. Jeder Kunde existierte einmal in der Ortung und einmal im ERP, jede Adressänderung musste zweimal gemacht werden, und der Rechnungslauf der Ortung erzeugte Belege, die anschließend von Hand in die Buchhaltung wanderten.
Mit dem Umzug nach Odoo gilt jetzt ein einfacher Grundsatz: Stammdaten in Odoo, Massendaten außerhalb. Kunden, Benutzer, Tracker, Gruppen, Geozonen, Produkte und Preise liegen in Odoo und sind dort mit Rechnungswesen, Portal und Rechteverwaltung verbunden. Die Positionsdaten – der eigentliche Datenstrom der Geräte, rund um die Uhr – bleiben in einem eigenen Positionsspeicher. Eine ERP-Datenbank ist nicht der richtige Ort für Millionen von GPS-Punkten, und sie muss es auch nicht sein.
Der Trackingserver, der die Geräte annimmt, ist von der Umstellung unberührt. Genau das hat den Umbau überhaupt erst realistisch gemacht: Die Oberfläche konnte neu entstehen, ohne den Datenempfang anzufassen.
Was unsere Kunden jetzt im Portal haben
Ortungskunden melden sich im Odoo-Kundenportal an und finden dort den Bereich Ortung. Wer ausschließlich die Ortung nutzt, landet nach dem Login direkt auf der Karte und sieht keine weiteren Portalinhalte.
Live-Karte
Die Karte zeigt alle eigenen und freigegebenen Fahrzeuge mit Status (in Bewegung, steht, offline), Geschwindigkeit, Fahrtrichtung und aufgelöster Adresse. Positionen kommen in Echtzeit über eine WebSocket-Verbindung zum Trackingserver – eine einzige Verbindung für die ganze Installation, nicht eine je geöffnetem Browser – und werden gefiltert verteilt: Jeder Kunde bekommt nur die Fahrzeuge, die ihm gehören oder für ihn freigegeben sind. Fahrzeuge bewegen sich fließend zwischen zwei Meldungen statt zu springen.
Als Grundkarten stehen OpenStreetMap, eine Geländekarte, die amtliche österreichische Basemap samt Luftbild und eine Schwarz-Weiß-Karte zur Wahl; Gelände und 3D-Gebäude lassen sich als Ebenen zuschalten. Die Ansicht, mit der die Karte aufgeht – Kartentyp, Ausschnitt, Standardgruppe – merkt sich Odoo je Benutzer.
Fahrtenbuch mit Firmen- und Privatfahrt
Fahrten werden am Server erkannt, nicht im Browser: Eine Fahrt findet auch dann statt, wenn niemand die Karte offen hat. Beginn, Ende, Start- und Zieladresse, Tachostand, Strecke und Dauer werden je Fahrt festgehalten.
Jede Fahrt lässt sich als Firmenfahrt oder Privatfahrt einstufen – je Fahrt, nicht je Fahrzeug, weil dasselbe Auto vormittags zum Kunden und abends nach Hause fährt und die Unterscheidung in Österreich steuerlich relevant ist. Beim Fahrtantritt erscheint auf der Karte direkt das Fenster zur Einstufung; wer es später macht, findet die Fahrt im Fahrtenbuch samt Notizfeld wieder. Fahrer werden über iButton-Schlüsselchips erkannt, wenn das Fahrzeug damit ausgestattet ist.
Zwei Auswertungen stehen bereit, beide als PDF und Excel:
- Einzelfahrtenbuch – die Fahrten eines Fahrzeugs im gewählten Zeitraum mit Route, Einstufung und Notiz
- Fuhrpark-Fahrtenbuch – eine Zeile je Fahrzeug mit Fahrzeit, Strecke, der Trennung in Firmen- und Privatkilometer und dem hochgerechneten Verbrauch, dazu Gruppen- und Gesamtsummen
Geozonen und Alarme
Geozonen werden direkt auf der Karte gezeichnet – als Kreis, Quadrat oder freies Polygon – oder aus gemeinsamen Vorlagen wie „Österreich" oder „Wien" übernommen. Je Zone und Fahrzeug lässt sich festlegen, ob bei Ein- oder Austritt alarmiert wird und wohin: per SMS, E-Mail, Webhook oder als Meldung an unser Callcenter.
Alarme – Zonenwechsel, Geschwindigkeit, Zündung, Spannungsverlust, Notruf, Bewegung, Offline – laufen als eigene Datensätze in Odoo auf, mit Zeitpunkt, Position und Bearbeitungsstatus.
Suche: Welches Fahrzeug war hier?
Ein Strafzettel trifft ein, die Messstelle steht drauf – aber welches Fahrzeug war es? Die Suche im Routenverlauf beantwortet genau das: Punkt auf der Karte oder Adresse wählen, Umkreis und Zeitraum eingrenzen, und die Ortung zeigt, welche Fahrzeuge dort waren. Die Geschwindigkeitsmessstellen aus OpenStreetMap liegen dafür bereits als Ebene auf der Karte.
Verwaltung durch den Kunden selbst
Was früher an uns delegiert werden musste, erledigen Kunden jetzt im Portal:
- Tracker aktivieren – IMEI vom Geräteaufkleber eintippen, Gruppe wählen oder neu anlegen, fertig
- Tracker und Gruppen – Bezeichnungen, Symbole, Gruppenzuordnung, Betankungen mit Menge und Preis, Auswertungen je Fahrzeug
- Berechtigungen – Fahrzeuge an andere Benutzer oder Firmen freigeben, mit Lese- oder Schreibrecht und der Möglichkeit, einzelne Felder wie Adresse oder Tachostand auszublenden
- Geozonen – zeichnen, bearbeiten, Alarmierung festlegen
- iButtons – Schlüsselchips den Fahrernamen zuordnen
Was sich für uns intern geändert hat
Im Odoo-Backend gibt es den Bereich Ortung mit Live-Karte, Trackerverwaltung, Alarmen, Fahrten, Stammdaten (Gruppen, Geozonen, Gerätetypen, Hersteller) und der Verrechnung.
Trackerverwaltung. Jedes Gerät trägt IMEI, SIM-Rufnummer, Gerätetyp, Ein- und Ausgänge (Zündung, Motorblockade, Standheizung und weitere), Kalibrierung, Tachokorrektur, Offline-Schwelle und die Fahrtenbuch-Parameter. Die Chatter-Historie von Odoo protokolliert jede Änderung.
SMS an Geräte. Tracker werden per SMS konfiguriert. Der Versand läuft jetzt aus Odoo heraus, wird lückenlos protokolliert und ist gegen Fehlbedienung abgesichert: Eine Obergrenze je Versandvorgang verhindert, dass ein Klick Hunderte kostenpflichtiger Nachrichten auslöst, und unvollständige Rufnummern werden gar nicht erst übergeben.
Callcenter. Diebstahl- und Unfallmeldungen erscheinen als Vorgänge mit Fahrzeugdaten, Kontaktdaten des Besitzers und einem geführten Ablauf: Besitzer erreicht? Fehlalarm? Weitere Maßnahmen? Jeder Schritt wird protokolliert, und die zuständigen Bearbeiter werden per Push benachrichtigt.
Verrechnung. Der Rechnungslauf berücksichtigt alle Tracker, deren nächster Verrechnungstermin erreicht ist, und erzeugt daraus Rechnungsentwürfe in Odoo – mit Endkunden- oder Partnerpreis. Die Freigabe bleibt bewusst bei der Buchhaltung: Der Lauf bucht nichts, er bereitet vor. Verrechnungsintervall, Produkt und nächster Termin hängen am Tracker; nach dem Lauf stehen die Rechnungszeilen direkt am Gerät.
Die Architektur dahinter
GPS-Geräte
│
▼
Trackingserver ──► Positionsspeicher Odoo 19 Community
(unverändert) heute: bestehende ├─ Stammdaten (Tracker, Kunden, Geozonen)
Datenbank ├─ Kundenportal /my/ortung
später: PostGIS ├─ Backend Ortung / …
▲ ├─ Verrechnung (Rechnungsentwürfe)
└── nur lesend ─┘
Der Zugriff auf Positionen läuft ausschließlich über eine austauschbare Schnittstelle. Heute liest Odoo aus der bestehenden Ortungsdatenbank, die der Trackingserver unverändert weiter befüllt. Der Umstieg auf einen eigenen PostGIS-Server ist damit eine Konfigurationsänderung, kein Umbau – räumliche Auswertungen wie Geozonen-Prüfungen rechnet PostGIS dann selbst. Für Entwicklung und Schulung gibt es zusätzlich einen Demo-Speicher mit synthetischen Daten, mit dem das Modul auch ohne Trackingserver läuft.
Adressen werden über einen eigenen Geocoder aufgelöst und in Odoo zwischengespeichert, gerundet auf rund elf Meter: Ein stehendes Fahrzeug wird nicht bei jedem GPS-Rauschen neu aufgelöst, und die Karte hängt nicht an der Antwortzeit eines externen Dienstes.
Wie die Umstellung gelaufen ist
Wir haben nicht auf einen Schlag umgestellt, sondern Stück für Stück nach dem Strangler-Muster: Das Altsystem blieb lauffähig, ein Reverse-Proxy entschied je Pfad, wer antwortet, und die neue Karte lief zunächst für eine Pilotgruppe im Parallelbetrieb neben der alten.
Die Übernahme der Stammdaten war dabei der heikelste Teil. Ein Migrationsskript liest Kunden, Benutzer, Tracker, Gruppen und Geozonen aus der Altanwendung und legt sie in Odoo an – wiederholbar als Delta-Lauf, mit der alten Kennung als Schlüssel. Weil viele Ortungskunden in Odoo längst als Partner existierten, schlägt ein Assistent Zuordnungen vor, die einzeln bestätigt werden müssen: Eine falsch verknüpfte Firma bekäme fremde Fahrzeuge zu sehen, und das ist teurer als eine Dublette.
Was bewusst nicht mitgewandert ist: die doppelte Codebasis für Desktop und Mobil (das Odoo-Frontend ist responsiv), die eigene Übersetzungstabelle, das eigene Rechte- und Session-Handling und ein gutes Dutzend Berichte, die in der Praxis niemand mehr geöffnet hat.
Was das für Sie als Kunde bedeutet
Wenn Sie Ortungskunde bei uns sind, haben Sie Ihren Portalzugang bereits erhalten oder erhalten ihn in den nächsten Wochen. Ihre Fahrzeuge, Gruppen, Geozonen und Berechtigungen sind übernommen; das Fahrtenbuch läuft nahtlos weiter.
Sie finden in einem Portal Ihre Ortung, Ihre Rechnungen und Ihre Support-Anfragen. Und wenn Sie mehr wollen als Ortung – Helpdesk, Wartungsverträge, Projektabrechnung – ist es dasselbe System.
Fragen zur Umstellung beantworten wir gerne. Und wer für sein eigenes Unternehmen eine Fahrzeugortung sucht, die mit dem ERP verbunden ist statt daneben zu stehen: Sprechen Sie uns an.