[Beta] Traccar - GPS Trackingserver

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
Hallo Forenmitglieder,

ich suche Betatester für diese spk.
Ich selber nutze eine Synology 411slim zusammen mit einem TK5000 Tracker.


Vorwort:
Seit einiger Zeit befasse ich mich mit GPS Trackern, da ich mir unter anderem einen im meinem Auto eingebaut habe.
Es gibt sehr viele kostenpflichtige Angebote auf dem Markt. Als Privatperson will man aber nicht unbedingt teure Portale anmieten.
Ich habe selbst das Portal von gpsvision genutzt. Aus Sicht des Supports war ich nicht in der Lage den Tracker so zu konfigurieren, dass er 100%tig mit dem Portal funktioniert. Der Tracker hat von sich aus immer den Kontakt nach 1-2 Wochen abgebrochen.
Dies habe ich zu Anlass genommen mich nach einer Alternative umzusehen.
So bin ich auf Traccar gekommen. Seit 4 Monaten hatte ich bisher keinen Ausfall des Trackers. Auch die Verbindungskosten sind von 2-3Euro auf unter 1Euro im Monat gesunken(simyo).


Die Software:
Traccar - Ist eine auf Java basierende Software, die GPS Daten verschiedener Tracker in eine MySql Datenbank schreibt.
Eine Androidapp ist auch als GPSclient verfügbar.
traccar.png

Abweichungen von Traccar:
Da Traccar Ports verwendet, die der Synology vorbehalten sind, habe ich die Protokollports verändert.
So wurde allen Ports eine 5 vorrangestellt.
Die Weboberfläche hat den Port 7777 bekommen.

Die Installation:

Die Installation führt über den normalen Weg über einige kleine Steine. Weshalb ich ein spk gebaut habe.
Was passiert bei der Installation?
- es werden Packete abgefragt:
coreutils
textutils
gettext
ipkg
java7

- es wird eine mysql datenbank mit Namen traccar angelegt

Wie kann getestet werden?

Einmal interessiert mich, ob die Installation bei Euch funktioniert.
- dazu beim Installieren "Log" mit aktivieren
- das Webinterface "Port 7777" aktivieren
- "Port 55005" aktivieren, mit einem Android Handy kann die Traccarapp geladen und so Daten zum Server geschickt werden.

Pfade zu den logs: /volume1/@appstore/traccar/logs/ traccar.log & wrapper.log
Pfade zu den configs: /volume1/@appstore/traccar/conf/ traccar.cfg & wrapper.cfg

Start stop sollte über die Oberfläche der Diskstation funktionieren ansonsten:

Start/Stop: /volume1/@appstore/traccar/bin/traccar start / stop

Da Wrapper genutzt wird, bin ich mir nicht sicher, ob für nicht ARM Geräte eine andere Wrapperversion benötigt wird.

Bitte denkt daran, den Port 55005 über die Firewall von Außen erreichbar zu machen und auf die Synology weiterzuleiten.

Der Download:
2013-05-29-Beta


Danke für Eure Rückmeldung, falls Ihr Interesse habt.

Bitte beachtet:
- Ich bin nicht Entwickler der Software, ich habe sondern lediglich die Setuproutine für die Synology erstellt.
- Das Packet im Betatest ist.
- Support bei Problemen mit Geräten kann nur der Entwickler geben: Traccar

Greetings 1stHandy
 
Zuletzt bearbeitet:

Darkdevil

Benutzer
Mitglied seit
08. Feb 2013
Beiträge
507
Punkte für Reaktionen
1
Punkte
0
Also ich finde das Projekt sehr interessant.
Wäre evtl. eine Anwendung für meinen 2. Zigarettenanzünder im Kofferaum :)
Mal gucken ob ich eine Einstiegsversion von den unterstützten Geräten finde.
 

Nerowulf

Benutzer
Mitglied seit
28. Jan 2007
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo
Bastelt mir einer eine gettext.spk datei für DS212+
mit anleitung bitte bitte
gruß an alle
 

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
Hallo
Bastelt mir einer eine gettext.spk datei für DS212+
mit anleitung bitte bitte
gruß an alle

Ich bin zwar kein Moderator,

aber könntest Du bitte beim Thema bleiben, hier geht es einzig und allein um das o.g. SPK und nichts weiter.

Die gettext und die anderen Packete sollen bewußt über die Komandozeile installiert werden, damit jeder weiß, welche Packete zusätzlich auf seiner Synology sind.

