Milesight TS201: LoRaWAN-Temperaturfühler (DS18B20)

Milesight TS201 LoRaWAN-Temperaturfühler (DS18B20): eigener ChirpStack/ThingsBoard-Decoder, Beispiel, Schwellwertalarme, Kühlketten-Integration.

Milesight TS201
TS201Sensor
LoRaWAN
v1.0.3 Class A, OTAA / ABP
Band / Port
EU868 / Port 85
Fühler
Steckbarer DS18B20, 1,5 m Kabel, 50 mm Spitze
Temperatur
-40 bis +125 °C, ±0,5 °C (-10 bis +85 °C)
Auflösung
0,1 °C
Lokaler Speicher
4000 Datensätze, Retransmission
Batterie
2700 mAh ER14505 Li-SOCl₂, bis zu ~9 Jahre
Messgrößen

Was misst der TS201?

Temperatur

Steckbarer DS18B20-Fühler, -40 bis +125 °C, übertragen als INT16 Little-Endian mit Faktor /10.

Batteriestand

Prozentwert, wird periodisch zusammen mit den Messwerten gemeldet.

Schwellwertalarm

Eigener Alarmkanal löst sofort aus, sobald ein konfigurierter Grenzwert überschritten wird.

Sprungalarm

Der Mutation-Kanal meldet einen plötzlichen Temperatursprung samt Höhe der Änderung.

Fühlerfehler-Status

Kanal B3 67 meldet einen Lesefehler oder einen Wert außerhalb des Bereichs, wenn der DS18B20-Fühler defekt oder abgesteckt ist.

Verlaufsdaten

Bis zu 4000 zeitgestempelte Datensätze werden im Gerät gespeichert und nach einem Ausfall nachgesendet.

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 === 0x03 && type === 0x67) {   // temperature (°C)
      data.temperature = readInt16LE(bytes, i) / 10; i += 2;
    } else if (channel === 0x83 && type === 0x67) {   // threshold alarm
      data.temperature = readInt16LE(bytes, i) / 10;
      data.temperature_alarm = readAlarm(bytes[i + 2]); i += 3;
    } else if (channel === 0x93 && type === 0x67) {   // abrupt change alarm
      data.temperature = readInt16LE(bytes, i) / 10;
      data.temperature_mutation = readInt16LE(bytes, i + 2) / 10;
      data.temperature_alarm = readAlarm(bytes[i + 4]); i += 5;
    } else if (channel === 0xb3 && type === 0x67) {   // probe sensor status
      data.temperature_sensor_status = readSensorStatus(bytes[i]); i += 1;
    } else if (channel === 0xff) {                     // device info (skip)
      break;
    } else {
      break;
    }
  }
  return { data: data };
}

function readInt16LE(b, i) {
  var v = (b[i + 1] << 8) | b[i];
  return v > 0x7fff ? v - 0x10000 : v;
}
function readAlarm(v) {
  var m = { 0: "threshold alarm release", 1: "threshold alarm", 2: "mutation alarm" };
  return m[v] !== undefined ? m[v] : v;
}
function readSensorStatus(v) {
  var m = { 0: "read error", 1: "out of range" };
  return m[v] !== undefined ? m[v] : v;
}

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

Kanalformat: 01 75 Batterie (%), 03 67 Temperatur (INT16 Little-Endian, /10). Alarm-Uplinks nutzen Kanal 83 67 (Schwellwert, +1-Byte-Alarmflag) und 93 67 (Sprung, +2-Byte-Sprungwert +1-Byte-Alarmflag); das Flag bedeutet 0 Schwellwert-Aufhebung, 1 Schwellwertalarm, 2 Sprungalarm. Kanal B3 67 meldet einen Fühlerfehler (0 Lesefehler, 1 außerhalb des Bereichs). Geräteinfo-Segmente auf Kanal FF (Version, Seriennummer) erscheinen im ersten Uplink nach dem Join; erweitere die Schleife, falls du sie speichern willst. Anhand der veröffentlichten Milesight-Byte-Spezifikation erstellt. Für ThingsBoard kommt dieselbe Kanallogik in einen Uplink-Converter.

Uplink (hex)

01756403671C01

Decoded JSON

{ "battery": 100, "temperature": 28.4 }
Aus der Praxis

Konfiguration & Stolpersteine

NFC-Einrichtung

Keys, Meldeintervall und Schwellwertalarme werden vor dem Rollout per NFC mit der Milesight-ToolBox-App gesetzt.

Steckbarer Fühler

Der DS18B20-Fühler lässt sich zur Selbstkalibrierung und zum Tausch abstecken. Notiere die Fühler-Seriennummer, damit ein Tausch im Dashboard nachvollziehbar bleibt.

Schwellwert- und Sprungalarme

Schwellwert (83 67) und Sprung (93 67) werden sofort außerhalb des Meldeintervalls gesendet. Behandle sie in Dashboard-Regeln als priorisierte Ereignisse.

Fühlerplatzierung

Halte das Sendergehäuse außerhalb der Kältezone und führe nur den 1,5 m langen Fühler hinein, damit Batterie und Funk in stabiler Temperatur bleiben.

Dein Partner

So unterstützt dich merkaio beim TS201

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

Pre-Staging & Provisioning

Wir konfigurieren den TS201, 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 v1.0.3 Class A, kein Milesight-Gateway oder Cloud nötig. Du fügst den Codec ins Device-Profil ein und provisionierst es per OTAA oder ABP.
Ja, für ChirpStack und ThingsBoard, umgesetzt anhand der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanallogik kommt in einen ThingsBoard-Uplink-Converter.
Die Temperaturversion nutzt einen steckbaren DS18B20-Fühler an einem 1,5 m langen Kabel mit 50 mm Edelstahl-316-Spitze in Lebensmittelqualität, Messbereich -40 bis +125 °C bei 0,1 °C Auflösung.
Er meldet auf LoRaWAN-Port 85. Jeder reguläre Uplink trägt den Temperaturwert; der Batteriestand wird mitgesendet, Alarme nutzen eigene Kanäle.
Der TS201 speichert bis zu 4000 zeitgestempelte Datensätze lokal und sendet sie nach Wiederkehr der Verbindung nach, sodass Kühlkettenprotokolle bei einem Gateway- oder Netzausfall lückenlos bleiben.
Ja. Er ist EN12830-zertifiziert für Kühlkettenanwendungen und nach IP67 geschützt, mit sofortigen Schwellwertalarmen für die HACCP-konforme Überwachung von Lebensmittel- und Pharmalagern.
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.