NEWS
Mit Traccar eine geofence Alternative für Iphone und Android
-
An dieser Stelle würde ich Euch gern unser Projekt Traccar2Iobroker vorstellen. Infos zu Traccar:
http://traccar.org/
Gordon und ich haben mal begonnen zu versuchen eine Verbindung von Traccar zu Iobroker zu „basteln“. Gordon (Headhunter70) hatte am 22.8.2019 einen Adapter angefragt:
https://github.com/ioBroker/AdapterRequests/issues/243
und das Projekt „Einen Adapter bauen ist nicht schwer“
https://forum.iobroker.net/topic/32265/das-project-einen-adapter-bauen-ist-nicht-schwer
verzögert sich wohl noch. So haben wir uns mal mit Blockly dran versucht mit dem Ziel etwas „Adapter ähnliches“ zu bauen:
Zuallererst: Vielen Dank an paul53, Issi, Dutchman und alle anderen, die uns beim Stocken geduldig weiter geholfen haben. Ohne diese Hilfe hätten wir nichts geschafft! Danke auch an Raik, Ben und alle anderen, die getestet haben.
Was kann es und was macht es:
Traccar2Iobroker versteht sich als eine Geofence/IFTTT/Tado usw. Alternative und kann unter anderem zur Anwesenheitserkennung genutzt werden. Anders als die Geofence App, die es nur für IOS gibt, ist für Traccar eine App für IOS und Android (auch als Hidden Version) verfügbar. Erwähnenswert ist wohl auch, dass es keinerlei Beschränkungen gibt bei der Anzahl der ein zurichteten Geo-Zäune, sowie der Anzahl der Geräte/User gibt. Zum Traccen eignen sich sowohl Handys, wie auch (fast jeder) GPS-Traccer. So kann alles getracct werden, egal ob Mensch, Tier, oder Fahrzeuge aller Art. Für jeden Benutzer/Tracker werden in Iobroker folgende DP angelegt und aktualisiert:
Zusätzlich gibt es noch 2 (Bonus-) Verzeichnisse für extra DP für Anwesenheit Zuhause und auf der Arbeit:
Um z.B. Live Work Balance zu visualisieren
Das ganze läuft ohne Cloud, self Hosted und als Open Source kostenfrei.Das Betreten und Verlassen der in Traccar eingerichteten Geofences, sowie deren Namen werden in Iobroker übernommen und auf Wunsch per Telegram gemeldet. Auch kann per Telegram die Standortdaten von jedem Gerät als Google Maps link angefordert werden.
In wenigen Schritten zur Installation:
-
Traccar Server installieren laut Anleitung von:
https://www.traccar.org/download/
Hier mal In Stichworten eine der vielen Möglichkeiten zur Installation zu kommen:
Download von traccar.run, Erstellen eines unprivilegierten LXC Containers mit 1 Core, 2GB RAM, 5GB HDD und Ubuntu 18.04 Template. Verzeichnis kreieren und dort traccar.run rein kopieren, ausführbar machen, installieren (sudo ./traccar.run) und starten (sudo systemctl start traccar). Traccar ist dann unter seiner IP und Port 8082 aufrufbar(admin/admin). AmBesten gleich einen neuen User mit Adminrechten anlegen, im folgendem als Beispiel Benutzer iobroker mit dem Passwort iobroker
Voraussetzung für die Funktion sind die korrekten Zeiteinstellungen: UTC im Traccar Server, sowie MEZ (=UTC+1), bzw. MESZ (Sommerzeit, CEST =UTC+2) in Iobroker, am besten über NTP. -
Portfreigabe für den Port 5055 incl. Weiterleitung in den LXC Containers im Router einrichten, hier am Beispiel einer fritzbox:
In der Fritzbox Portfreigabe einrichten für Port 5055
Internet, Freigaben, Gerät für Freigabe hinzufügen, Gerät (traccar) auswählen,
Neue Freigabe, Port Freigabe auswählen, Http Server, Port 5055
Myfritz, oder anderer Dyn-DNS Dienst muss eingerichtet sein.
-
Handy App installieren und einrichten:
Bei IOS Geräten unter Einstellungen, Datenschutz die Nutzung von Standortdaten für Traccar erlauben „Immer“. Bei Andoid Geräten ist dies auch einzustellen, außerdem sind Einstellungen vorzunehmen in den Akku-Optimierungen. („Energiesparmodus” „Alle Apps“ aus. Traccar „Nicht optimieren“.) -
Gerät in Traccar mit den gleichen Einstellungen wie im Handy einrichten:
-
In Traccar Geofences erstellen und für die einzelnen Geräte aktivieren:
(Werden keine Fences angezeigt, oben aufs Männchen mit dem Kreis klicken)
-
GeoFences für die einzelnen Geräte aktivieren:
Geräte, Einstellungen, Geo Zäune, anhaken
-
Blockly_States_erzeugen.txt importieren, Ganz oben den Namen/Fahrzeug eintragen, und dem die DP erzeugt werden sollen. Blockly speichern und starten und nach kurzer Zeit wieder stoppen. Sollen für mehrere Namen DP erzeugt werden, einfach wiederholen. Da die Erzeugung der States nur einmal benötigt wird, kann das Blockly nach dem Erstellen ausgeschaltet bleiben. Ein nachträgliches Erzeugen überschreibt keine Einstellungen.
Traccar2Iobroker_Blockly_States_erzeugen.txt -
Unter 0_userdata.0.traccar.System_Konfiguration gibt es DP die eingestellt werden müssen: IP_Adresse:Port des Traccar Servers, Benutzer:Passwort des angelegten Benutzers in Traccar, sowie die Sommerzeit auf true setzten, falls gerade Sommerzeit ist. Diese Einstellung braucht man nur einmal vornehmen, regelt sich später selber. Die unter System_Konfiguration gemachten Einstellungen gelten für alle Benutzer
Traccar2Iobroker Blockly Import Benutzer.txt -
Blockly_Benutzer.txt unter dem Blockly Namen des Benutzers (z.B. Traccar Peter) importieren. Ganz oben im Blockly den Namen eintragen, speichern und starten. Der Name sollte identisch sein, wie in Traccar eingegeben. Dies für jeden Benutzer wiederholen. Nun kann man unter 0_userdata.0.traccar.Name.Konfiguration Einstellungen vornehmen: Die hier gemachten Einstellungen betreffen nur den jeweiligen Benutzers. Das Blockly sollte die richtige Device_ID Nummer vom Traccar ausgelesen und eingetragen haben.
GPS Aktualisierungs Frequenz ist die im Handy eingestellte Aktualisierungszeit. Da es durch die Laufzeit zu Verzögerungen kommen kann, sollte diese Zeit solange angehoben werden, bis keine Fehler im LOG mehr auftreten. Dieser Aufschlag ist Anhängig vom Handy Modell und Mobilfunk Provider. Typische Werte sind 70 (Iphone) – 100 (manche Android Handys mit O2). GeoFence_Info_bekommen =true Beim Eintritt/Verlassen wird Telegram verschickt, bei =false nicht. Beim DP GeoFence_Info_Empaenger kann festgelegt werden, wer diese Meldungen bekommt. Leer=alle sonst Name eintragen, mehrere Namen mit Komma trennen (Peter,Paul,Mary). Genauso kann bei Info_Abruf_Empfänger eingetragen werden, wer bei Abruf die Meldung bekommen soll. Abgerufen wird die Info, wenn der DP Info_Abruf_Ausloesen aktualisiert wird (z.B. über Text2Command) Es kann vorteilhaft sein, sich kreuzweise einzutragen: In den DP von Mary wird Peter als Empfänger eingetragen, bei Peter wird Mary eingetragen, so bekommt Peter den Standort von Mary angezeigt und Mary kann den Standort von Peter abfragen. IN ID_Arbeit und ID_Zuhause kann man sich die jeweiligen Id´s eintragen und es werden zusätzliche States entry (true bei Anwesenheit, false bei Abwesenheit) sowie letzte Zeit des Betretens/Verlassens.
Nun sollten sich die Datenpunkte in Iobroker automatisch aktualisieren.
Viel Spaß beim Ausprobieren.
-
-
Sehr interessant ! Ich freue mich bereits auf die weitere Umsetzung nachdem wir uns ein par stunden hiermit auseinander gesetzt haben
https://forum.iobroker.net/topic/32265/das-project-einen-adapter-bauen-ist-nicht-schwer/109
Vielleicht ein Kandidat um zu entwickeln in der video reihe ?
-
Kleiner Nachtrag:
Zum Testen habe ich bei Ebay Kleinanzeigen für 15€ incl Porto einen Incutex TK104 GPS Tracker gekauft und berichte mal von der Einrichtung:
Zum Betrieb habe ich mich für eine 6Cent/MB Prepaid Karte von Discotel entschieden, die ich online bestellt und nach Postidenverfahren am Sonntag per Handy im Service Bereich nach Erhalt der SIM Karte nach ein paar Tagen von Discotel aktivieren konnte. Die PIN Aktivierung habe ich, als Voraussetzung für den Einsatz im Tracker, in einem alten Handy ausgeschaltet. Einige Einstellungen konnte ich per Anstecken des Traccers per USB am PC vornehmen:
(Nachfolgend 123456 gegen das eingestellte Password ersetzen)
Dass die Einstellungen übernommen wurden erkennt man daran, dass aus OldPassword 123456 ****** geworden ist. Den Rest der Einstellungen habe ich per SMS gemacht: imei123456 als Antwort bekommt man die Imei Nummer, die man beim Erstellen des Geräts in Traccar einträgt. Einstellen dass alle 60 Sekunden gesendet wird: fix60s***n123456 APN für Discotel einstellen:
„apn123456 internet“ APN OK GPRS einstellen: „gprs123456“ GPRS OK
Nun in der Fritzbox Portfreigabe für Port 5001 hinzufügen und unter Internet Online die externe IP notieren und daraus SMS kreieren: adminip123456 93.192.43.198 5001 und zum Tracker schicken.
Zum endgültigen Einrichten: In Traccar neues Gerät hinzufügen, wie oben beschrieben DP erzeugen, Blockly für das Gerät importieren. Fertig. Leider akzeptiert der Tracker keine Dyn DNS Adresse alla myFritz. Deswegen habe ich mit ein kleines Blocky geschrieben, welches mir den passenden Link kreieret, den ich per SMS zum Traccer schicken muss, falls sich die IP der Fritzbox alle paar Wochen mal ändert.
Die Kosten für dieses Projekt schätze ich mal auf ca. 12 Cent/Monat lässt sich eventuell noch drücken, wenn man einstellt, dass bei fehlender (5 Min.) Bewegung nichts geschickt wird:
less gprs123456 on
Sobald Bewegung registriert wird, werden wieder Daten geschickt. Damit ist jede Katze, Hund, Pferd, Boot, Roller, Auto oder oder.. in Iobroker smart gemacht.
Nachtrag:
Die Kosten des Trackers sind in der Praxis, je nach Einsatz wohl doch höher als 12Cent im Monat, aber mit unter 1€ im Monat noch überschaubar.
GPRS Verbindungsprobleme beheben:
Der GPS Tracker braucht nicht nur eine Verbindung zum Internet, um auf GPRS ON zu gehen, sondern eine durchgehende funktionierende Verbindung zu einem Server, der die Daten der Trackers erfolgreich empfängt. Meist scheitert es an den Port Einstellungen. Der Traccar Server erwartet an seinen einzelnen Ports bestimmte GPS Protokolle, so dass man nicht beliebige Ports verwenden kann. So lässt sich der Port 5055, der erfolgreich für den Handy Empfang (Osmand) eingerichtet ist, nicht für den Tracker (GPS003) benutzen. Das Protokoll GPS003 wird vom Traccar Server an Port 5001 erwartet. Dieser ist manchmal bereits in Benutzung (https von einem Synology NAS z.B.).
Lösung ist eine andere Einstellung an der Portweiterleitung im Router.
Im GPS Tracker und im Router werden im ersten Schritt andere Ports eingestellt, zB. 9000. Damit kommt der Tracker schon auf einen freien Port im Router an und es gibt keinen Konflikt mit der Synology. Im Router muss dieser Port nun auf die IP Adresse des Traccar Server auf den Port 5001 weiter geleitet werden:
-
@J_Paul
Hallo J_Paul,
ich habe auch einen CHina-Tracker. Das mit der DynDNS hat bei mir funktioniert, habe allerdings nicht die FRITZ-DynDNS genommen. Vielleicht gibt mit der Fritz-dynDNS Probleme mit der Buchstaben/Ziffern-Kombination. Mit reinem Text z. B. xxxx.dyndns.org z.B. klappt es einwandfrei: admin123456 xxxx.dyndns.org 5001 -
Hallo,
ich habe heute mal nach deiner Anleitung alles installiert. Traccar läuft und die Telefone/Personen werden angezeigt. Die Datenpunkte wurden erstellt, aber bei den Blocklys der Personen werden Unmengen an Skriptfehlern ausgegeben.
javascript.1 2020-09-16 15:25:10.074 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.073 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.073 warn (25668) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-16 15:25:10.073 warn (25668) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-16 15:25:10.073 warn (25668) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.073 warn (25668) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-16 15:25:10.073 warn (25668) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request.emit (events.js:315:20) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request.emit (events.js:315:20) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-16 15:25:10.073 warn (25668) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-16 15:25:10.073 warn (25668) at script.js.Traccar.Kuhnerin:100:9 javascript.1 2020-09-16 15:25:10.073 warn (25668) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1389:25) javascript.1 2020-09-16 15:25:10.072 warn (25668) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1345:20) javascript.1 2020-09-16 15:25:10.071 warn (25668) You are assigning a object to the state "0_userdata.0.traccar.Kuhnerin.longitude" which expects a number. Please fix your code to use a number or change the state type to object. This warning javascript.1 2020-09-16 15:25:10.071 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.070 warn (25668) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-16 15:25:10.070 warn (25668) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-16 15:25:10.070 warn (25668) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.070 warn (25668) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-16 15:25:10.070 warn (25668) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request.emit (events.js:315:20) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request.emit (events.js:315:20) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-16 15:25:10.070 warn (25668) at script.js.Traccar.Kuhnerin:99:9 javascript.1 2020-09-16 15:25:10.070 warn (25668) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1389:25) javascript.1 2020-09-16 15:25:10.070 warn (25668) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1345:20) javascript.1 2020-09-16 15:25:10.069 warn (25668) You are assigning a object to the state "0_userdata.0.traccar.Kuhnerin.latitude" which expects a number. Please fix your code to use a number or change the state type to object. This warning m javascript.1 2020-09-16 15:25:10.069 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.069 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.067 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.066 warn (25668) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-16 15:25:10.066 warn (25668) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-16 15:25:10.066 warn (25668) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.066 warn (25668) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-16 15:25:10.066 warn (25668) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request.emit (events.js:315:20) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request.emit (events.js:315:20) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-16 15:25:10.066 warn (25668) at script.js.Traccar.Kuhnerin:96:9 javascript.1 2020-09-16 15:25:10.066 warn (25668) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1389:25) javascript.1 2020-09-16 15:25:10.066 warn (25668) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1345:20) javascript.1 2020-09-16 15:25:10.065 warn (25668) You are assigning a object to the state "0_userdata.0.traccar.Kuhnerin.InBewegung" which expects a boolean. Please fix your code to use a boolean or change the state type to object. This warni javascript.1 2020-09-16 15:25:10.065 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.065 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.065 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.064 error (25668) script.js.Traccar.Kuhnerin: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-16 15:25:10.052 info (25668) script.js.Traccar.Kuhnerin: request: http://kuhn-thomas@mail.de:Captain1968@192.168.1.11:8083/api/positions?deviceId=1&from=2020-09-16T13:24:00Z&to=2020-09-16T13:25:10Z
Wo ist da der Fehler, was habe ich vergessen oder falsch gemacht. Angeblich kann er die Koordinaten nicht auslesen oder so ähnlich. Ich hoffe, mir kann geholfen werden.
-
Es sind wohl Fehler in den beiden Blockly-Skripten, und zwar in der Schreibweise der Datenpunkte die angelegt und gesucht werden. Speziell die Umlaute schiessen da wohl quer und vergessene Buchstaben. Dadurch werden wohl Datenpunkte nicht gefunden oder machen Schwierigkeiten. Zumindest sieht es so aus.
-
Hey, bin auch nach Anleitung vorgegangen.
Leider werden aber die Datenpunkte nicht gefüttert.Hier mal der Error-Log beim Start des Blockly. Vielleicht kannst Du mir sagen was falsch ist. Ansonsten hat alles sehr gut geklappt. Tolle Arbeit
javascript.0 2020-09-16 21:35:00.247 error (12921) Error in request callback: TypeError: Cannot read property 'length' of null javascript.0 2020-09-16 21:35:00.246 error (12921) script.js.Meine_Scripte.Traccar_Stefan: Cannot parse "HTTP 401 Unauthorized - WebApp"SyntaxError: Unexpected token H in JSON at position 0 javascript.0 2020-09-16 21:35:00.158 info (12921) script.js.Meine_Scripte.Traccar_Stefan: request: http://ioBroker:ioBroker@192.168.178.86:8082/api/devices/1?all=true javascript.0 2020-09-16 21:34:13.888 info (12921) script.js.Meine_Scripte.Traccar_Stefan: registered 4 subscriptions and 3 schedules javascript.0 2020-09-16 21:34:13.887 info (12921) script.js.Meine_Scripte.Traccar_Stefan: request: http://ioBroker:ioBroker@192.168.178.86:8082/api/devices/?all=true javascript.0 2020-09-16 21:34:13.870 info (12921) Start javascript script.js.Meine_Scripte.Traccar_Stefan
Hier jetzt eine neue Meldung:
javascript.0 2020-09-16 21:53:00.187 error (12921) Error in request callback: TypeError: Cannot read property 'length' of null javascript.0 2020-09-16 21:53:00.187 error (12921) script.js.Meine_Scripte.Traccar_Stefan: Cannot parse "<!DOCTYPE><html><head><title>E"SyntaxError: Unexpected token < in JSON at position 0 javascript.0 2020-09-16 21:53:00.163 info (12921) script.js.Meine_Scripte.Traccar_Stefan: request: http://ioBroker:ioBroker@192.168.178.86:8082/api/devices/1?all=true
-
Hast du auch iobroker als Benutzername und Passwort im Traccar Server eingestellt? Läuft das bei dir auf dem selben Rechner wie iobroker? Ich mußte den Port ändern, da 8082 der Port der VIS ist und bei mir alles auf einem Windows-Server läuft.
-
Ja, nur etwas anders geschrieben.
Nein, der Server läuft separat mit lxc unter Proxmox.
Hab daher den Port 8082 verwenden können.Bei mir läuft das ganze mittlerweile mit meinem Handy (iPhone) ganz gut, nur bei meinem Sohn (Android) klappt das nicht so wirklich mit dem verbinden im Traccar (bleibt Offline). Bin da noch nicht durchgestiegen warum das nicht geht.
Werde heute Abend nach der Arbeit aber mal weiter testen.
-
Auch die Skripte laufen bei dir fehlerfrei?
-
Also bei mir laufen die Benutzerskripte nicht. Bei den Datenpunkten inBewegung und den beiden Koordinatenfeldern würden states types nicht zu den Datenpunktstatetypes passen. Der Datenpunkt inBewegung ist Bolean, das was per Skript dort übergeben werden soll wäre vom Typ Object. Die anderen beiden sind als Nummern definiert, bekommen aber auch ihre Daten als Objects geliefert und da meckert iobroker.
-
@Palm_Maniac
Bin bis zum 27.9. im Urlaub und kann das genauer erst dann prüfen, vorab mal: Fehler im log deuten darauf hin, dass keine Daten zum abholen da sind, aus unterschiedlichen Gründen, z.B. dass die Zeiten nicht stimmen. Das kannst du prüfen, indem du die links, die das Script erzeugt, mal im Browser eingibst und die Ausgabe anguckst. Danke fürs testen und die Geduld, bis ich wieder einsatzbereit bin.
Die blocklys wurden bereits mehrfach erfolgreich installiert, so dass ich fehlende Buchstaben, Probleme mit Umlaute ausschließe. -
Servus, anbei mal mein Blockly was bis jetzt funtioniert. Ihr könnt es ja mal importieren und schauen ob jetzt die Datenpunkte gefüllt werden. Ansonsten kommt doch mal ins TS und wir schauen auf Euer system.
-
Bewährt haben sich folgende Zeiten:
Eintrag in der Traccar Client App 300 Sekunden (5 Minuten) und in der Konfiguration 400 Sekunden. Damit erwischt man meistens exakt einen (den letzten) Positionseintrag und es gibt keine Fehler im log. Diese Probleme gibt es nicht mehr, sobald wir den Adapter haben, weil es dann möglich ist, einfach den letzten Eintrag abzurufen. -
Hi, bei deinem Blockly werden jetzt andere Datenpunkte bemeckert, aber klappen tuts auch nicht.
javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 warn (2864) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-18 16:40:10.074 warn (2864) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-18 16:40:10.074 warn (2864) at script.js.Traccar.Thomas:104:9 javascript.1 2020-09-18 16:40:10.074 warn (2864) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1402:25) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) You are assigning a object to the state "0_userdata.0.traccar.Thomas.longitude" which expects a number. Please fix your code to use a number or change the state type to object. This warning mig javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 warn (2864) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-18 16:40:10.074 warn (2864) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-18 16:40:10.074 warn (2864) at script.js.Traccar.Thomas:103:9 javascript.1 2020-09-18 16:40:10.074 warn (2864) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1402:25) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) You are assigning a object to the state "0_userdata.0.traccar.Thomas.latitude" which expects a number. Please fix your code to use a number or change the state type to object. This warning migh javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 warn (2864) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-18 16:40:10.074 warn (2864) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-18 16:40:10.074 warn (2864) at script.js.Traccar.Thomas:102:9 javascript.1 2020-09-18 16:40:10.074 warn (2864) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1402:25) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) You are assigning a object to the state "0_userdata.0.traccar.Thomas.Kurs" which expects a number. Please fix your code to use a number or change the state type to object. This warning might be javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 warn (2864) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-18 16:40:10.074 warn (2864) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-18 16:40:10.074 warn (2864) at script.js.Traccar.Thomas:100:9 javascript.1 2020-09-18 16:40:10.074 warn (2864) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1402:25) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) You are assigning a object to the state "0_userdata.0.traccar.Thomas.InBewegung" which expects a boolean. Please fix your code to use a boolean or change the state type to object. This warning javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 warn (2864) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-18 16:40:10.074 warn (2864) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-18 16:40:10.074 warn (2864) at script.js.Traccar.Thomas:99:9 javascript.1 2020-09-18 16:40:10.074 warn (2864) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1402:25) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) You are assigning a object to the state "0_userdata.0.traccar.Thomas.Entfernung" which expects a number. Please fix your code to use a number or change the state type to object. This warning mi javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 warn (2864) at processTicksAndRejections (internal/process/task_queues.js:84:21) javascript.1 2020-09-18 16:40:10.074 warn (2864) at endReadableNT (_stream_readable.js:1220:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.emit (events.js:327:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.onceWrapper (events.js:421:28) javascript.1 2020-09-18 16:40:10.074 warn (2864) at IncomingMessage.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1076:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.<anonymous> (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:1154:10) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.EventEmitter.emit (domain.js:483:12) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.emit (events.js:315:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request.self.callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\node_modules\request\request.js:185:22) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Request._callback (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\request.js:27:17) javascript.1 2020-09-18 16:40:10.074 warn (2864) at script.js.Traccar.Thomas:98:9 javascript.1 2020-09-18 16:40:10.074 warn (2864) at setStateDelayed (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1402:25) javascript.1 2020-09-18 16:40:10.074 warn (2864) at Object.setState (D:\iobroker\KuhnHome\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) javascript.1 2020-09-18 16:40:10.074 warn (2864) You are assigning a object to the state "0_userdata.0.traccar.Thomas.BatterieLevel" which expects a number. Please fix your code to use a number or change the state type to object. This warning javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.074 error (2864) script.js.Traccar.Thomas: Cannot parse "accuracy;address;altitude;cour"SyntaxError: Unexpected token a in JSON at position 0 javascript.1 2020-09-18 16:40:10.058 info (2864) script.js.Traccar.Thomas: request: http://iobroker:iobroker@192.168.1.11:8083/api/positions?deviceId=1&from=2020-09-18T15:39:00Z&to=2020-09-18T15:40:10Z javascript.1 2020-09-18 16:40:00.013 info (2864) script.js.Traccar.Thomas: request: http://iobroker:iobroker@192.168.1.11:8083/api/devices/1?all=true
Auf welchem TS bist du Zuhause? Ich könnte auch meinen anbieten: dhdh.eu
-
@Palm_Maniac
Laut deinem log rufst du einen Zeitraum von 70 Sekunden ab und offensichtlich steht da nichts. Entweder du gehst in der Client App auf unter 60 Sekunden, oder in der Konfiguration hoch. Siehe oben -
Ich hab in der App jetzt mal auf 300 hochgesetzt, so wie beschrieben, trotzdem nix drin.
-
@Palm_Maniac und in der Konfiguration auf 500?
-
@J_Paul sagte in Mit Traccar eine geofence Alternative für Iphone und Android:
@Palm_Maniac und in der Konfiguration auf 500?
Jupp.
-
@Dutchman @Palm_Maniac
Warum manchmal eine CSV Datei kommt und keine Json, werde ich versuchen zu ergründen.
Spätestens im Adapter kann man es mit dem Accept Header bestimmen, dass eine Json kommt.