Für alle interessierten hier ein paar Screenshoots:

syno1.png

syno2.jpg
 

OldSmurf

Benutzer
Mitglied seit
29. Jun 2013
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hi 1sthandy

Super Initiative - ich habe eine 411+II mit der neuesten Firmware. Der Installier bricht aber leider immer ab und behauptet ich hätte nicht Java7 installiert. Ich habe es nun mit 4 verschiedenen Java's versucht, aber irgendwie will die SPK nicht meine Version acceptieren. Ich habe in /volume1/@appstore/traccar/logs/ nachgesehen ob es da etwas interessantes gäbe, aber er hat nur die Pfade angelegt - keine Dateien.

Gute Ratschläge sind willkommen :)

Grüsse
Jens
 

wrasen_seg

Benutzer
Mitglied seit
26. Apr 2012
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Tolles Projekt! Finde ich klasse. Ich bin auch sehr interessiert, die Bewegungsdaten meines TK102-2 auf einem privaten traccar-Server zu loggen.
Ich nutze eine DS411 mit DSM 4.2... (die neueste).

Auch ich hatte das JAVA7-Problem. Java 7 hatte ich von Oracle heruntergeladen und gemäß Anleitung von folgender Seite installiert: http://pcloadletter.co.uk/2011/08/23/java-package-for-synology/. Laut "java -version" an der CLI lief Java7 auch. Nach x-mal deinstallieren (inkl. entsprechende $PATH-Einträge in der .profile von root und admin entfernen) und neu installieren hat die traccar.spk ein angeblich fehlendes JAVA7 dann nicht mehr bemängelt. Warum genau, weiß ich nicht.

Als nächstes hatte traccar.spk moniert, dass das Paket "gettext" nicht installiert sei. Das habe ich dann im Terminal als root nachinstalliert (ipkg install gettext) und danach lief die traccar-Installation auch ohne weitere Fehlermeldungen durch.

Eine entsprechende SQL-Datenbank wurde angelegt, ist aber leer (keine Tabellen) und obwohl das Paketzentrum sagt traccar läuft und ich bei der Installation das Webinterface Port 7777 mit angekreuzt hatte, bekomme ich beim Aufruf via "<mySynoIP>:7777" vom Browser nur eine Fehlermeldung (nicht erreichbar).

Irgendwelche Ideen?
 

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
Hi 1sthandy

Super Initiative - ich habe eine 411+II mit der neuesten Firmware. Der Installier bricht aber leider immer ab und behauptet ich hätte nicht Java7 installiert. Ich habe es nun mit 4 verschiedenen Java's versucht, aber irgendwie will die SPK nicht meine Version acceptieren. Ich habe in /volume1/@appstore/traccar/logs/ nachgesehen ob es da etwas interessantes gäbe, aber er hat nur die Pfade angelegt - keine Dateien.

Gute Ratschläge sind willkommen :)

Grüsse
Jens

Hallo,

die Installationsroutine sucht nach java in:
Rich (BBCode):
"/volume1/@appstore/java7/jre/bin/java"
Java7 habe ich über das Packetzentrum installiert.
java.jpg


Das Problem ist, dass auch beim aufrufen von Traccar java an diesem bestimmten Pfad liegen muss.

Probiert das bitte mal aus. Freue mich über Eure Rückmeldung.

@wrasen_seg

Du hast wohl auch das Problem, schau mal bitte, ob Du Java über den beschriebenen Weg installiert hast.
Wenn die Tabellen in der SQL Datenbank nicht angelegt sind, wurde Traccar nicht richtig gestartet. Beim ersten Starten werden die Tabellen geschrieben.
 

winxi

Benutzer
Mitglied seit
10. Dez 2011
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Hallo,
die Installationsroutine sucht nach java in:
Rich (BBCode):
"/volume1/@appstore/java7/jre/bin/java"
Java7 habe ich über das Packetzentrum installiert.
Anhang anzeigen 12969


Das Problem ist, dass auch beim aufrufen von Traccar java an diesem bestimmten Pfad liegen muss.

Es gibt verschieden Möglichkeiten, Java zu installieren, nicht nur das Paket von patters.
Die übliche vorgehensweise für ein Paket, das Java nutzt, ist zu überprüfen, ob die $JAVA_HOME Umgebungsvariable definiert ist. Die java binary ist dann unter '$JAVA_HOME/bin/java' zu finden.

Liebe Grüße,
winxi
 

wrasen_seg

