Milesight WS558: LoRaWAN Lichtsteuerung
Milesight WS558 LoRaWAN Lichtsteuerung: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, 8 Schaltkanäle, Energiemessung und Downlink-Steuerung.
- LoRaWAN
- Class C, OTAA
- Band / Port
- EU868 / Port 85
- Schaltkanäle
- 8 (LN-Typ oder Schalter-Typ)
- Messung
- Spannung, Strom, Wirkleistung, Energie
- Lokale Steuerung
- Tasten am Gerät + Betrieb ohne Netz
- Konfiguration
- NFC (Milesight ToolBox)
- D2D
- Gerät-zu-Gerät-Steuerung ohne Gateway
Was misst der WS558?
8 Schaltkanäle
Unabhängiger EIN/AUS-Zustand für jeden der acht Lichtstromkreise, gepackt in ein Bitfeld.
Spannung
Netzspannung in Volt, als UINT16 mit Faktor /10 übertragen.
Wirkleistung
Gesamte Wirkleistung in Watt (UINT32).
Energieverbrauch
Kumulierte Energie in Wattstunden zur Abrechnung und Einsparungskontrolle.
Gesamtstrom & Leistungsfaktor
Gesamtstrom in mA und Leistungsfaktor in Prozent zur Lastdiagnose.
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++];
if (channel === 0x03 && type === 0x74) { // voltage (V)
data.voltage = readUInt16LE(bytes, i) / 10; i += 2;
} else if (channel === 0x04 && type === 0x80) { // active power (W)
data.active_power = readUInt32LE(bytes, i); i += 4;
} else if (channel === 0x05 && type === 0x81) { // power factor (%)
data.power_factor = bytes[i]; i += 1;
} else if (channel === 0x06 && type === 0x83) { // power consumption (Wh)
data.power_consumption = readUInt32LE(bytes, i); i += 4;
} else if (channel === 0x07 && type === 0xc9) { // total current (mA)
data.total_current = readUInt16LE(bytes, i); i += 2;
} else if (channel === 0x08 && type === 0x31) { // 8 switch states (bit flags)
var flags = bytes[i + 1];
for (var s = 0; s < 8; s++) {
data["switch_" + (s + 1)] = ((flags >> s) & 1) ? "on" : "off";
}
i += 2;
} else {
break;
}
}
return { data: data };
}
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;
}
Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation (Communication Protocol / User Guide).
Kanalformat: 03 74 Spannung (UINT16 little-endian, /10), 04 80 Wirkleistung (UINT32, W), 05 81 Leistungsfaktor (%), 06 83 Energieverbrauch (UINT32, Wh), 07 c9 Gesamtstrom (mA), 08 31 Schaltstatus, wobei das zweite Byte ein Bitfeld für die Schalter 1 bis 8 ist (Bit 0 = switch_1). Geräteinfo-Segmente auf Kanal 0xff (Version, Seriennummer, Class) und Downlink-Quittungen kommen separat; dieser Codec liest den periodischen Mess-Uplink. Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Für ThingsBoard wandert dieselbe Kanal-Logik in einen Uplink-Converter.
Uplink (hex)
0374FC080480960000000581620683A911000007C98C0208310003Decoded JSON
{ "voltage": 230, "active_power": 150, "power_factor": 98, "power_consumption": 4521, "total_current": 652, "switch_1": "on", "switch_2": "on", "switch_3": "off", "switch_4": "off", "switch_5": "off", "switch_6": "off", "switch_7": "off", "switch_8": "off" }Einsatzszenarien
Konfiguration & Stolpersteine
Class-C-Versorgung
Der WS558 hält sein Empfangsfenster für schnelles Downlink-Schalten offen und wird daher netzgespeist. Stabile Versorgung einplanen, kein Batteriebetrieb.
LN-Typ vs. Schalter-Typ
Die zur Verdrahtung passende Variante bestellen: Der LN-Typ schaltet die Last direkt, der Schalter-Typ ist ein potentialfreier Relaisausgang. Eine Verwechslung steuert die Lampen nicht.
Downlink-Schalten
Relais werden per Downlink auf demselben Port geschaltet. EIN/AUS- und Delay-Task-Befehle vor dem Rollout im Dashboard aufbauen und prüfen.
Energiezähler-Reset
power_consumption ist ein kumulierter Zähler. Differenzen im Dashboard bilden und Clear-Counter-Ereignisse speichern, damit die Auswertungen nachvollziehbar bleiben.
So unterstützt dich merkaio beim WS558
Von der Beschaffung bis zum laufenden Betrieb, alles aus einer Hand und auf eigener europäischer Infrastruktur.
Pre-Staging & Provisioning
Wir konfigurieren den WS558, 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.