Milesight UC511: LoRaWAN-Magnetventil-Controller
Milesight UC511 LoRaWAN-Magnetventil-Controller: eigenes ChirpStack-Decoder-Framework, Ventilstatus, Impulszählung, Downlink-Steuerung und smarte Bewässerung.
- 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)
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.
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.
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.
Einsatzszenarien
Smart Agriculture
Automatische, präzise Bewässerung nach Zeit, Volumen oder Bodenfeuchte.
MehrVolumenbasiertes Gießen
Impulszählung je Ventil macht aus einem Durchflusszähler eine literdosierung.
MehrFerngesteuerte Ventile
Feldventile per LoRaWAN öffnen und schließen, ohne Stromleitung zu verlegen.
MehrKonfiguration & 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.
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
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.
Ihr Ansprechpartner
Timo Wevelsiep
Gründer, merkaio
15 Minuten, unverbindlich, direkt mit Timo.
Decoder für ChirpStack v4. merkaio ist unabhängiger Integrator und nicht mit Milesight affiliiert.