Milesight AM319: 9-in-1 LoRaWAN Luftqualitätssensor mit E-Ink

Milesight AM319 9-in-1 LoRaWAN IAQ-Sensor mit E-Ink-Display: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, CO2-, PM- und HCHO-Messung.

Milesight AM319
AM319Sensor
LoRaWAN
Class A, OTAA
Band / Port
EU868 / Port 85
Display
4,2 Zoll E-Ink, Ampel-Status
CO2-Sensor
NDIR, 0 bis 5000 ppm
Feinstaub
PM2.5 und PM10, Laserstreuung
Stromversorgung
Batterie oder USB Type-C
Konfiguration
NFC (Milesight ToolBox)
Messgrößen

Was misst der AM319?

CO2

NDIR-Sensor, 0 bis 5000 ppm, mit ABC- oder manueller Kalibrierung.

Temperatur & Feuchte

Komfortwerte, Temperatur INT16 little-endian /10, Feuchte /2.

TVOC

Als IAQ-Index (/100) oder in Mikrogramm pro Kubikmeter, umschaltbar.

HCHO und PM

Formaldehyd in mg/m³ (/100), PM2.5 und PM10 in Mikrogramm pro Kubikmeter.

Druck, Licht, Bewegung

Luftdruck (/10), Lichtstufe und ein PIR-Belegungsstatus.

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 === 0x05 && type === 0x00) {   // PIR occupancy
      data.pir = bytes[i] === 1 ? "trigger" : "idle"; i += 1;
    } else if (channel === 0x06 && type === 0xcb) {   // light level (0-10)
      data.light_level = bytes[i]; i += 1;
    } else if (channel === 0x07 && type === 0x7d) {   // CO2 (ppm)
      data.co2 = readUInt16LE(bytes, i); i += 2;
    } else if (channel === 0x08 && type === 0x7d) {   // TVOC (IAQ index, /100)
      data.tvoc = readUInt16LE(bytes, i) / 100; i += 2;
    } else if (channel === 0x08 && type === 0xe6) {   // TVOC (µg/m³)
      data.tvoc = readUInt16LE(bytes, i); i += 2;
    } else if (channel === 0x09 && type === 0x73) {   // pressure (hPa, /10)
      data.pressure = readUInt16LE(bytes, i) / 10; i += 2;
    } else if (channel === 0x0a && type === 0x7d) {   // HCHO (mg/m³, /100)
      data.hcho = readUInt16LE(bytes, i) / 100; i += 2;
    } else if (channel === 0x0b && type === 0x7d) {   // PM2.5 (µg/m³)
      data.pm2_5 = readUInt16LE(bytes, i); i += 2;
    } else if (channel === 0x0c && type === 0x7d) {   // PM10 (µg/m³)
      data.pm10 = readUInt16LE(bytes, i); i += 2;
    } else {
      break;
    }
  }
  return { data: data };
}

function readUInt16LE(b, i) {
  return ((b[i + 1] << 8) | b[i]) & 0xffff;
}
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 (ppm), 08 7d TVOC als IAQ-Index (/100) oder 08 e6 TVOC in Mikrogramm pro Kubikmeter, 09 73 Druck (/10), 0a 7d HCHO (/100), 0b/0c 7d PM2.5/PM10. Der TVOC-Kanal wechselt je nach konfigurierter Einheit zwischen IAQ-Index und Mikrogramm pro Kubikmeter. Der Decoder ist nach der veröffentlichten Milesight-Byte-Spezifikation umgesetzt. Gespeicherte History-Frames (Kanäle 20/21, Typ ce) und Downlink-Antworten nutzen längere Records, ergänzen Sie diese Zweige, wenn Sie die History-Übertragung aktivieren. Dieselbe Kanal-Logik gehört in einen ThingsBoard-Uplink-Konverter.

Uplink (hex)

0367E80004685D077D3002087D6400097390270B7D1900

Decoded JSON

{ "temperature": 23.2, "humidity": 46.5, "co2": 560, "tvoc": 1, "pressure": 1012.8, "pm2_5": 25 }
Aus der Praxis

Konfiguration & Stolpersteine

CO2-Kalibrierung

ABC für unbeaufsichtigte Büros oder manuelle/Hintergrund-Kalibrierung für geschlossene Räume wählen. Dokumentieren Sie den Modus, damit die Dashboard-Werte nachvollziehbar bleiben.

TVOC-Einheit

TVOC wird entweder als IAQ-Index oder in Mikrogramm pro Kubikmeter gesendet. Legen Sie die Einheit vor dem Rollout fest, denn der Byte-Typ ändert sich (7d vs. e6) und Ihr Decoder-Zweig muss passen.

Stromversorgung und Aufwärmen

Batterie verlängert die Laufzeit, doch der PM-Laser und der CO2-Sensor ziehen mehr Strom. Bei dichtem Reporting oder dauerhafter PM-Messung versorgen Sie den AM319 über USB Type-C.

E-Ink und Kindersicherung

E-Ink-Display und die Tasten am Gerät sind über NFC konfigurierbar. Aktivieren Sie in öffentlichen Bereichen die Kindersicherung, damit Anzeigeelemente und Buzzer am Gerät nicht verändert werden.

Dein Partner

So unterstützt dich merkaio beim AM319

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

Pre-Staging & Provisioning

Wir konfigurieren den AM319, 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 der Class A, kein Milesight-Gateway oder -Cloud nötig. Sie fügen den Codec ins Device-Profile ein und provisionieren per OTAA.
Ja, für ChirpStack und ThingsBoard, umgesetzt nach der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanal-Logik gehört in einen ThingsBoard-Uplink-Konverter.
Bis zu neun Parameter: CO2, Temperatur, Feuchte, TVOC, HCHO, PM2.5, PM10, Luftdruck und Licht, dazu ein PIR-Bewegungsstatus. Die Werte erscheinen auch auf dem E-Ink-Display.
Der AM319 kann TVOC als IAQ-Index (Kanaltyp 7d, geteilt durch 100) oder in Mikrogramm pro Kubikmeter (Kanaltyp e6) melden. Die Einheit wird über NFC gesetzt, achten Sie darauf, dass Ihr Decoder-Zweig zur konfigurierten Einheit passt.
Beides wird unterstützt. Batterie ist praktisch für leichtes Reporting, doch der PM-Laser und der CO2-Sensor ziehen mehr Strom, nutzen Sie daher bei dichten Intervallen oder dauerhafter Feinstaubmessung USB Type-C.
Ja. Mit aktivierter History und Retransmission puffert er Frames lokal und sendet sie erneut. Diese History-Records nutzen eine längere Payload (Kanäle 20/21, Typ ce), ergänzen Sie also den passenden Decoder-Zweig, wenn Sie die Funktion einschalten.
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.