Modul: 98_livetracking - Geokoordinaten von OwnTracks / Life360 / Swarm (4Sq)

Begonnen von Markus M., 22 Mai 2015, 02:01:46

Vorheriges Thema - Nächstes Thema

stromer-12

Zitat von: AbeamStart am 07 November 2018, 08:39:45
kaqnnst Du hier ein Beispiel geben?
Ich habe mir zusätzlich noch das PHP Script aus dem GIT auf meinen Server abgelegt und angepasst. Damit werden nur noch von OSM die Tiles geladen und auf dem Server abgelegt. So das bei mehrmaliger Abfrage nur noch mein Server Daten liefert und OSM nicht mehr behelligt wird. Ich wurde bei meinen Versuchen von staticmap.openstreetmap.de kurzzeitig geblockt. Natürlich steht jetzt als Server mein eigener drin.

htmlCode { my $a=ReadingsVal( <mytrackdevice>, "location", "47,11" ); sprintf( '<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=18&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a }

Die Url lasse ich mir bei mehreren Markern wegen Mittelpunkt der Karte und Zoomfaktor berechnen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

AbeamStart

Zitat von: stromer-12 am 07 November 2018, 20:45:34
Ich habe mir zusätzlich noch das PHP Script aus dem GIT auf meinen Server abgelegt und angepasst. Damit werden nur noch von OSM die Tiles geladen und auf dem Server abgelegt. So das bei mehrmaliger Abfrage nur noch mein Server Daten liefert und OSM nicht mehr behelligt wird. Ich wurde bei meinen Versuchen von staticmap.openstreetmap.de kurzzeitig geblockt. Natürlich steht jetzt als Server mein eigener drin.

htmlCode { my $a=ReadingsVal( <mytrackdevice>, "location", "47,11" ); sprintf( '<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=18&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a }

Die Url lasse ich mir bei mehreren Markern wegen Mittelpunkt der Karte und Zoomfaktor berechnen.
Schade davon habe ich keine Ahnung... [emoji1]

Gesendet von meinem SM-G965F mit Tapatalk

FHEM auf Debian (VM)

stromer-12

Zitat von: AbeamStart am 07 November 2018, 21:06:15
Schade davon habe ich keine Ahnung... (https://emoji.tapatalk-cdn.com/emoji1.png)

Gesendet von meinem SM-G965F mit Tapatalk
Bei dem Beispielcode musst du nur den Geomapdevicenamen und den Trackdevicenamen  anpassen.

defmod <geomapdevice> weblink htmlCode { my $a=ReadingsVal( <trackdevice>, "location", "47,11" ); sprintf( '<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=16&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a ) }

und es sollte eine Grafik rauskommen
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

AbeamStart

Unknown command sprintf(, try help.

defmod tracklive_map weblink htmlCode { my $a=ReadingsVal( abetracking, "location", "47,11" ); sprintf( '<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=16&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a }
FHEM auf Debian (VM)

stromer-12

FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

AbeamStart

Sorry:

Bareword "abetracking" not allowed while "strict subs" in use at (eval 1520) line 1.

htmlCode {my $a=ReadingsVal(abetracking, "location", "47,11" ); sprintf('<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=16&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a )}
FHEM auf Debian (VM)

AbeamStart

Da ich noch einen google API Key habe habe ich es jetzt so gelöst.
Vielen Dank für die Hilfe!


define live_map weblink htmlCode {'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\
<html xmlns="http://www.w3.org/1999/xhtml">\
<head>\
<title>Kartenansicht</title>\
<meta http-equiv="content-type" content="text/html;; charset=UTF-8">\
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">\
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=X1X2X3X4X5X6X7"></script>\
<script type="text/javascript">\
function LoadGmaps() {\
var myLatlng = new google.maps.LatLng('.ReadingsVal('trackingdevice1','location','').');;\
var myLatlng1 = new google.maps.LatLng('.ReadingsVal('trackingdevice2','location','').');;\
var myOptions = {\
zoom: 10,\
center: myLatlng,\
disableDefaultUI: true,\
panControl: true,\
zoomControl: true,\
zoomControlOptions: {\
style: google.maps.ZoomControlStyle.SMALL\
},\
\
mapTypeControl: true,\
streetViewControl: true,\
mapTypeId: google.maps.MapTypeId.ROADMAP\
}\
var map = new google.maps.Map(document.getElementById("MyGmaps"), myOptions);;\
var marker = new google.maps.Marker({\
position: myLatlng,\
map: map,\
title:"Name1 '.ReadingsTimestamp('tracking1','location','').'"\
});;\
var marker = new google.maps.Marker({\
position: myLatlng1,\
map: map,\
title:"Name2 '.ReadingsTimestamp('tracking2','location','').'"\
});; \
}\
</script>\
</head>\
<body onload="LoadGmaps()" onunload="GUnload()">\
<!-- Maps DIV : you can move the code below to where you want the maps to be displayed -->\
<div id="MyGmaps" style="width:800px;;height:800px;;border:1px solid #CECECE;;"></div>\
<!-- End of Maps DIV -->\
</body>\
</html>'}


Bin zwar nicht so ein Google-Freund aber es funktioniert.

Hat jemand Lust mit mir noch an einer historischen Map zu arbeiten? Z.B. Anzeige der Orte der letzten 24 Stunden.
FHEM auf Debian (VM)

Markus M.

Zitat von: Wolle02 am 06 November 2018, 22:33:16
Im Livetracking Device regt sich in beiden Fällen nichts.
Ich hab das Gefühl der Traccar Client mag irgendwas nicht so recht!?

Probier doch mal einen kompletten Request mit Daten, siehe hier
https://www.traccar.org/osmand/

Ich vermute du hast ein Verbindungsproblem. Android oder iOS? Ich konnte nur iOS testen, funktioniert bei mir problemlos.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

stromer-12

Zitat von: AbeamStart am 07 November 2018, 21:50:37
Sorry:

Bareword "abetracking" not allowed while "strict subs" in use at (eval 1520) line 1.

htmlCode {my $a=ReadingsVal(abetracking, "location", "47,11" ); sprintf('<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=16&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a )}


Dein abetracking muss in Hochkommas gesetzt werden
ReadingsVal("abetracking", "location", "47,11" )
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

AbeamStart

Zitat von: stromer-12 am 07 November 2018, 22:02:31

Dein abetracking muss in Hochkommas gesetzt werden
ReadingsVal("abetracking", "location", "47,11" )

So funktionierts:

htmlCode {my $a=ReadingsVal("abetracking", "location", "47,11" ); sprintf('<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=16&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a )}
FHEM auf Debian (VM)

AbeamStart

Zitat von: AbeamStart am 07 November 2018, 22:15:41
So funktionierts:

htmlCode {my $a=ReadingsVal("abetracking", "location", "47,11" ); sprintf('<img src="http://staticmap.openstreetmap.de/staticmap.php?center=%s&zoom=16&size=500x500&markers=%s,ol-marker&maptype=mapnik">', $a, $a )}


Wie würde das aussehen für 2 oder 3 Marker?
FHEM auf Debian (VM)

stromer-12

Zitat von: AbeamStart am 07 November 2018, 22:18:11
Wie würde das aussehen für 2 oder 3 Marker?

Da wird es schon schwieriger weil man das Zentrum der Karte und den Zoom definieren muss.Das habe ich bei mir anders gelöst, bin aber noch am anpassen.
Dazu habe ich mir Geo::OSM::StaticMap installiert und noch geringfügig angepasst, weil der Zoom nicht so war wie ich wollte.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

stromer-12

mit Geo::OSM::StaticMap sieht dann die Definition zB. so aus:
htmlCode {
use Geo::OSM::StaticMap;
my @a=split(/,/,ReadingsVal("track_<device1>","location","47,11"));
my @b=split(/,/,ReadingsVal("track_<device2>","location","47,11"));
my @c=split(/,/,ReadingsVal("track_<device3>","location","47,11"));
sprintf('<img src="%s">',
  Geo::OSM::StaticMap->new(
    size=>[500,500],
    markers=>[
      [$a[0],$a[1],'ol-marker'      ],
      [$b[0],$b[1],'ol-marker-gold' ],
      [$c[0],$c[1],'ol-marker-green'],
    ],
  )->url());}
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

AbeamStart

Zitat von: stromer-12 am 07 November 2018, 22:32:11
Da wird es schon schwieriger weil man das Zentrum der Karte und den Zoom definieren muss.Das habe ich bei mir anders gelöst, bin aber noch am anpassen.
Dazu habe ich mir Geo::OSM::StaticMap installiert und noch geringfügig angepasst, weil der Zoom nicht so war wie ich wollte.
Geht ja auch mit 2 oder mehr Maps für jedes einzelne Trackdevice. Hast Du eine Idee für die Historie? Hier gibt es ein Beispiel, das greift aber auf DBLog zu....

Gesendet von meinem SM-G965F mit Tapatalk

FHEM auf Debian (VM)

stromer-12

Zitat von: AbeamStart am 07 November 2018, 22:36:28
Geht ja auch mit 2 oder mehr Maps für jedes einzelne Trackdevice. Hast Du eine Idee für die Historie? Hier gibt es ein Beispiel, das greift aber auf DBLog zu....

Gesendet von meinem SM-G965F mit Tapatalk
Ich habe für jedes Device eine Einzelmap und dann noch zusammengefasste.
Historie wollte ich auch mal noch in Angriff nehmen. bei mir liegen die Daten ja in einer SQL Datenbank.Ohne Maps nur so hatte ich mir da mal was mit logproxy gebaut.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL