Milesight WT101: LoRaWAN Smart-Heizkörperthermostat
Milesight WT101 LoRaWAN-Heizkörperthermostat: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, Ventilsteuerung, Fenster-offen-Erkennung.
- 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)
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.
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 === 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)
0175640367CD000467DC0005923C070000Decoded JSON
{ "battery": 100, "temperature": 20.5, "target_temperature": 22, "valve_opening": 60, "window_detection": "normal" }Einsatzszenarien
Heizungssteuerung im Büro
Raumweise Sollwerte und Zeitpläne senken Heizkosten ohne Komfortverlust.
MehrEnergieeinsparung im Gebäude
Mit Fensterkontakten kombinieren, um bei offenem Fenster die Heizung zu stoppen.
MehrHotellerie & Einzelhandel
Zonenweise Heizungssteuerung mit Kindersicherung für öffentliche Bereiche.
MehrKonfiguration & 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.
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
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.