Benutzer
Mitglied seit
26. Apr 2012
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Java7 lief bei mir mittlerweile korrekt und war auch in den angegebenen Pfaden installiert.

Nach Deinstallation von traccar und Neuinstallation (allerdings auf volume 1, vorher volume 2) konnte ich traccar auch über die WebGUI 7777 aufrufen. Insofern hat es doch noch funktioniert. Kann es sein, dass nur eine "Volume 1"-Installation korrekt erfolgt?

Mittlerweile habe ich aber herausgefunden, dass mein GPS-Tracker (ein Xexun TR102-2) zwingend eine feste IP als Zielserver für die per GPRS gesendeten Logdaten erfordert (Befehl z.B. "adminip123456 111.112.113.114 4711") und keine (Dyn)DNS-Auflösung unterstützt. Da ich bei meinem Privatkunden-DSL-Anschluss vom Typ Telekom Call&Surf Comfort leider keine statische IP-Adresse hinzubuchen kann (nur bei Business Anschlüssen verfügbar), scheint mein Traum sich gerade in Luft aufzulösen, sensible Bewegungsdaten in meiner "private Cloud" abzuspeichern. Oder gibt es hierfür doch irgendwelche Lösungen, Workaraounds, ....?

Trotzdem - weiter so!
 

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
Es gibt verschieden Möglichkeiten, Java zu installieren, nicht nur das Paket von patters.
Die übliche vorgehensweise für ein Paket, das Java nutzt, ist zu überprüfen, ob die $JAVA_HOME Umgebungsvariable definiert ist. Die java binary ist dann unter '$JAVA_HOME/bin/java' zu finden.

Liebe Grüße,
winxi

$JAVA_HOME setze ich selber in der wrapper.conf. Kann ich das weglassen?

Ich habe die Zeile mal auskommentiert und es scheint zu funktionieren.

Wie kann ich das Install script ändern, um abzufragen ob Java installiert ist?



@wrasen_seg

in der Tat kann traccar im Moment nur auf Volume1 installiert und gestartet werden.
Das dein TR102-2 kein DNS kann ist wirklich schade. Keine Ahnung was man da machen kann.
 
Zuletzt bearbeitet:

winxi

Benutzer
Mitglied seit
10. Dez 2011
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
$JAVA_HOME setze ich selber in der wrapper.conf. Kann ich das weglassen?

Ich habe die Zeile mal auskommentiert und es scheint zu funktionieren.

Wie kann ich das Install script ändern, um abzufragen ob Java installiert ist?

Eine saubere Java installation sollte $JAVA_HOME in /etc/profile setzen, das Paket von patters macht das z.B. so und auch der neue offizielle Java Manager von Synology.

In deinem Installationsscript könntest du das dann etwa so abfragen:

Rich (BBCode):
if [ -z "$JAVA_HOME" ]; then
   # $JAVA_HOME is not defined, Java seems not to be installed
   exit 1
fi

if [ ! -f "$JAVA_HOME/bin/java" ]; then
   # $JAVA_HOME is wrongly defined, Java seems not to be installed
   exit 1
fi

# Java is installed, the java binary is located at $JAVA_HOME/bin/java
 

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
Das Script sieht original so aus:

Rich (BBCode):
#!/bin/sh
if [ -f "/opt/etc/ipkg/cross-feed.conf" -a -f "/opt/bin/ipkg" ] ; then
		if [ -f "/volume1/@appstore/java7/jre/bin/java" ] ; then
				if [ -f "/opt/bin/gettext" ] ; then
					if [ -f "/opt/bin/tr" ] ; then
						exit 0
					else
						if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
							cat `dirname $0`/coreutils_de.txt > $SYNOPKG_TEMP_LOGFILE
						else
							cat `dirname $0`/coreutils_en.txt > $SYNOPKG_TEMP_LOGFILE
						fi
						exit 1
					fi
				else
					if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
						cat `dirname $0`/gettext_de.txt > $SYNOPKG_TEMP_LOGFILE
					else
						cat `dirname $0`/gettext_en.txt > $SYNOPKG_TEMP_LOGFILE
					fi
					exit 1
				fi
		else
		if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
			cat `dirname $0`/java_de.txt > $SYNOPKG_TEMP_LOGFILE
		else
			cat `dirname $0`/java_en.txt > $SYNOPKG_TEMP_LOGFILE
		fi
		exit 1
	fi

