Milesight UC511: LoRaWAN-Magnetventil-Controller

Milesight UC511 LoRaWAN-Magnetventil-Controller: eigenes ChirpStack-Decoder-Framework, Ventilstatus, Impulszählung, Downlink-Steuerung und smarte Bewässerung.

Milesight UC511
UC511Controller
LoRaWAN
Class A / Class C, OTAA
Ventilausgänge
2 Magnetventil-Schnittstellen (bistabil)
GPIO
2 GPIO (Impuls / digitaler Eingang)
Stromversorgung
Integriertes Solarpanel + Akku
Schutzart
IP67, M12-Steckverbinder
Druck (Variante)
Optionaler Rohrdruck-Eingang
Konfiguration
NFC (Milesight ToolBox)
Funktionen

Was kann der UC511?

Ventilstatus

Offen-/Geschlossen-Zustand von Ventil 1 und Ventil 2.

Impulszählung

Durchflusszähler-Impulse je Ventil für volumenbasierte Bewässerung.

GPIO-Eingänge

Zwei GPIO lesen externe Kontakte oder Impulssignale.

Rohrdruck

Optionaler Druckwert auf Hardware-Varianten mit Drucksensor.

Batteriestand

Wird als Prozentwert mit dem periodischen Status-Uplink gemeldet.

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++];

    // Device info (join / power-on): version, SN, class. Length is field-specific.
    if (channel === 0xff) { i += deviceInfoLen(type, bytes, i); continue; }

    // Battery (%)
    if (channel === 0x01 && type === 0x75) { data.battery = bytes[i]; i += 1; continue; }

    // Valve 1 / valve 2 status: 1 byte (0 closed, 1 open; 0xFF = delayed-command ack)
    if (channel === 0x03 && type === 0x01) { data.valve_1 = readValve(bytes[i]); i += 1; continue; }
    if (channel === 0x05 && type === 0x01) { data.valve_2 = readValve(bytes[i]); i += 1; continue; }

    // Valve 1 / valve 2 flow pulses: UINT32 little-endian (4 bytes)
    if (channel === 0x04 && type === 0xc8) { data.valve_1_pulse = readUInt32LE(bytes, i); i += 4; continue; }
    if (channel === 0x06 && type === 0xc8) { data.valve_2_pulse = readUInt32LE(bytes, i); i += 4; continue; }

    // GPIO 1 / GPIO 2 status: 1 byte (hardware/firmware dependent)
    if (channel === 0x07 && type === 0x01) { data.gpio_1 = bytes[i]; i += 1; continue; }
    if (channel === 0x08 && type === 0x01) { data.gpio_2 = bytes[i]; i += 1; continue; }

    // Pipe pressure (kPa): UINT16 little-endian, on pressure variants
    if (channel === 0x09 && type === 0x7b) { data.pressure = readUInt16LE(bytes, i); i += 2; continue; }

    // Unknown channel: stop. Downlink-response, history and task-status
    // segments are deployment-specific and decoded per rollout.
    break;
  }
  return { data: data };
}

function readValve(v) {
  if (v === 0xff) return "command_ack";
  return v === 1 ? "open" : "closed";
}
function readUInt16LE(b, i) {
  return (b[i + 1] << 8) | b[i];
}
function readUInt32LE(b, i) {
  return ((b[i+3]<<24)|(b[i+2]<<16)|(b[i+1]<<8)|b[i]) >>> 0;
}
function deviceInfoLen(type, b, i) {
  void b; void i;
  if (type === 0x01 || type === 0x0f || type === 0x0b || type === 0xfe) return 1; // version, class, status, reset
  if (type === 0x09 || type === 0x0a || type === 0xff) return 2;                  // hw / fw / TSL version
  if (type === 0x16) return 8;                                                    // serial number
  return 1;
}

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

Das UC511-Payload ist konfigurationsabhängig: welche Kanäle erscheinen, hängt von Hardware- und Firmware-Version sowie aktivierten Funktionen ab (Ventil- gegenüber Zählermodus, GPIO, optionaler Druckeingang sowie History- oder Task-Status-Frames). Dies ist ein Framework auf Basis der veröffentlichten Milesight-Byte-Spezifikation, kein fertiges Drop-in: Ventilstatus, Impuls und GPIO oben sind aus dieser Spezifikation umgesetzt, während Downlink-Antwort-, History- und Task-Status-Segmente je Deployment zugeordnet und gegen einen echten Uplink geprüft werden. Als Class-C-Gerät kann der UC511 Downlinks nahezu in Echtzeit annehmen, um ein Ventil zu öffnen oder zu schließen.

Aus der Praxis

Konfiguration & Stolpersteine

Class A vs. Class C

Class A für die längste Solar-Akku-Laufzeit, Class C wenn Ventile nahezu in Echtzeit auf Downlinks reagieren müssen. Bewusst wählen, da Class C den Empfangsstrom erhöht.

Bistabile Magnetventile

Die Ausgänge schalten bistabile Magnetventile per Impuls, sodass ein Ventil seine Stellung ohne Dauerstrom hält. Spulenspannung und Impuls auf das Ventil abstimmen.

Impulszählung einrichten

Für volumenbasierte Bewässerung den Durchflusszähler am Ventil-Impulseingang verdrahten und den Liter-pro-Impuls-Faktor dokumentieren, damit Dashboard-Volumina nachvollziehbar bleiben.

Hardware-Varianten

Druckeingang, GPIO und History-Frames gibt es nur auf neuerer Hardware und Firmware. Die genauen Kanäle vor dem Finalisieren des Decoders mit einem aufgezeichneten Uplink bestätigen.

Dein Partner

So unterstützt dich merkaio beim UC511

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

Pre-Staging & Provisioning

Wir konfigurieren den UC511, 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, keine Milesight-Cloud nötig. Sie hinterlegen den Codec im Device-Profil, provisionieren per OTAA und bauen anschließend die Downlinks für die Ventilsteuerung.
Ja. Wir liefern einen ChirpStack-v4-Decoder, umgesetzt nach der veröffentlichten Milesight-Byte-Spezifikation. Da das UC511-Payload konfigurationsabhängig ist, liefern wir ihn als Framework und finalisieren ihn gegen einen echten Uplink aus Ihrem Deployment.
Welche Kanäle in jedem Uplink vorkommen, hängt von Hardware- und Firmware-Version sowie aktivierten Funktionen ab, etwa Ventil- gegenüber Zählermodus, GPIO, optionalem Druckeingang und History-Frames. Ventil-, Impuls- und GPIO-Kanäle folgen der Spezifikation; die übrigen Segmente werden je Rollout zugeordnet.
Ja. Als Class-C-Gerät hört der UC511 dauerhaft mit und nimmt Downlinks nahezu in Echtzeit an, um jedes Magnetventil zu öffnen oder zu schließen. Wir bauen und prüfen die Steuerbefehle für Ihre Plattform.
Er kommt mit integriertem Solarpanel und Akku für den langfristigen Außeneinsatz, sodass im Feld keine Netzverkabelung nötig ist.
Ja. Das Gehäuse ist nach IP67 mit M12-Steckverbindern gegen Wasser und Staub geschützt, passend für Ventilschächte und freiliegende Feldinstallationen.
Ja. Jedes Ventil hat einen Impulszähl-Eingang, sodass ein Durchflusszähler die Dosierung nach Litern statt nach Zeit erlaubt. Den Liter-pro-Impuls-Faktor bei der Provisionierung dokumentieren.
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.