Milesight UC300: Industrie-LoRaWAN-Controller & Modbus-Bridge

Milesight UC300 Industrie-IoT-Controller: LoRaWAN-zu-Modbus-Bridge, RS485/DI/DO/Analog-Eingänge, eigenes Decoder-Framework und Downlink-Steuerung.

Milesight UC300
UC300Controller
LoRaWAN
Class C, OTAA
Feldbus
RS485 Modbus RTU
Eingänge
Digital (DI) + Analog (4-20 mA / 0-10 V)
Ausgänge
Digital / Relais (DO)
Edge-Logik
Bis zu 16 IF/THEN-Regeln
Versorgung
Netz oder Solar (Class C)
Funktionen

Was kann der UC300?

Digital-Eingänge (DI)

Dry Contacts, Endschalter, Not-Aus, Impulszählung.

Relais-Ausgänge (DO)

Pumpen, Licht, Ventile und Alarme schalten.

Analog-Eingänge (AI)

4-20 mA / 0-10 V: Druck, Füllstand, Durchfluss.

RS485 Modbus RTU

Energiezähler, SPS und Modbus-Sensoren auslesen.

Edge-Logik

Bis zu 16 IF/THEN-Regeln laufen auch bei Netzausfall weiter.

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 = { di: {}, do_: {}, modbus: {} };

  for (var i = 0; i < bytes.length; ) {
    var channel = bytes[i++];
    var type = bytes[i++];

    // Device info (join / power-on): protocol version, SN, hw/fw version
    if (channel === 0xff) { i += deviceInfoLen(type); continue; }

    // Digital input, digital mode: 1 byte (0/1)
    if (type === 0x00) { data.di["ch" + channel] = bytes[i]; i += 1; continue; }

    // Digital input, counter mode: UINT32 little-endian (4 bytes)
    if (type === 0xc8) { data.di["ch" + channel] = readUInt32LE(bytes, i); i += 4; continue; }

    // Digital / relay output: 1 byte (0/1)
    if (type === 0x01) { data.do_["ch" + channel] = bytes[i]; i += 1; continue; }

    // Modbus channel: data type (1 byte) + value (4 bytes)
    // channel-to-register mapping is deployment-specific
    data.modbus["ch" + channel] = readModbusValue(bytes, i); i += 5;
  }
  return { data: data };
}

function readUInt32LE(b, i) {
  return ((b[i+3]<<24)|(b[i+2]<<16)|(b[i+1]<<8)|b[i]) >>> 0;
}
function readModbusValue(b, i) {
  return { type: b[i], raw: readUInt32LE(b, i + 1) };
}
function deviceInfoLen(type) {
  void type; // 0xFF segment lengths are firmware-specific; set per deployment
  return 1;
}

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

Der UC300-Payload ist konfigurationsabhängig (IPSO-Channel-Format, Interface- und Modbus-Maske). Modbus-Werte kommen als Datentyp (1 Byte) + Wert (4 Byte), gemappt auf die konfigurierten Register. Das ist ein Framework, kein Drop-in: Wir validieren den finalen Decoder gegen ein echtes Uplink des Deployments. Als Class-C-Gerät nimmt der UC300 Downlinks nahezu in Echtzeit an, um Relais zu schalten oder Modbus-Befehle abzusetzen.

Aus der Praxis

Konfiguration & Stolpersteine

Class-C-Versorgung

Dauerempfang zieht mehr Strom: Netz oder Solar einplanen, nicht batterie-only.

RS485-Terminierung

Bei langen oder schnellen RS485-Strecken Abschlusswiderstände setzen.

Modbus-Scan-Intervall

Polling-Intervall realistisch zur Registeranzahl wählen, sonst stauen sich Uplinks.

Edge-Regeln

Lokale IF/THEN-Regeln halten Ventile bei Netzausfall sicher. Fail-Safe-Zustände explizit konfigurieren.

D2D-Hinweis

Wird ein D2D-Befehl ausgelöst, sendet das Gerät evtl. kein normales Uplink. Im Monitoring berücksichtigen.

Dein Partner

So unterstützt dich merkaio beim UC300

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

Pre-Staging & Provisioning

Wir konfigurieren den UC300, 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, über RS485 Modbus RTU. Wir mappen die Register und decodieren die Werte in sauberes JSON im Dashboard.
Ja. Als Class-C-Gerät hört der UC300 dauerhaft und nimmt Downlink-Steuerung nahezu in Echtzeit an; wir bauen und testen die Befehle.
RS485 Modbus RTU plus Digital-Eingänge (Dry Contact und Impulszähler), Digital-/Relais-Ausgänge und Analog-Eingänge für 4-20 mA oder 0-10 V.
Der Payload spiegelt wider, welche Schnittstellen aktiv sind und wie die Modbus-Register gemappt sind. Der Decoder ist daher ein Framework, das wir gegen ein echtes Uplink deines Deployments bauen und validieren, kein fixer Drop-in.
Nein. Als Class-C-Gerät hält er sein Empfangsfenster dauerhaft offen, also Netz oder Solar einplanen statt reinem Batteriebetrieb.
Ja. Bis zu 16 lokale IF/THEN-Regeln laufen auf dem Gerät weiter, sodass Ventile und Ausgänge auch bei Netz- oder Stromunterbrechung in sicheren Zuständen bleiben.
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.