Milesight WT101: LoRaWAN Smart-Heizkörperthermostat

Milesight WT101 LoRaWAN-Heizkörperthermostat: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, Ventilsteuerung, Fenster-offen-Erkennung.

Milesight WT101
WT101Sensor
LoRaWAN
Class A, OTAA/ABP
Temperaturbereich
-20 bis +60 °C, Genauigkeit +-0,5 °C
Ventilanschluss
M30 x 1,5 mm, Adapter für RA/RAV/RAVL/M28
Batterie
2x 1,5 V Li-FeS2 AA, bis zu 5 Jahre
Schutzart
IP30 (Innenbereich)
Heizpläne
1 Datumsperiode + bis zu 16 Zeitpläne
Konfiguration
NFC (Milesight ToolBox)
Messgrößen

Was misst der WT101?

Raumtemperatur

Integrierter Sensor, -20 bis +60 °C, 0,1 °C Auflösung; regelt das Ventil auf die Zieltemperatur.

Zieltemperatur

Sollwert, auf den geregelt wird, lokal, per Zeitplan oder per Downlink gesetzt.

Ventilöffnung

Aktuelle Position des Schrittmotor-Ventils in Prozent (0 bis 100 %).

Fenster-offen-Erkennung

Fenster-offen-Ereignis aus schnellem Temperaturabfall; pausiert die Heizung zur Energieeinsparung.

Manipulations- & Frostschutzstatus

Montage-/Demontagestatus (Tamper) und Frostschutz-Auslösung gegen eingefrorene Leitungen.

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) {   // room temperature (°C)
      data.temperature = readInt16LE(bytes, i) / 10; i += 2;
    } else if (channel === 0x04 && type === 0x67) {   // target temperature (°C)
      data.target_temperature = readInt16LE(bytes, i) / 10; i += 2;
    } else if (channel === 0x05 && type === 0x92) {   // valve opening (%)
      data.valve_opening = bytes[i]; i += 1;
    } else if (channel === 0x06 && type === 0x00) {   // tamper status
      data.tamper_status = bytes[i] === 1 ? "uninstalled" : "installed"; i += 1;
    } else if (channel === 0x07 && type === 0x00) {   // open-window detection
      data.window_detection = bytes[i] === 1 ? "open" : "normal"; i += 1;
    } else if (channel === 0x09 && type === 0x90) {   // motor stroke
      data.motor_stroke = readUInt16LE(bytes, i); i += 2;
    } else if (channel === 0x0a && type === 0x00) {   // freeze protection
      data.freeze_protection = bytes[i] === 1 ? "triggered" : "normal"; i += 1;
    } else if (channel === 0x0b && type === 0x90) {   // motor current position
      data.motor_position = readUInt16LE(bytes, i); i += 2;
    } else {
      break;
    }
  }
  return { data: data };
}

function readUInt16LE(b, i) {
  return ((b[i + 1] << 8) | b[i]) & 0xffff;
}
function readInt16LE(b, i) {
  var v = readUInt16LE(b, i);
  return v > 0x7fff ? v - 0x10000 : v;
}

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

Kanalformat: 01 75 Batterie (%), 03 67 Raumtemperatur (INT16 little-endian, /10), 04 67 Zieltemperatur (/10), 05 92 Ventilöffnung (%), 06 00 Tamper, 07 00 Fenster offen, 09 90 Motorhub, 0a 00 Frostschutz, 0b 90 Motorposition. Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Downlink-Antwort- und Heizplan-Frames (0xf8/0xf9/0xfe/0xff) treten erst nach der Konfiguration auf und lassen sich bei Bedarf ergänzen; für ThingsBoard wandert dieselbe Kanal-Logik in einen Uplink-Converter.

Uplink (hex)

0175640367CD000467DC0005923C070000

Decoded JSON

{ "battery": 100, "temperature": 20.5, "target_temperature": 22, "valve_opening": 60, "window_detection": "normal" }
Aus der Praxis

Konfiguration & Stolpersteine

NFC-Einrichtung

Keys, Sendeintervall, Heizpläne und Kindersicherung werden vor der Montage am Heizkörper per NFC mit der Milesight ToolBox gesetzt.

Ventilkalibrierung

Nach der Montage die Motorhub-Kalibrierung ausführen, damit das Gerät den Ventilweg lernt; eine fehlgeschlagene Kalibrierung wird gemeldet und das Ventil regelt dann nicht korrekt.

Fenster-offen-Strategie

Festlegen, ob das Ventil bei einem Fenster-offen-Ereignis seine Position hält oder schließt, und die Temperaturabfall-Schwelle anpassen, um Fehlauslösungen durch Zugluft zu vermeiden.

Offline-Steuermodus

Wählen, wie sich das Ventil bei LoRaWAN-Ausfall verhält: Position halten, eingebettete Temperaturregelung oder schließen. Explizit setzen, damit Räume bei einem Ausfall nicht überhitzen.

Dein Partner

So unterstützt dich merkaio beim WT101

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

Pre-Staging & Provisioning

Wir konfigurieren den WT101, 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 und keine Cloud nötig. Sie hinterlegen den Codec im Device-Profile und provisionieren das Gerät per OTAA.
Ja, für ChirpStack und ThingsBoard, implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Dieselbe Kanal-Logik wandert in einen ThingsBoard-Uplink-Converter.
Es ist ein Class-A-Gerät und unterstützt OTAA und ABP. Jeder periodische Uplink enthält Raumtemperatur, Zieltemperatur und Ventilöffnung; die Batterie wird mit dem Statusframe gemeldet.
Ja. Als Thermostat akzeptiert das WT101 Downlinks, um die Zieltemperatur zu setzen, den Regelmodus zu wechseln und Heizpläne zu übertragen, sodass Sie es aus dem Dashboard oder per Regel steuern können.
Das Gerät erkennt einen schnellen Temperaturabfall und meldet ein Fenster-offen-Ereignis. Sie konfigurieren, ob das Ventil seine Position hält oder schließt, was Energie spart, wenn im Winter ein Fenster geöffnet wird.
Es läuft mit zwei austauschbaren 1,5-V-Li-FeS2-AA-Zellen (insgesamt 3000 mAh) bis zu fünf Jahre, je nach Sendeintervall und wie oft der Motor verfährt.
Standardanschluss ist M30 x 1,5 mm. Adapter gibt es für RA, RAV, RAVL, Giacomini und M28 (Comap, Herz, TA), womit die meisten gängigen europäischen Heizkörper abgedeckt sind.
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.