else
	if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
		cat `dirname $0`/ipkg_de.txt > $SYNOPKG_TEMP_LOGFILE
	else
		cat `dirname $0`/ipkg_en.txt > $SYNOPKG_TEMP_LOGFILE
	fi
	exit 1
fi

Mit Deinen eingearbeiteten Änderungen kann ich die Installationsroutine nicht abschliessen und es kommt eine Fehlermeldung.

Irgendeine Idee?

Das geänderte Script:
Rich (BBCode):
#!/bin/sh
if [ -f "/opt/etc/ipkg/cross-feed.conf" -a -f "/opt/bin/ipkg" ] ; then
		[ if -z "$JAVA_HOME" ]; then
			# $JAVA_HOME is not defined, Java seems not to be installed
				if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
					cat `dirname $0`/java_de.txt > $SYNOPKG_TEMP_LOGFILE
				else
					cat `dirname $0`/java_en.txt > $SYNOPKG_TEMP_LOGFILE
				fi

			exit 1
		fi

		[ if ! -f "$JAVA_HOME/bin/java" ]; then
			# $JAVA_HOME is wrongly defined, Java seems not to be installed
				if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
					cat `dirname $0`/java2_de.txt > $SYNOPKG_TEMP_LOGFILE
				else
					cat `dirname $0`/java2_en.txt > $SYNOPKG_TEMP_LOGFILE
				fi
			exit 1
		fi

		# Java is installed, the java binary is located at $JAVA_HOME/bin/java

		if [ -f "/opt/bin/gettext" ] ; then
					if [ -f "/opt/bin/tr" ] ; then
						exit 0
					else
						if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
							cat `dirname $0`/coreutils_de.txt > $SYNOPKG_TEMP_LOGFILE
						else
							cat `dirname $0`/coreutils_en.txt > $SYNOPKG_TEMP_LOGFILE
						fi
						exit 1
					fi
				else
					if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
						cat `dirname $0`/gettext_de.txt > $SYNOPKG_TEMP_LOGFILE
					else
						cat `dirname $0`/gettext_en.txt > $SYNOPKG_TEMP_LOGFILE
					fi
					exit 1
				fi
fi
else
	if [ "$SYNOPKG_DSM_LANGUAGE" = "ger" ] ; then
		cat `dirname $0`/ipkg_de.txt > $SYNOPKG_TEMP_LOGFILE
	else
		cat `dirname $0`/ipkg_en.txt > $SYNOPKG_TEMP_LOGFILE
	fi
	exit 1
fi
 

winxi

Benutzer
Mitglied seit
10. Dez 2011
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Das Script sieht original so aus:
Mit Deinen eingearbeiteten Änderungen kann ich die Installationsroutine nicht abschliessen und es kommt eine Fehlermeldung.

Irgendeine Idee?

Hallo, ich habe mich in meiner ursprünglichen Antwort vertippt und das nachträglich editiert, scheinbar warst du etwas zu schnell :). Bei den if-Abfragen sollte es statt z.B.
Rich (BBCode):
[ if -z "$JAVA_HOME" ]
Rich (BBCode):
if [ -z "$JAVA_HOME" ]
heißen.
Ich denke es wäre der Übersichtlichkeit halber besser, die Abfragen für die erforderlichen Pakete in deinem Installationsscript der Reihe nach auszuführen, anstatt alles zu verschachteln.

Liebe Grüße,
winxi
 

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
Ok, das hat so funkioniert :)


Installation geht wieder durch, jetzt kann der wrapper doch kein Java finden:

wrapper.log
Rich (BBCode):
ADVICE | wrapper  | 2013/07/04 11:47:51 | ------------------------------------------------------------------------
ADVICE | wrapper  | 2013/07/04 11:47:51 | Advice:
ADVICE | wrapper  | 2013/07/04 11:47:51 | Usually when the Wrapper fails to start the JVM process, it is because
ADVICE | wrapper  | 2013/07/04 11:47:51 | of a problem with the value of the configured Java command.  Currently:
ADVICE | wrapper  | 2013/07/04 11:47:51 | wrapper.java.command=$JAVA_HOME/bin/java
ADVICE | wrapper  | 2013/07/04 11:47:51 | Please make sure that the PATH or any other referenced environment
ADVICE | wrapper  | 2013/07/04 11:47:51 | variables are correctly defined for the current environment.
ADVICE | wrapper  | 2013/07/04 11:47:51 | ------------------------------------------------------------------------

