[Modul] GPS Position auf Google Maps Karte live verfolgen

Ich habe ein neues Update hochgeladen. Dies sollte jetzt mit der 7.0 auf Web (Neu)/App (Alt/Neu)/IPSView/WebFront kompatibel sein.

paresy

1 „Gefällt mir“

Leider läuft es nicht im neuen Webfront im Browser (Edge und Chrome).
Die Karte wird für ca 1/2 sec. geladen, dann kommt die Java-Fehlermeldung.
image

Aber nur im Browser (Kachel) läuft es nicht, in der Smartphone-App (Kachel) läuft es.
Auch im alten Webfront läuft es einwandfrei…

Kannst du mal in der Entwicklerkonsole vom Browser schauen, ob da ggf. mehr Infos zu finden sind?

paresy

Sende dir die Ausgabe der Konsole mal als PN.
Ich kann damit leider nichts anfangen

Google Maps JavaScript API error: RefererNotAllowedMapError

Google Suche sagt: The "RefererNotAllowedMapError" error **suggests that "Application restrictions" is enabled in your Google Maps API key settings with "HTTP referrers (web sites)" option** .

D.h. dein API Key für Google Maps hat irgendwelche Restriktionen drin.

paresy

Das stimmt schon, wenn ich den Eintrag für die Webseite lösche dann funktioniert es.
Nur die Frage ist, warum geht es denn bei allen andern Webfronts (altes Webfront, Kachel-Visualisierung auf dem Handy)?
Es scheint so, als würde die Browser-Version nicht mit demselben Absender anfragen wie das alte Webfront und die Handy-Version.
Gibt es eine Möglichkeit, dies in der Cloud-Konsole zu prüfen, welche Anfragen für den API-Key (und woher) kommen? Ich habe bis jetzt nichts gefunden.

Ich verwende immer noch dieses Script zum umrechnen der GPS-Daten in Dezimalwerte.

Dies funktioniert auch immer noch, ich erhalte aber jedes Mal diese Fehlermeldungen:

Warning: A non-numeric value encountered in C:\ProgramData\Symcon\scripts\44023.ips.php on line 9

Warning: Undefined array key 2 in C:\ProgramData\Symcon\scripts\44023.ips.php on line 9

Line 9 ist diese:

        $dec += $i == 0 ? $npos[$i] : $npos[$i] / pow(60, $i);

Kann mich jemand bei der Fehlersuche unterstützen, ich finde den Fehler nicht…

Dein Array hat vermutlich nur 2 Werte, bei üblicher GPS Darstellung, somit also 0 und 1.
Deine Schleife geht aber bis 2 wegen <3, wenn du dort <2 nimmst, sollte der Fehler weg sein.

Danke für die rasche Antwort.
Stimmt, die eine Fehlermeldung ist weg.

<?

$pos = getvalue(20721); 

function gps_konverter($pos){
    $npos = preg_split('/[\'"°]/Uu', $pos);
    $dec = 0;
    for($i = 0;$i < 2;$i ++){
        $dec += $i == 0 ? $npos[$i] : $npos[$i] / pow(60, $i);
    }
    return $dec;
}

$result = gps_konverter($pos);
SetValue (38562, $result);

Jetzt noch der Fehler mit dem nicht nummerische Wert in Linie 9

Warning: A non-numeric value encountered in C:\ProgramData\Symcon\scripts\44023.ips.php on line 9

Edit:
Ich glaub ich sehe den Grund, und das ist der Wert der Variable unter $pos (7°53.9723 E)
Der Buchstabe E wird das Problem sein…
Wie kann ich diesen Buchstaben entfernen bevor die Funktion kommt?

z.B. mit PHP: str_replace - Manual

paresy

Das wars, danke für euere Unterstützung

<?

$pos = getvalue(20721); 
$arr = array("E" => "","N" => "");
$pos = strtr($pos,$arr);

function gps_konverter($pos){
    $npos = preg_split('/[\'"°]/Uu', $pos);
    $dec = 0;
    for($i = 0;$i < 2;$i ++){
        $dec += $i == 0 ? $npos[$i] : $npos[$i] / pow(60, $i);
    }
    return $dec;
}

