Milesight EM320-TH: Outdoor-LoRaWAN-Temperatur- & Feuchtesensor

Milesight EM320-TH Outdoor-LoRaWAN-Sensor: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, Schwellenalarme, Kühlketten-Integration.

Milesight EM320-TH
EM320-THSensor
LoRaWAN
Class A, OTAA
Band / Port
EU868 / Port 85
Schutzart
IP67
Temperatur
-30 bis +60 °C, ±0,3 °C (-30 bis 0 °C), ±0,2 °C (0 bis 60 °C)
Feuchte
0 bis 100 % RH, ±2 % RH
Batterie
Wechselbar, bis zu 10 Jahre
Konfiguration
NFC (Milesight ToolBox)
Messgrößen

Was misst der EM320-TH?

Temperatur

Integriertes Sensirion-SHT41-Element, -30 bis +60 °C mit 0,1 °C Auflösung, typische Genauigkeit ±0,3 °C unter 0 °C und ±0,2 °C von 0 bis 60 °C.

Feuchte

Relative Feuchte 0 bis 100 % RH, 0,5 % RH Auflösung, ±2 % RH Genauigkeit.

Batteriestand

Wird periodisch als Prozentwert gemeldet, mit Verlauf auf dem Gerät und Neuübertragung.

Verlaufsdaten

Speichert bis zu 3000 Datensätze mit Zeitstempel auf dem Gerät für lückenlose Protokolle.

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 === 0x20 && type === 0xce) {   // history record
      data.history = data.history || [];
      data.history.push({
        timestamp: readUInt32LE(bytes, i),
        temperature: readInt16LE(bytes, i + 4) / 10,
        humidity: bytes[i + 6] / 2
      });
      i += 7;
    } else {
      break;
    }
  }
  return { data: data };
}

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;
}

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). Der Kanal 20 ce überträgt einen gespeicherten Verlaufsdatensatz (Zeitstempel, Temperatur, Feuchte), der nach einer Netzlücke nachgesendet wird. Uplinks ohne Batteriekanal sind normal. Für ThingsBoard kommt dieselbe Kanal-Logik in einen Uplink-Converter. Umgesetzt nach der veröffentlichten Milesight-Byte-Spezifikation.

Uplink (hex)

0175640367AC00046873

Decoded JSON

{ "battery": 100, "temperature": 17.2, "humidity": 57.5 }
Aus der Praxis

Konfiguration & Stolpersteine

NFC-Einrichtung

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

Schwellenalarme

Werden sofort gesendet, außerhalb des Meldeintervalls. Dashboard-Regeln sollten Alarm-Uplinks als Prioritäts-Events behandeln.

Verlauf & Neuübertragung

Das Gerät speichert bis zu 3000 Datensätze mit Zeitstempel und sendet sie nach einer Gateway-Lücke nach. Aktivieren Sie daher den Verlaufskanal 20 ce im Decoder, damit Protokolle lückenlos bleiben.

Kalibrier-Offset

Das Gerät addiert einen Kalibrier-Offset auf den Rohwert. Dokumentieren Sie den Offset, damit Dashboard-Werte nachvollziehbar bleiben.

Dein Partner

So unterstützt dich merkaio beim EM320-TH

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

Pre-Staging & Provisioning

Wir konfigurieren den EM320-TH, 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 oder Cloud nötig. Sie hinterlegen den Codec im Device-Profile und provisionieren das Gerät per OTAA.
Ja, für ChirpStack und ThingsBoard, umgesetzt nach der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanal-Logik kommt in einen ThingsBoard-Uplink-Converter.
Es ist ein Class-A-Gerät auf LoRaWAN-Port 85. Jeder Uplink enthält Temperatur und Feuchte; der Batteriestand wird periodisch als Prozentwert gemeldet.
Ja. Das Gehäuse ist IP67 mit lebensmittelechtem PC-+-ABS-Material und einem Betriebsbereich von -30 bis +60 °C, also passend für Außen-, Kühl- und Lebensmittelumgebungen.
Sie wird mit einer wechselbaren Batterie für bis zu 10 Jahre geliefert, abhängig vom konfigurierten Meldeintervall, auch in Umgebungen mit niedrigen Temperaturen.
Der EM320-TH speichert bis zu 3000 Datensätze mit Zeitstempel auf dem Gerät und sendet sie nach Wiederkehr der Verbindung nach. Aktivieren Sie den Verlaufskanal im Decoder, damit der Rückstand im Dashboard ankommt.
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.