sandreas schrieb:
Das mit den NFCs erscheint mir aber auch nicht "stabiler" als das mit den QR-Codes... zumindest ist mir kein NFC bekannt, den man nicht auch einfach abreißen oder kaputthauen könnte.
Naja die NFC´s sind erstmal von der Konsistenz her wetterbeständig. Zumindest eine Zeitlang. Geht einer kaputt, beschreibe ich einen neuen mit den gleichen Daten und lasse ihn einfach Aufkleben. Ein QR Code müsste ich ja dann für jeden einzelnen Container als Aufkleber drucken lassen. Geht da einer kaputt, muss ich den selben Aufkleber wieder drucken lassen.
Mir kam das auch nur so mal in den Sinn. Es gibt ja auch fertige Lösungen zu kaufen. Wir nutzen schon Yellowfox für die LKW´s, das ist eben auch um Containerverfolgung und Führerscheinkontrolle erweiterbar. Bei der Führerscheinkontrolle setzt Yellowfox ebenfalls auf NFC. Da dachte ich mir, ich versuche es einfach mal.
Ich bin auf dem Gebiet kein Profi aber bastle gerne an sowas rum. Ich habe deinen Vorschlag mit der Webseite aufgegriffen und das scheint auch zu funktionieren.
Ich habe eine Subdomain angelegt. Auf dem NFC Tag steht jetzt
https://sub.serverdomain.de/1.html. Für Jede Containerid lege ich eine html an mit entsprechendem Script.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Geodaten Weiterleitung</title>
<script>
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(openURL, showError, {
enableHighAccuracy: true,
timeout: 10000,
maximumAge: 0
});
} else {
alert("Geolocation wird von diesem Browser nicht unterstützt.");
}
}
function openURL(position) {
let latitude = position.coords.latitude;
let longitude = position.coords.longitude;
let targetUrl =
[URL]http://serverdomain.de:5055/?id=1[/URL]&lat=${latitude}&lon=${longitude}
;
// Neues Fenster oder Tab öffnen
let newTab = window.open(targetUrl, "_blank");
if (newTab) {
// Falls der Browser das Öffnen erlaubt hat, dieses Tab schließen
window.close();
} else {
// Falls der Browser das Schließen verhindert, Hinweis anzeigen
document.getElementById("status").innerText = "Bitte schließen Sie dieses Fenster manuell.";
}
}
function showError(error) {
let message = "";
switch (error.code) {
case error.PERMISSION_DENIED:
message = "Standortfreigabe abgelehnt. Bitte aktivieren Sie den Standortzugriff.";
break;
case error.POSITION_UNAVAILABLE:
message = "Standort nicht verfügbar. Bitte versuchen Sie es später erneut.";
break;
case error.TIMEOUT:
message = "Standortabfrage hat zu lange gedauert. Versuchen Sie es erneut.";
break;
default:
message = "Unbekannter Fehler.";
}
document.getElementById("status").innerText = message;
document.getElementById("retryButton").style.display = "block";
}
window.onload = getLocation;
</script>
</head>
<body>
<p id="status">Bitte warten, Standort wird ermittelt...</p>
<button id="retryButton" onclick="getLocation()" style="display:none;">Erneut versuchen</button>
</body>
</html>
Das ist erstmal eine einfache Lösung. Da hier auch nichts Datenschutztechnisch relevant ist, kann man das mal so zum probieren nehmen.
Wenn sich das bewährt und den Effekt hat, den wir uns erhoffen, dann kann man später immer noch zu einer Bezahllösung wechseln.
Das einzige, was mich noch stört, der geöffnete Tab schließt sich, zumindest bei meinem Handy, nicht. Das ist insofern blöd, dass wenn jemand scannt, und dann abends als Beispiel aus Versehen, den geöffneten Tab nochmals neu lädt, sich die Position wieder ungewollt aktualisiert.
Im groben und ganzen konnte ich aber mein Anliegen jetzt erstmal umsetzen und ich werde das jetzt die nächsten Tage mal mit 4 - 5 Containern testen.
Vielen Dank für die rege Mithilfe.