Milesight WS156: LoRaWAN E-Ink Szenen-Panel

Milesight WS156 LoRaWAN E-Ink Szenen-Panel: 6 Tasten, eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel und D2D-Szenensteuerung.

Milesight WS156
WS156Sensor
LoRaWAN
Class C, OTAA
Tasten
6 programmierbare Szenen-Tasten
Display
E-Ink, programmierbare Beschriftung/Icons
Steuermodi
LoRaWAN-Uplink oder Milesight D2D je Taste
Stromversorgung
Batterie oder USB-C
Montage
Wandmontage, Innenbereich IP30
Konfiguration
NFC / Milesight ToolBox
Messgrößen

Was misst der WS156?

Tastendruck

Meldet, welche der 6 Szenen-Tasten gedrückt wurde, auf Kanal FF Typ 34.

D2D-Befehl

Jede Taste enthält ein 16-Bit-D2D-Steuerwort zum Auslösen eines gekoppelten Milesight-Geräts.

Batteriestand

Batterie in Prozent auf Kanal 01 Typ 75 (UINT8).

Gerätestatus

Join-, Reset- und Versions-Frames auf Kanal FF für Inventar und Audit.

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 === 0xff && type === 0x34) {   // button press + D2D command
      var id = bytes[i];
      data["button_" + id] = 1;
      data["button_" + id + "_d2d"] = toHex16(readUInt16LE(bytes, i + 1));
      i += 3;
    } else if (channel === 0xff && type === 0x01) {   // protocol/IPSO version
      data.ipso_version = "v" + (bytes[i] >> 4) + "." + (bytes[i] & 0x0f); i += 1;
    } else if (channel === 0xff && type === 0x16) {   // serial number (8 bytes)
      data.sn = toHexStr(bytes, i, 8); i += 8;
    } else if (channel === 0xff && type === 0x0f) {   // LoRaWAN class
      data.lorawan_class = ["A", "B", "C", "CtoB"][bytes[i]] || "unknown"; i += 1;
    } else if (channel === 0xff && (type === 0x09 || type === 0x0a)) { // hw/fw version
      i += 2;
    } else if (channel === 0xff && (type === 0xfe || type === 0x0b)) { // reset / device status
      i += 1;
    } else {
      break;
    }
  }
  return { data: data };
}

function readUInt16LE(b, i) {
  return ((b[i + 1] << 8) | b[i]) & 0xffff;
}
function toHex16(v) {
  return "0x" + ("0000" + v.toString(16)).slice(-4);
}
function toHexStr(b, i, len) {
  var s = "";
  for (var k = 0; k < len; k++) s += ("0" + (b[i + k] & 0xff).toString(16)).slice(-2);
  return s;
}

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

Kanalformat: 01 75 Batterie (UINT8 %), FF 34 Tastendruck (1 Byte Tasten-ID + UINT16 Little-Endian D2D-Steuerwort). Geräteinfo-Frames auf Kanal FF (Version 01/09/0A, Seriennummer 16, Klasse 0F, Reset FE, Status 0B) erscheinen nach einem Join oder Power-on und werden anhand ihrer Länge übersprungen. Da jede Taste auf LoRaWAN oder Milesight D2D gestellt werden kann, löst eine Taste im D2D-Modus das gekoppelte Gerät direkt aus und erzeugt möglicherweise keinen normalen Uplink. Für ThingsBoard kommt dieselbe Kanallogik in einen Uplink-Converter. Umgesetzt nach der veröffentlichten Milesight-Byte-Spezifikation.

Uplink (hex)

017564FF3401C800

Decoded JSON

{ "battery": 100, "button_1": 1, "button_1_d2d": "0x00c8" }
Aus der Praxis

Konfiguration & Stolpersteine

Class-C-Strombudget

Als Class-C-Gerät hält das WS156 ein Empfangsfenster offen, daher ist die Batterielaufzeit kürzer als bei einem Class-A-Sensor. Für Dauerbetrieb USB-C-Strom verwenden.

Modus je Taste

Jede der 6 Tasten wird unabhängig auf LoRaWAN oder Milesight D2D gestellt. D2D-Tasten wirken lokal und lösen ggf. keinen Server-Uplink aus, das Monitoring entsprechend planen.

E-Ink-Beschriftung

Das E-Ink-Display wird per NFC mit der ToolBox programmiert. Labeltext und Szenen-Zuordnung im Dashboard synchron halten.

D2D-Kopplung

D2D nutzt ein 16-Bit-Steuerwort sowie eine gemeinsame Frequenz/Schlüssel. Jede Tasten-zu-Gerät-Kopplung dokumentieren, damit Szenen nachvollziehbar bleiben.

Dein Partner

So unterstützt dich merkaio beim WS156

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

Pre-Staging & Provisioning

Wir konfigurieren den WS156, 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 erforderlich. Sie hinterlegen den Codec im Device-Profil und provisionieren das Gerät per OTAA.
Ja, für ChirpStack und ThingsBoard, umgesetzt nach der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanallogik kommt in einen ThingsBoard-Uplink-Converter.
Es ist ein Class-C-Gerät, hält also ein Empfangsfenster offen und akzeptiert Downlinks. Für Panels im Dauerbetrieb USB-C-Strom einplanen, da Class C mehr Strom zieht als ein Class-A-Sensor.
Auf Kanal FF Typ 34 meldet das Panel die gedrückte Tasten-ID sowie ein 16-Bit-D2D-Steuerwort. Tasten im LoRaWAN-Modus erzeugen einen normalen Uplink, Tasten im D2D-Modus lösen das gekoppelte Gerät direkt aus.
Ja. Über Milesight D2D kann jede Taste ein gekoppeltes Gerät wie einen Lichtcontroller oder ein Relais direkt auslösen, ohne über den Netzwerkserver zu laufen.
Szenen-Labels und Icons werden vor dem Rollout per NFC mit der Milesight ToolBox App programmiert, damit die aufgedruckten Beschriftungen zur jeweils ausgelösten Szene passen.
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.