Milesight AM103: 3-in-1 LoRaWAN Luftqualitätssensor

Milesight AM103 LoRaWAN CO2-, Temperatur- & Feuchtesensor: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, Smart-Office-Integration.

Milesight AM103
AM103Sensor
LoRaWAN
Class A, OTAA
Band / Port
EU868 / Port 85
CO2-Bereich
400 bis 5000 ppm (NDIR)
Temperatur
-20 bis +60 °C
Feuchte
0 bis 100 % RH
Batterie
Doppelbatterie, bis zu 3 Jahre (AM103) / 4 Jahre (AM103L)
Konfiguration
NFC (Milesight ToolBox)
Messgrößen

Was misst der AM103?

CO2

NDIR-Sensor, 400 bis 5000 ppm, mit optionaler ABC-Selbstkalibrierung.

Temperatur

Messbereich -20 bis +60 °C.

Feuchte

Relative Feuchte 0 bis 100 % RH (nicht kondensierend).

Luftqualitäts-LED

Dreifarbige LED und Emoticon-Anzeige zeigen den CO2-Status auf einen Blick.

Batteriestand

Wird periodisch gemeldet, mit lokaler Speicherung und erneuter Übertragung.

Daten ins Dashboard

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.

ChirpStack v4 · decodeUplink
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 === 0x04 && type === 0x68) {   // humidity (%RH)
      data.humidity = bytes[i] / 2; i += 1;
    } else if (channel === 0x07 && type === 0x7d) {   // CO2 (ppm)
      data.co2 = readUInt16LE(bytes, i); i += 2;
    } else {
      break;
    }
  }
  return { data: data };
}

function readUInt16LE(b, i) {
  return (b[i + 1] << 8) | b[i];
}

function readInt16LE(b, i) {
  var v = readUInt16LE(b, i);
  return v > 0x7fff ? v - 0x10000 : v;
}

Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation (Communication Protocol / User Guide).

Kanalformat: 01 75 Batterie (%), 03 67 Temperatur (INT16 little-endian, /10), 04 68 Feuchte (/2), 07 7d CO2 (UINT16 little-endian, ppm). Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanal-Logik kommt in einen ThingsBoard-Uplink-Converter. History-Uplinks (Kanal 20) und Downlink-Antwortframes (Kanal FF/FE) enthalten zusätzliche Felder, die sich bei Bedarf ergänzen lassen.

Uplink (hex)

0175640367E50004685C077D9001

Decoded JSON

{ "battery": 100, "temperature": 22.9, "humidity": 46, "co2": 400 }
Aus der Praxis

Konfiguration & Stolpersteine

NFC-Einrichtung

Keys, Meldeintervall und CO2-Schwellwerte werden vor dem Rollout per NFC mit der Milesight ToolBox gesetzt.

CO2-Kalibrierung

Der NDIR-Sensor nutzt eine ABC-Selbstkalibrierung, die voraussetzt, dass der Raum regelmäßig Außenluftniveau (rund 400 ppm) erreicht. In Räumen, die nie leer sind, ABC deaktivieren und stattdessen manuell kalibrieren.

Aufwärmen nach dem Einschalten

Der CO2-Wert benötigt nach jedem Einschalten eine kurze Aufwärmphase. Die ersten Uplinks nach einem Batteriewechsel als Einschwingwerte behandeln, nicht als Alarme.

Schwellwert-Alarme

CO2-Schwellwert-Alarme werden sofort gesendet, außerhalb des Meldeintervalls. Dashboard-Regeln sollten Alarm-Uplinks als priorisierte Ereignisse behandeln.

Dein Partner

So unterstützt dich merkaio beim AM103

Von der Beschaffung bis zum laufenden Betrieb, alles aus einer Hand und auf eigener europäischer Infrastruktur.

Pre-Staging & Provisioning

Wir konfigurieren den AM103, 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

Ja. Es ist ein Standard-LoRaWAN-Gerät, kein Milesight-Gateway und keine Cloud nötig. Sie hinterlegen den Codec im Device-Profil und provisionieren das Gerät per OTAA.
Ja, für ChirpStack und ThingsBoard, implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanal-Logik kommt in einen ThingsBoard-Uplink-Converter.
Drei Parameter: CO2-Konzentration, Temperatur und Feuchte. Eine dreifarbige LED und eine Emoticon-Anzeige zeigen den aktuellen Luftqualitätsstatus zusätzlich direkt am Gerät.
Es ist ein Class-A-Gerät auf LoRaWAN-Port 85. Jeder Uplink trägt CO2, Temperatur und Feuchte; der Batteriestand wird periodisch gemeldet.
Der NDIR-Sensor unterstützt eine automatische Baseline-Kalibrierung (ABC), die voraussetzt, dass der Raum regelmäßig Frischluftniveau erreicht. Für durchgehend belegte Räume ABC deaktivieren und manuell kalibrieren, damit die Werte korrekt bleiben.
Der AM103 läuft mit seinen Doppelbatterien bis zu 3 Jahre, der AM103L bis zu 4 Jahre, abhängig vom per NFC eingestellten Meldeintervall.
Ja. CO2-Schwellwerte werden per NFC mit der Milesight ToolBox gesetzt und sofort gesendet, außerhalb des regulären Meldeintervalls, sodass Dashboard-Regeln Alarm-Uplinks als priorisierte Ereignisse behandeln sollten.
Aus derselben Serie

Verwandte Geräte

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.

Timo Wevelsiep

Ihr Ansprechpartner

Timo Wevelsiep

Gründer, merkaio

15 Minuten, unverbindlich, direkt mit Timo.

Mit dem Absenden stimmen Sie unserer Datenschutzerklärung zu.

Decoder für ChirpStack v4. merkaio ist unabhängiger Integrator und nicht mit Milesight affiliiert.