wrapper.conf
Rich (BBCode):
#********************************************************************
# Wrapper Java Properties
#********************************************************************
# Java Application
#  Locate the java binary on the system PATH:
# wrapper.java.command=java
#  Specify a specific java binary:
# set.JAVA_HOME=/volume1/@appstore/java7/jre <- der alte feste Eintrag
set.JAVA_HOME=$JAVA_HOME  <- der neue Eintrag, führt zum o.g. Fehler
wrapper.java.command=%JAVA_HOME%/bin/java

Wie kann ich das jetzt ohne festen Eintrag lösen?
 

winxi

Benutzer
Mitglied seit
10. Dez 2011
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Ok, das hat so funkioniert :)


Installation geht wieder durch, jetzt kann der wrapper doch kein Java finden:

wrapper.log
Rich (BBCode):
ADVICE | wrapper  | 2013/07/04 11:47:51 | ------------------------------------------------------------------------
ADVICE | wrapper  | 2013/07/04 11:47:51 | Advice:
ADVICE | wrapper  | 2013/07/04 11:47:51 | Usually when the Wrapper fails to start the JVM process, it is because
ADVICE | wrapper  | 2013/07/04 11:47:51 | of a problem with the value of the configured Java command.  Currently:
ADVICE | wrapper  | 2013/07/04 11:47:51 | wrapper.java.command=$JAVA_HOME/bin/java
ADVICE | wrapper  | 2013/07/04 11:47:51 | Please make sure that the PATH or any other referenced environment
ADVICE | wrapper  | 2013/07/04 11:47:51 | variables are correctly defined for the current environment.
ADVICE | wrapper  | 2013/07/04 11:47:51 | ------------------------------------------------------------------------

wrapper.conf
Rich (BBCode):
#********************************************************************
# Wrapper Java Properties
#********************************************************************
# Java Application
#  Locate the java binary on the system PATH:
# wrapper.java.command=java
#  Specify a specific java binary:
# set.JAVA_HOME=/volume1/@appstore/java7/jre <- der alte feste Eintrag
set.JAVA_HOME=$JAVA_HOME  <- der neue Eintrag, führt zum o.g. Fehler
wrapper.java.command=%JAVA_HOME%/bin/java

Wie kann ich das jetzt ohne festen Eintrag lösen?

Ich weiß nicht Bescheid über diesen wrapper. Evtl. ist der wrapper intelligent genug und es genügt, set.JAVA_HOME ganz auszulassen. Ansonsten wäre eine Möglichkeit, den set.JAVA_HOME Eintrag in wrapper.conf im postinst Script des Pakets richtig zu setzen.
 

1sthandy

Benutzer
Mitglied seit
27. Feb 2011
Beiträge
245
Punkte für Reaktionen
0
Punkte
16
egal was ich an Einstellungen probiere, sobald ich den Pfad nicht angebe, findet er kein Java.

Warum wird das Java nicht immer an der gleichen Stelle installiert?

Ich ginge davon aus, dass es einen gewissen Standard gibt
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
solange der bin/ Pfad von Java in PATH ist sollte das Binary eigentlich gefunden werden. Wenn du
Code:
echo $PATH
machst solltest du den aktuellen PATH sehen können. Du kannst das bin/ Verzeichnis von Java auch mittels Symlink in den PATH einbinden. Oder du erweiterst PATH so, dass das Java bin Verzeichnis auch dort drin ist z.B.
Code:
export PATH=$PATH:/pfad/zum/java/bin
 

winxi

Benutzer
Mitglied seit
10. Dez 2011
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
egal was ich an Einstellungen probiere, sobald ich den Pfad nicht angebe, findet er kein Java.

Okay, dann musst du wie ich oben schon geschrieben habe, die Zeile
Rich (BBCode):
set.JAVA_HOME=xxx
mit dem postinst script manuell in die Datei wrapper.conf einfügen, wobei xxx das Verzeichnis der Java-Installation ist. Sonst können das Paket nur jene benutzen, die genau das Java 7 Paket von patters auf volume1 installiert haben. Du schließt damit aber unnötigerweise alle mit x86 Geräten aus, da die derzeit nur Java 6 verwenden können.

Warum wird das Java nicht immer an der gleichen Stelle installiert?

Verschiedene Java Versionen, verschiedene Betriebssysteme, etc. Genau aus dem Grund hat sich der Quasistandard mit der $JAVA_HOME Umgebungsvariable in Unix Systemen etabliert.

Ich ginge davon aus, dass es einen gewissen Standard gibt
Das ist leider falsch.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat