Milesight EM300-DI: LoRaWAN-Impulszähler für Zähler

Milesight EM300-DI LoRaWAN-Impulszähler für Wasser-, Gas- und Stromzähler: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel und Zähler-Integration.

Milesight EM300-DI
EM300-DISensor
LoRaWAN
Class A, OTAA
Band / Port
EU868 / Port 85
Impulseingang
Trockenkontakt, Reed-Schalter, passive Impulszähler
Max. Eingangsfrequenz
2000 Hz (min. Impulsbreite 250 µs)
Impulsfilter
Verwirft Signale kürzer als 250 µs
Zählerbereich
UINT32 (kumulierte Impulse)
Lokaler Speicher
1000 Verlaufseinträge, Nachübertragung
Schutzart
IP67
Batterie
ER18505 Li-SOCl2, ca. 5 Jahre bei 10-Min-Intervall
Konfiguration
NFC (Milesight ToolBox)
Messgrößen

Was misst der EM300-DI?

Impulszählung

Kumulierter UINT32-Zähler von Wasser-, Gas- oder Stromzählern mit Impulsausgang.

GPIO-Status

Zustand des Digitaleingangs (offen / geschlossen) zur Kontaktüberwachung.

GPIO-Alarm

Flanken- oder Schwellenereignis, außerhalb des regulären Intervalls gesendet.

Batteriestand

Wird periodisch gemeldet, mit lokaler Speicherung und Nachü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 === 0x05 && type === 0x00) {   // GPIO status (0/1)
      data.gpio = bytes[i]; i += 1;
    } else if (channel === 0x05 && type === 0xc8) {   // pulse counter (UINT32 LE)
      data.pulse = readUInt32LE(bytes, i); i += 4;
    } else if (channel === 0x85 && type === 0x00) {   // GPIO + alarm flag
      data.gpio = bytes[i];
      data.gpio_alarm = bytes[i + 1]; i += 2;
    } 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 (%), 05 c8 Impulszähler (UINT32 Little-Endian, kumulativ), 05 00 GPIO-Status (0/1), 85 00 GPIO-Status plus Alarmflag. Die Kanäle Temperatur (03 67) und Feuchte (04 68) sind auf der gemeinsamen EM300-Plattform vorhanden, werden aber nicht in jedem Gerät befüllt. Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Für ThingsBoard wandert dieselbe Kanal-Logik in einen Uplink-Converter.

Uplink (hex)

01756405C82A000000

Decoded JSON

{ "battery": 100, "pulse": 42 }
Aus der Praxis

Konfiguration & Stolpersteine

Impulseingangstyp

Eingangsmodus an den Zähler anpassen: Trockenkontakt oder Reed-Schalter mit passivem Impulsausgang. Der falsche Modus verpasst oder verdoppelt Impulse.

Entprell-Filter

Der Zähler verwirft Impulse kürzer als 250 µs und das Filterfenster ist per NFC konfigurierbar. Auf den Zähler abstimmen, damit Prellen nicht doppelt zählt.

Kumulierter Zähler

Der Impulswert ist ein laufender Gesamtwert, kein Delta pro Intervall. Den Verbrauch im Dashboard als Differenz aufeinanderfolgender Uplinks berechnen.

Impuls-zu-Einheit-Faktor

Jeder Zähler hat seinen eigenen Faktor Impulse pro Liter oder pro kWh. Pro Gerät speichern, damit der Rohzählwert in echte technische Einheiten umrechnet.

Dein Partner

So unterstützt dich merkaio beim EM300-DI

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

Pre-Staging & Provisioning

Wir konfigurieren den EM300-DI, 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-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 wandert in einen ThingsBoard-Uplink-Converter.
Jeden Zähler mit passivem Impulsausgang: Wasser-, Gas- oder Stromzähler mit Trockenkontakt oder Reed-Schalter. Er zählt bis 2000 Hz und speichert einen kumulierten UINT32-Gesamtwert.
Es ist ein kumulierter laufender Gesamtwert. Für den Verbrauch pro Zeitraum den vorherigen Uplink-Wert vom aktuellen abziehen, im Dashboard oder in der Regel-Engine.
Ja. Das Gehäuse ist nach IP67 geschützt und eignet sich für Zählerschächte, Keller und feuchten Messstellen im Außenbereich.
Er filtert Signale kürzer als 250 µs heraus und das Filterfenster ist per NFC konfigurierbar, sodass mechanisches Prellen nicht als zusätzliche Impulse gezählt wird.
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.