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.