Milesight GS101: LoRaWAN-Gasmelder für Wohnräume
Milesight GS101 LoRaWAN-Gasmelder: eigener ChirpStack/ThingsBoard-Decoder, dekodiertes Beispiel, Methan-Alarm, Ventil- und Relaissteuerung.
- LoRaWAN
- Class C, OTAA
- Band / Port
- EU868 / Port 85
- Zielgas
- Methan (CH4)
- Alarmschwelle
- 8 % UEG
- Lokaler Alarm
- 85 dB Summer + LED
- Ausgänge
- Relaisausgang + Magnetventilausgang
- Stromversorgung
- Netzbetrieb (Class C)
Was misst der GS101?
Gasstatus
Methan-Zustand (CH4): normal oder Alarm, ausgelöst an der konfigurierten UEG-Schwelle.
Ventilstatus
Zustand des Magnetventilausgangs (an/aus) zum Absperren der Gaszufuhr.
Relaisausgang
Relaiszustand (an/aus) zum Ansteuern von Lüftern oder externen Geräten.
Restlebensdauer
Zählerstand der Sensor-Lebensdauer, damit der Austausch vor Ablauf geplant werden kann.
Geräteereignisse
Alarm- und Reset-Ereignisse wie Ein/Aus, Gerätefehler und Lebensende.
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++];
// Gas status: 0 = normal, 1 = alarm
if (channel === 0x05 && type === 0x8e) {
data.gas_status = bytes[i] === 1 ? "alarm" : "normal"; i += 1;
// Solenoid valve output state
} else if (channel === 0x06 && type === 0x01) {
data.valve_status = bytes[i] === 1 ? "on" : "off"; i += 1;
// Relay output state
} else if (channel === 0x07 && type === 0x01) {
data.relay_output_status = bytes[i] === 1 ? "on" : "off"; i += 1;
// Remaining sensor life (UINT32 little-endian)
} else if (channel === 0x08 && type === 0x90) {
data.life_remain = readUInt32LE(bytes, i); i += 4;
// Device alarm/lifecycle event
} else if (channel === 0xff && type === 0x3f) {
data.alarm = readAlarm(bytes[i]); i += 1;
// Device info on join/power-on: skip protocol/hw/fw/SN/class fields
} else if (channel === 0xff) {
i += deviceInfoLen(type);
} else {
break;
}
}
return { data: data };
}
function readUInt32LE(b, i) {
return ((b[i+3]<<24)|(b[i+2]<<16)|(b[i+1]<<8)|b[i]) >>> 0;
}
function readAlarm(v) {
var map = { 0: "power off", 1: "power on", 2: "device fault",
3: "fault recovered", 4: "device invalid soon", 5: "device invalid" };
return map[v] !== undefined ? map[v] : v;
}
function deviceInfoLen(type) {
// 0xFF info fields: 0x01 version, 0x0f class, 0x0b status, 0xfe reset = 1 byte;
// 0x09 hw, 0x0a fw, 0xff tsl = 2 bytes; 0x16 serial number = 8 bytes
if (type === 0x09 || type === 0x0a || type === 0xff) return 2;
if (type === 0x16) return 8;
return 1;
}
Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation (Communication Protocol / User Guide).
Kanalformat: 05 8E Gasstatus (0 normal / 1 Alarm), 06 01 Ventilausgang (an/aus), 07 01 Relaisausgang (an/aus), 08 90 Restlebensdauer (UINT32 little-endian), FF 3F Geräte-Alarmereignis. FF-Kanäle beim Join/Einschalten enthalten Versions-, Klassen- und Seriennummern-Infos und werden über die Länge übersprungen. Implementiert nach der veröffentlichten Milesight-Byte-Spezifikation. Für ThingsBoard wandert dieselbe Kanal-Logik in einen Uplink-Converter.
Uplink (hex)
058E0006010107010108908A510100Decoded JSON
{ "gas_status": "normal", "valve_status": "on", "relay_output_status": "on", "life_remain": 86410 }Einsatzszenarien
Gassicherheit im Wohnbereich
Methanlecks in Wohnungen, Häusern und Hotels mit 85-dB-Alarm vor Ort erkennen.
Sicherheit im Smart Building
Remote-Leckmeldungen und automatische Ventilabschaltung über das Gebäude.
MehrÜberwachung im Gastgewerbe
Methanüberwachung in Küchen und Heizräumen mit sofortigem Dashboard-Alarm.
MehrKonfiguration & Stolpersteine
Class-C-Stromversorgung
Der GS101 hält sein Empfangsfenster für die Downlink-Steuerung von Ventil und Relais offen und wird daher per Netz versorgt. Eine dauerhafte Versorgung einplanen, keinen Batteriebetrieb.
Alarm-Uplinks haben Vorrang
Gasalarme werden sofort gesendet, außerhalb des Meldeintervalls. Dashboard-Regeln sollten gas_status-Alarm-Uplinks als priorisierte Ereignisse behandeln.
Sichere Zustände für Ventil und Relais
Vor dem Rollout festlegen, ob das Magnetventil bei Alarm schließt und welche Relaislogik gilt, damit die lokale Fail-safe-Funktion zum Sicherheitskonzept des Gebäudes passt.
Sensor-Lebensende
Der katalytische Sensor hat eine begrenzte Lebensdauer. Auf den life_remain-Zähler und die Lebensende-Ereignisse alarmieren, damit eine Einheit ersetzt wird, bevor sie nicht mehr schützt.
So unterstützt dich merkaio beim GS101
Von der Beschaffung bis zum laufenden Betrieb, alles aus einer Hand und auf eigener europäischer Infrastruktur.
Pre-Staging & Provisioning
Wir konfigurieren den GS101, 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.