Milesight AT101: LoRaWAN GPS- & Wi-Fi-Asset-Tracker
Milesight AT101 LoRaWAN Asset-Tracker: GNSS plus Wi-Fi-Ortung, eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, Geofencing und Flotten-Integration.
- LoRaWAN
- Class A, OTAA
- Ortung
- GNSS (GPS/BeiDou) + Wi-Fi-Scan
- Schutzart
- IP67
- Sensoren
- Temperatur, Neigung, Sabotage
- Batterie
- Bis zu 15 Jahre (2 Fixes/Tag)
- Reichweite
- Bis 15 km ländlich, 2 km urban
- Konfiguration
- NFC / Bluetooth (Milesight ToolBox)
Was misst der AT101?
Standort
Breiten-/Längengrad aus GNSS oder Wi-Fi-MAC-Scan, skaliert mit 1.000.000.
Bewegungsstatus
Start, in Bewegung und Stopp aus dem integrierten Beschleunigungssensor.
Geofence-Status
Innerhalb, außerhalb oder nicht gesetzt gegenüber dem konfigurierten Bereich.
Temperatur
Onboard-Temperatur mit optionalem Alarm bei abnormaler Temperatur.
Neigung und Sabotage
Geräteposition (normal/Neigung) sowie Montage-/Demontage-Sabotageereignisse.
Integration
Sensor / Controller
Misst oder steuert vor Ort und sendet LoRaWAN-Uplinks.
LoRaWAN-Gateway
Empfängt die Funkpakete und reicht sie an den Server weiter.
ChirpStack
Network-Server: verwaltet Sessions und decodiert das Payload.
ThingsBoard / Grafana
Dashboards, Alarme, Regeln und Reports.
function decodeUplink(input) {
var bytes = input.bytes;
var data = {};
for (var i = 0; i < bytes.length; ) {
var channel = bytes[i++];
var type = bytes[i++];
if (channel === 0x01 && type === 0x75) { // battery (%)
data.battery = bytes[i]; i += 1;
} else if (channel === 0x03 && type === 0x67) { // temperature (°C)
data.temperature = readInt16LE(bytes, i) / 10; i += 2;
} else if (channel === 0x83 && type === 0x67) { // temperature + alarm flag
data.temperature = readInt16LE(bytes, i) / 10;
data.temperature_alarm = bytes[i + 2] === 1 ? "abnormal" : "normal";
i += 3;
} else if ((channel === 0x04 || channel === 0x84) && type === 0x88) { // location
data.latitude = readInt32LE(bytes, i) / 1000000;
data.longitude = readInt32LE(bytes, i + 4) / 1000000;
var status = bytes[i + 8];
data.motion_status = MOTION[status & 0x0f];
data.geofence_status = GEOFENCE[status >> 4];
i += 9;
} else if (channel === 0x05 && type === 0x00) { // device position
data.position = bytes[i] === 1 ? "tilt" : "normal"; i += 1;
} else if (channel === 0x07 && type === 0x00) { // tamper status
data.tamper_status = bytes[i] === 1 ? "uninstall" : "install"; i += 1;
} else if (channel === 0x06 && type === 0xd9) { // Wi-Fi scan result
var wifi = {
mac: readMAC(bytes, i + 1),
rssi: readInt8(bytes[i + 7])
};
data.wifi = data.wifi || [];
if (wifi.mac !== "ff:ff:ff:ff:ff:ff") data.wifi.push(wifi);
i += 9;
} else {
break; // unknown channel
}
}
return { data: data };
}
var MOTION = { 0: "unknown", 1: "start", 2: "moving", 3: "stop" };
var GEOFENCE = { 0: "inside", 1: "outside", 2: "unset", 3: "unknown" };
function readInt8(b) { return b > 0x7f ? b - 0x100 : b; }
function readInt16LE(b, i) {
var v = (b[i + 1] << 8) | b[i];
return v > 0x7fff ? v - 0x10000 : v;
}
function readUInt32LE(b, i) {
return ((b[i + 3] << 24) | (b[i + 2] << 16) | (b[i + 1] << 8) | b[i]) >>> 0;
}
function readInt32LE(b, i) {
var v = readUInt32LE(b, i);
return v > 0x7fffffff ? v - 0x100000000 : v;
}
function readMAC(b, i) {
var out = [];
for (var k = 0; k < 6; k++) out.push(("0" + (b[i + k] & 0xff).toString(16)).slice(-2));
return out.join(":");
}
Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation (Communication Protocol / User Guide).
Kanalformat: 01 75 Batterie (%), 03 67 Temperatur (INT16 Little-Endian, /10), 83 67 Temperatur mit Alarm-Flag für abnormale Werte, 04/84 88 Standort (Breiten- und Längengrad als INT32 Little-Endian, /1.000.000) plus ein Status-Byte, dessen unteres Nibble die Bewegung und oberes Nibble den Geofence kodiert, 05 00 Geräteposition (Neigung), 07 00 Sabotage. Umgesetzt aus der veröffentlichten Milesight-Byte-Spezifikation. Im Wi-Fi-Ortungsmodus sendet der Tracker 06 D9 Scan-Ergebnisse (BSSID-Liste) statt eines GNSS-Fixes, die ein Ortungs-Backend in Koordinaten auflöst. Für ThingsBoard wandert dieselbe Kanallogik in einen Uplink-Converter.
Uplink (hex)
0175640367EB000488C283DE0256A0B00002050001070000Decoded JSON
{ "battery": 100, "temperature": 23.5, "latitude": 48.137154, "longitude": 11.575382, "motion_status": "moving", "geofence_status": "inside", "position": "tilt", "tamper_status": "install" }Einsatzszenarien
Asset- und Flotten-Tracking
Trailer, Container und Equipment mit bewegungsgesteuerter Meldung orten.
MehrKühlketten-Transport
Standort mit Temperaturprotokoll für empfindliche Güter im Transit kombinieren.
MehrHof- und Geländelogistik
Depots und Höfe per Geofence überwachen, Alarm beim Verlassen oder Zurückkehren.
MehrKonfiguration & Stolpersteine
GNSS oder Wi-Fi-Ortung
GNSS liefert Genauigkeit im Freien, Wi-Fi-MAC-Scan funktioniert in Innenräumen, braucht aber ein Geolocation-Backend zum Auflösen der BSSIDs. Strategie je Anwendungsfall wählen, das Payload-Layout ändert sich dadurch.
Meldestrategie
Periodisch, bewegungsgesteuert und zeitgesteuert wägen Batterielaufzeit gegen Aktualität ab. Der Bewegungsmodus spart Strom, meldet aber nur bei Bewegung, daher Dashboard-Timeouts entsprechend planen.
Geofence einrichten
Mittelpunktkoordinaten und Radius werden am Gerät konfiguriert. Wechsel innerhalb/außerhalb kommen als Status-Byte an, Dashboard-Regeln sollten sie als priorisierte Ereignisse behandeln.
GNSS-Fix-Timeout
Ein Kaltstart-Fix kann bei schlechter Himmelssicht länger dauern. Ein realistisches Ortungs-Timeout setzen, damit der Tracker die Batterie nicht beim Satellitensuchen in Innenräumen leert.
So unterstützt dich merkaio beim AT101
Von der Beschaffung bis zum laufenden Betrieb, alles aus einer Hand und auf eigener europäischer Infrastruktur.
Pre-Staging & Provisioning
Wir konfigurieren den AT101, setzen Keys, Intervalle und Alarme und liefern einsatzbereit aus.
Eigener Decoder
Payload-Codec für ChirpStack v4 und ThingsBoard, nach der Milesight-Spezifikation implementiert.
Integration ins Dashboard
Die Daten landen in deinem ThingsBoard oder Grafana, inklusive Alarmen und Reports.
Betrieb & Monitoring
Wir betreiben LoRaWAN-Stack und Dashboards auf europäischer Infrastruktur, du nutzt nur die Daten.
Häufige Fragen
Sprechen wir über Ihre Infrastruktur. Digital und vor Ort.
Ob IoT-Plattformentwicklung, Hardwareauswahl, Managed Hosting für ChirpStack, ThingsBoard, Grafana oder NetBird VPN, oder Migration von einem Self-Hosted-Setup - wir finden die passende Lösung für Ihren Anwendungsfall. Buchen Sie ein kostenloses 30-Minuten-Gespräch, unverbindlich.
Ihr Ansprechpartner
Timo Wevelsiep
Gründer, merkaio
15 Minuten, unverbindlich, direkt mit Timo.
Decoder für ChirpStack v4. merkaio ist unabhängiger Integrator und nicht mit Milesight affiliiert.