$result = gps_konverter($pos);
SetValue (38562, $result);

Hallo zusammen,
ich habe das tolle Modul von paresy in einem Wohnmobil im Einsatz und es funktioniert grundsätzlich sehr zuverlässig. Jetzt habe ich allerdings ein mir nicht erklärbares Verhalten und würde gerne eure Meinung dazu hören.
Folgendes Verhalten:
-Die Karte wird vom Modul erstellt und korrekt im WebFront dargestellt. Alle Funktionen sind korrekt und das Zuhause sowie der Standort des Wohnmobils werden richtig dargestellt.
-die gleiche Karte (selbe Variable) wird auch in IPSView dargestellt und es funktioniert alles korrekt bis auf die Position des Wohnmobils. Die wird einfach nicht dargestellt.
-Gleiches Verhalten auch wenn ich die Karte in einer IPSView innerhalb eines WebFronts öffne.
-in der neuen Visu habe ich es nicht getestet.
-keine API-Einschränkung bei Google

Ich müsste mir das mal ansehen. Da IPSView etwas anders funktioniert und man aber den Rückkanal korrekt „ermitteln“ muss, kann es gut sein, dass dort etwas kaputt gegangen ist.

paresy

Guten Morgen,

ich möchte gerne in der Karte eine tracking Linie erzeugen, so oder so ähnlich wie in der Google Maps Zeitachse. Ist das möglich und wenn ja, wie muss ich da vorgehen?
Gut wäre noch, wenn man einen Zeitraum vorgeben könnte z.B: 00:00 bis 23:59 Uhr und diese danach wieder von vorne beginnt zu zeichnen.

Peter

@paresy @Isi Ich nutze auch die Kombination aus dem PositionTracking Modul und IPSView. Bei mir ist es das gleiche Verhalten. Auch die IPS-View Windows-App zeigt die Markierung nicht an. Wenn ich IPSView aber im Browser öffne , dann wird alles korrekt angezeigt.

In der maps.html unter C:\ProgramData\Symcon\modules.store\de.paresy.positiontracking\PositionTracking wird bei mir eine URL mit einem // zusammengebaut, weswegen mein Browser das Tracker-Overlay nicht laden kann. Die URL sah bei mir dann so aus: ‚http://192.168.x.x:3777//hook/position_tracking/12345‘.
Ich habe zwei Stellen angepasst und ein .replace('/','') angehängt, damit funktioniert bei mir die Anzeige im Webfront im Browser, in IPSView im Browser und in der Android-App. Nur die Windows-App von IPS-View weigert sich nach wie vor, den Overlay anzuzeigen. Mangels Developer-Konsole in der App komme ich hier nicht weiter.
Meine Änderungen in der map.html sind in Zeile 136:
window.socket[id] = new WebSocket(location['protocol'].replace(/^http/, 'ws') + "//" + location['host'].replace('/','') + "/hook/position_tracking/" + id.toString());

und in Zeile 201:
fetch(location['protocol'] + "//" + location['host'].replace('/','') + "/hook/position_tracking/" + id.toString())

Vielleicht hilft es ja jemandem oder @paresy bei der Fehlersuche…

Nachdem ich das selber nicht hinbekommen habe, habe ich mal die KI gebeten das zu machen und zack, schon funktionierts.
Ich bin beeindruckt. :+1:

MfG
Peter

Habe hier was gefunden

Da gibt es kostenlos eine API die über 2000 Tracker
auslesen und die Tracker/GPS daten ausgeben kann

Hallo,
unter neuester Beta V8 wird die Karte nicht mehr angezeigt.
Ein Modulupdate auf V1.2 (Beta) brachte auch nicht das gewünschte Ergebnis.
HTML-Box bleibt einfach leer, auf iOS-Gerät wird die Map noch angezeigt.
Andere HTML-Boxen funktionieren - ist der Bug schon bekannt?

@paresy
kannst du dieses Verhalten nachstellen, das die Map unter 8.0 Testing nicht mehr dargestellt wird?