GPS-Fahrzeug-Ortung mit OpenGTS
Wie kann man im Internet verfolgen, wo sich ein Fahrzeug gerade befindet?
Diese Frage habe ich mir vor nicht allzulanger Zeit gestellt und am Ende eine individuelle Lösung zusammen gebaut. Dieser Artikel beschreibt nicht alles bis ins letzte Detail, sollte aber bei der Umsetzung einer solchen Lösung hilfreich sein. Wer weitergehende Infos zu Details haben möchte, kann gerne per Kommentar seine Fragen stellen. Für die Umsetzung der hier beschriebenen Lösung sind auf jeden Fall Linux- und evtl. auch Skript/Programmierkenntnisse erforderlich.
Nach längerer Recherche im Internet stieß ich zunächst auf verschiedene Firmen, die kommerzielle Dienste zur Fahrzeugortung anbieten. Da es mir aber eher um ein „Privatvergnügen“ ging, musste eine kostengünstigere Lösung her, am liebsten mit eigener Hardware, und so unabhängig wie möglich von kommerziellen Anbietern.
Was wird benötigt?
Hardware:
- GPS-Trackbox mit GSM-Modem
- Evtl. 12V=-Netzteil für Trackbox-Konfiguration
- GSM-Modem für SMS-Empfang
- 2 SIM-Karten für die Modems
- Linux-PC mit serieller Schnittstelle
- Internet-Anschluß
Software:
- SMS Server Tools
- Apache-ANT
- Apache-Tomcat
- Java
- JavaMail
- MySQL-Datenbank
- MySQL Connector/J (JDBC-Support für MySQL)
- OpenGTS
Meine ersten Versuche startete ich mit der GPS-Trackbox „Fleetec II+“ von der Firma Datafactory (heute TomTom). Im Prinzip eignet sich aber jede Trackbox, wenn sie in der Lage ist, die Daten per Mobilfunk zu versenden. Da die Fleetec II+ ihre Daten per SMS versendet, ist auf der Empfängerseite ein GSM-Modem nötig. Dazu kommt ein Siemens TC35 zum Einsatz. Damit die GSM-Modems ihren Dienst verrichten können, wurden sie mit zwei SIM-Karten bestückt. Dazu hatte Congstar eine günstige netzinterne SMS-Flatrate für rund 5 EUR und eine Prepaid-Karte für das empfangende Modem im Angebot.
Für die Entgegennahme der empfangenen SMS-Daten sind die kostenlosen SMS Server Tools die Software der Wahl. Nun kann man also theoretisch Positionsdaten per SMS empfangen. Jetzt wäre es natürlich schön, wenn man die Daten auch auf einer Landkarte darstellen könnte. Nach einiger Sucherei im Internet fand ich schließlich das Open-Source-Projekt OpenGTS, das genau diese Funktionalität (neben einer ganzen Reihe weiterer Funktionen) beherrscht. Wie das aussieht, kann man sich online in einer Demo anschauen.
Die in Java geschriebene Software liefert von Haus aus Unterstützung für einige GPS-Trackboxen, die Fleetec II+ ist aber leider nicht dabei. Es blieb in diesem Falle also nichts anderes übrig, als selbst ein kleines Programm zu schreiben, um die Daten aus den eingehenden SMS für OpenGTS bereitzustellen.
Die SMS Server Tools und OpenGTS laufen problemlos auf einem Linux-Server. Für OpenGTS wird ein Apache-Tomcat-Server und MySQL benötigt.
Vorbereitung der Komponenten:
- Konfigurieren der GPS-Trackbox gemäß Herstelleranleitung.
- Installation und Konfiguration der SMS-Server-Tools gemäß Dokumentation.
- Installation des Apache-Ant, Apache-Tomcat, Java, JavaMail und MySQL mit Connector/J, wenn noch nicht vorhanden.
- Kompilieren, Konfiguration und Installation von OpenGTS gemäß Dokumentation.
Je nach Modell unterscheidet sich die Konfiguration der Trackbox natürlich erheblich. Zum Betrieb der Trackbox zu Hause wird eine 12V-Gleichspannungsversorgung benötigt. Im Falle der „Fleetec II+“ muss zunächst die Rufnummer des GSM-Anschlusses konfiguriert werden, an welchen die SMS gesendet werden sollen. Ausserdem muss eingestellt werden, dass nach einer bestimmten zurückgelegten Strecke automatisch eine SMS mit den Positionsdaten gesendet wird. Aus urheberrechtlichen Gründen darf ich die Anleitung der Fleetec II+ leider nicht zur Verfügung stellen.
Die SMS Server Tools werden mittels der Datei smsd.conf eingerichtet. Hier ist die Konfiguration, wie sie bei mir verwendet wird. Nach Anschluß des GSM-Modems kann man die SMS Server Tools starten und sollte nun die Kommunikation testen. Wenn alles funktioniert, werden die SMS im Verzeichnis /var/spool/sms/incoming gespeichert. Eine Positions-SMS der Fleetec II+ kann z.B. so aussehen:
From: 4915112345678 From_SMSC: 491710760000 Sent: 08-04-25 07:32:41 Received: 08-04-25 07:32:50 Subject: GSM1 Alphabet: ISO UDH: false DST,250408,053241,5110.3935,N,00653.0809,E,122,179.3,03,A7.0,,0,0,26,1,26201,0000,0000,
Die farbig markierten Felder sind die Wesentlichen, die man für OpenGTS verfügbar machen sollte:
DST ist die Befehlskennung für Positionsmeldungen, die immer nach einer konfigurierbaren zurückgelegten Strecke gesendet werden. Diese Befehlskennungen habe ich in OpenGTS für die verschiedenen Statuscodes verwendet. Dazu nachher mehr.
Datum und Uhrzeit: Die Uhrzeit nach Universal Time Code
Position: GPS-Positionsdaten. Diese müssen für OpenGTS noch in Dezimalgrad konvertiert werden. Positive Werte repräsentieren jeweils Nord und Ost, negative Werte repräsentieren jeweils Süd und West.
Geschwindigkeit in km/h und Fahrtrichtung in Grad.
Installation von OpenGTS
Zunächst lädt man sich die aktuelle Version von OpenGTS herunter und entpackt sie. OpenGTS und die vorausgesetzten bereits zuvor genannten Programmpakete (Apache-Ant, Apache-Tomcat, Java, JavaMail, MySQL mit MySQL Connector/J), müssen nun gemäß der recht ausführlichen Anleitung im Dokument OpenGTS_Config.pdf (leider nur in Englisch verfügbar) kompiliert, installiert und konfiguriert werden. Für detaillierte Anweisungen zur Installation der vorausgesetzten Pakete sind die entsprechenden bei den Paketen mitgelieferten Anleitungen zu beachten.
Nach der Installation von OpenGTS und aller notwendigen Pakete müssen noch folgende Schritte erledigt werden:
- Anlegen der Datenbank mittels bin/dbAdmin.pl -schema
- Anlegen eines Accounts mittels bin/admin.sh Account -account=<MeinKontoName> -create
- Anlegen eines Users für den o.g. Account mittels bin/admin.sh User -account=<MeinKontoName> -user=<MeinUserName> -create
- Anlegen eines Device (die Trackbox) mittels bin/admin.sh Device -account=<MeinKontoName> -device=<MeinDeviceName> -create
Auch die obigen Schritte sind ausführlich in OpenGTS_Config.pdf beschrieben.
OpenGTS hat ausserdem eine MySQL-Tabelle StatusCode. In dieser sind u.a. verschiedene gerätespezifische Statuscodes mit deren Klartextnamen und Beschreibungen hinterlegt. Für die Fleetec II+ habe ich die folgenden Statuscodes in der Tabelle eingetragen. Diese werden später für die Anzeige von Klartext-Statuscodes (in Bewegung, Zündung ein/aus etc.) auf der OpenGTS-Seite benötigt.
Da OpenGTS nicht gerade viele Trackboxen von Haus aus unterstützt, muss man für die Fleetec II+ einen eigenen Kommunikationsserver programmieren. Es gibt bei OpenGTS gibt auch einen mitgelieferten Template-Server, den man (Java-Kenntnisse vorausgesetzt) für seine eigenen Geräte verwenden und anpassen kann. Im Prinzip kommt es nur darauf an, die ankommenden SMS-Positionsdaten im passenden Format in der OpenGTS-Datenbank abzulegen.
Wenn eine neue SMS eingegangen ist, wird von den SMS Server Tools ein Event-Handler aufgerufen. Dieser prüft, ob der Absender unsere Trackbox ist und startet dann bei Bedarf einen weiteren Handler, welcher schließlich das eigentliche (selbst geschriebene) C-Programm zum Import der Daten in die OpenGTS-Datenbank aufruft.
Das Programm liest die Daten aus den SMS-Dateien und legt die Daten nach einigen Plausibilitätsprüfungen und Konvertierungen in der Datenbanktabelle EventData ab.
Einbau der Trackbox ins Fahrzeug
Nachdem der Softwareteil nun funktionieren sollte, muss die Trackbox noch im Fahrzeug installiert werden. Hier ist definitiv Erfahrung mit der KFZ-Elektrik erforderlich, um die Trackbox korrekt anzuschliessen. Wer sich da nicht auskennt, sollte es unbedingt von einem Fachmann machen lassen. Die Gefahr eines Kabelbrandes bei Kurzschluss durch unsachgerechte Installation ist einfach zu gross. Neben dem Stromanschluss müssen auch noch die GPS- und GSM-Antennen installiert werden. Insbesondere die GPS-Antenne muss eine möglichst „freie“ Sicht zum Himmel haben. Metallbedampfte Windschutz- und Heckscheiben sind garnicht von Vorteil. Die Plazierung der Antennen hängt stark vom jeweiligen Fahrzeugtyp ab, da muss man sich was Passendes einfallen lassen.
OpenGTS im Internet erreichbar machen
Um die OpenGTS-Seite aus dem Internet erreichen zu können, muss der Tomcat-Port auf dem Router nach aussen freigegeben werden. Ausserdem empfiehlt sich bei Internet-Anschlüssen mit dynamischer IP-Adresse ein DynDNS-Account, damit man die Seite über einen festen Hostnamen ansprechen kann. Anleitungen zur Router-Konfiguration und zur Einrichtung von Dyndns gibt es genug im Internet.
So, das war es im Groben und Ganzen. Sollte diese Anleitung jemandem geholfen haben, freue ich mich über Feedback. Fragen können natürlich jederzeit gestellt werden.
Gruss, Michael
Kommentare sind momentan deaktiviert.
Hallo zusammen
kennt jemand einen Entwickler der mir eine komplete Webseite für mehrere Fahrzeuge bzw. Handy mit dem Opengts System gegen Bezahlung erstellen und betreuen könnte.
gruss Ruedi5
rudolf.naepflin@bluewin.ch
Wer sich ein Ortungsgerät selber bauen möchte, findet einen Bausatz unter:
http://www.gsm-modem.de/M2M/m2m-componets/iot-avl-smart-home-aal-m2m-and-m2m2p-on-arduino/
Auf unseren Seiten möchten wir den Besuchern in kompakter Form ein kategorisiertes Verzeichnis verschiedener Systeme zur Zeiterfassung, Zutrittskontrolle und Fahrzeugortung vorstellen.
http://zeit.erfassung.info/
Vielleicht ganz interessant zu diesem Post.
Hallo,
kann mir vielleicht einer bitte die Anleitungen besonders zur Konfiguration zukommen lassen?
info (at) jaiser (punkt) org
Vielen vielen Dank schonmal im voraus!
Gruss Philip
Hi Michael ,
kannst Du mich mal unter meiner email anmorsen es geht im einzelnen um das fleetec2+ von Datafactory ! Sorry ich weis das gehört hier zwar nicht her, aber ich wußte nicht wie ich sonnst Kontakt aufnehmen kann : Danke Marcus : mbogusat@web.de
Ja! Natürlich, ich hab ja die Anleitung.
Ich hab mi jetzt ein GX107 besorgt und das fuktioniert prima.
Danke für die Antwort.
Grüße
Mirco
Hallo Mirco,
hast Du auch darauf geachtet, die PIN der SIM-Karte in der Fleetec auf 1234 einzustellen?
Die SMS für dem CSMS-Befehl muss von der Rufnummer kommen, die Du vorher mit CNRZ festgelegt hast.
Grüße
Michael
Hallo Leute,
also ich habe das fleetec ii+ und komme bis zum setzten der (alles per
smsm) C-Nr.: CNRZ,1234,+4916372**063 -> Antwort
war:fleetec@:CNRZ,1234,+4916372**063,OK
Wenn ich dann die csms setzten muss kommt folgendes:
CSMS,1234,+491770610000,24-> Antwort
war:fleetec@:CSMS,1234,+491770610000,24,ERR
Und dann blinkt immer noch die rote LED, was so viel heißt wie: es geht
nicht. Alle weiteren Versuche haben immer wieder zu nur ERR geliefert.
Ich habe folgende Files dazu bin bir jetzt aber nicht mehr sicher ob die
auch stimmen, denn dann hätte es ja funktionieren müssen.
64.148 Fleetec+2++short_manual_2_eng.pdf
64.183 fleetec1.jpg
65.599 fleetec2.jpg
192.726 fleetecII+_Manual_DE.pdf
142.646 ft2p_Inbetriebnahme+prog+manual.pdf
39.521 kurzbedienungsanleitung+german1_1.pdf
Hat jemand eine Idee? :motz:
Hallo,
lt. Aussage von „denen“ geht das nicht.
Ich würde eben 5-6 Stück benötigen, und da siehts mit ebay nicht mehr so gut aus.
Die Frage ist, ob man die Software bei den aktuellen Modellen noch mitbekommt, oder ob die mittlerweile die Geräte auch nur noch an ihren eigenen Service binden, den locate-09 gibt es ja nicht mehr.
Schwieriges Thema, da es auf dem deutschen Markt nicht viele günstige Geräte gibt.
Hi,
Man kann bei den Enaikoons mit einem mitgelieferten Programm einstellen, wohin die Daten gesendet werden sollen. Man muss nur noch „verstehen“, was das Gerät da so sendet :)
Gruss Michael
Hallo Michael,
sehr schöne Seite.
Die Enaikoon Geräte liefern die Daten ja nur „nach Hause“
Nutzt du dann den Service von Enaikoon oder konntest du das Gerät so modifizieren dass es auch mit deinem Server redet?
VIele Grüße,
Michl
Hallo Daniel,
Zur Zeit ist es eine „Enaikoon“ Locate 09. Die gabs damals günstig bei einem grossen Auktionshaus. GPRS ist schon klasse und verursacht weniger Traffic für solche Anwendungen als SMS. Die Fleetec 4 kann bestimmt auch eine Menge, aber leider bekommt man ja nirgends eine brauchbare Dokumentation für die Teile :(
Gruss Michael
Hi Michael, auch wenn der Eintrag schon ein wenig her ist, würde mich interessieren, welchen Tracker du jetzt im Einsatz hast. Ich würde das gerne nachstellen. Leider habe ich nur eine fleetec 4 und keinen Plan wie ich das Teil konfigurieren kann. Die Variante mit gprs wäre mir sowieso lieber. :)
Danke dir
Hallo Klaus,
ja es ist möglich. Inzwischen habe ich auch eine GPRS-Lösung im Einsatz. Ich habe mir ein Programm für den Tracker geschrieben, das schreibt die gesendeten Koordinaten dann direkt in die OpenGTS-Datenbank.
Viele Grüße
Michael
Hallo!
Habe diesen Beitrag mit Interesse gelesen.
Mittlerweile gibt es ja schon diverse Tracker auf dem Markt.
Diese können neben SMS auch über GPRS Daten senden. Dies ist natürlich wesentlich günstiger als SMS. Vor Allem, wenn man nicht nur sporadisch, sondern kontinuierlich Daten senden möchte um z.B. Routen aufzuzeichnen.
Hier liegt auch mein Schwerpunktinteresse. Ist dies grundsätzlich mit OpenGTS möglich?
Gruß
Klaus
Hi,
leider nicht. Mir ist auch nur die Möglichkeit der Konfiguration über SMS bekannt.
Gruss Michael
Hallo Michael,
ich habe mir bei eBay ein fleetec 2+ ersteigert.
leider war nur eine Beschreibung der Konfiguration über SMS dabei.
Ich würde das Gerät gern über RS232/RS485 konfigurieren.
Hast Du eine ausführliche Anleitung mit Steckerbelegung und Befehlssatz?
Und könntest Du sie mir zukommen lassen, natürlich gegen Erstattung des Aufwands?
Gruß Micha
Ich meine mich erinnern zu können dass dort nur die einzelnen Positionen zu sehen waren. welche Daten ausser der Position dort noch verwertet werden, weiss ich leider nicht. Zum Testen kann man sich dort ja mal registrieren, ist kostenlos und Du kannst Deine Fleetec wenigstens schonmal nutzen.
Gruss Michael
Danke!!! Ist das auf der von dir genannten HP dann auch so wie in GTS? Das man die Marker dann auf einer Strecke hat sowie die Geschw usw? Wenn ich Registiert bin kann ich die dann nur sehen?
Grüße David
Hi,
Linux hat den Vorteil, dass es zum einen nichts kostet, und alles was man benötigt, wird mit den gängigen Linux-Distributionen mitgeliefert. Bei Windows gibt es bestimmt noch so manchen Fallstrick, bis alles funktioniert.
Prinzipiell sollten auch mein selbstgestricktes Programm und die Skripte auf Windows zum Laufen zu bekommen sein, es ist aber sicherlich mehr Aufwand als unter Linux.
Wenn Du mit OpenGTS loslegen willst, empfehle ich definitiv eine Linux-Installation.
Es gibt aber auch eine ganz andere Alternative, wo man nichts ausser einer Trackbox benötigt. Schau mal bei http://gpstrack.xtremeweb.de/ vorbei, dort kannst Du die Daten Deiner Fleetec auch hinsenden und im Web verfolgen.
Gruss Michael
Hallo Michael,
das gleiche wie du Fahrzeug Orten bzw verfolgen. Du hast doch geschrieben das du für deine Fleetec extra Dateien Schreiben musstest diese meinte ich. Ja das mit der Installationsanleitung das ist ja ein ganz schöner Brocken. Da bin ich mich noch am einarbeiten. Wie und was wie zu Installieren ist, ist ja nicht wirklich einfach zu verstehen. Deshalb hast du auch bestimmt Linux genommen oder?
Grüße
David
Hallo David,
welche Datei ist gemeint? Das OpenGTS? Das ist zwar in Java geschrieben, aber damit es laufen kann, werden noch einige andere Sachen benötigt. (Java-Compiler, Apache Tom-Cat, SMS Server Tools, Mysql-Datenbank etc.) Die ganzen Pakete kann man im Internet downloaden.
Die im Wesentlichen benötigte Software ist oben im Artikel beschrieben und unter Windows sollte es sich ähnlich verhalten wie unter Linux. Leider ist es nicht nur eine einzige Datei, die man installieren muss und dann läuft es.
Mal anders gefragt: Was hast Du denn genau vor mit Deiner Fleetec?
Gruss Michael
Danke Michael! Besteht vieleicht die möglichkeit das du mir die Datei für die Fleetec II+ zukommen lassen kannst? Diese müsste doch Funktionieren weil es ja auf Java Basis ist oder?
Grüße
David
Hallo David,
Alle benötigten Komponenten sollten auch auf Windows laufen. Ich habe es aber nie probiert. Bei Windows muss man einiges hinzu installieren (Stichwort: cygwin), damit es lauffähig ist. Ich habe Linux genommen, da es dort mit weniger Zusatzaufwand realisierbar war.
Grüße Michael
Hallo,
Funtioniert das ganze auch auf Windows Basis? Ich habe auch eine Fleetec II+ kann ich dann auch die von Ihnen geschriebene Datei nutzten?
MfG
David