// Décodeur LoRaWAN officiel : Milesight WS202 PIR & Light Sensor (Milesight) // Source : https://github.com/TheThingsNetwork/lorawan-devices/blob/master/vendor/milesight-iot/ws202.js // The Things Network Device Repository, fichier publié par le constructeur, distribué sans modification. // Format : decodeUplink(input) (TTN v3 / ChirpStack v4). Hébergé par smartbuildings.fr. function decodeUplink(input) { var res = Decoder(input.bytes, input.fPort); if (res.error) { return { errors: [res.error], }; } return { data: res, }; } /** * Payload Decoder for The Things Network * * Copyright 2021 Milesight IoT * * @product WS101 */ function Decoder(bytes, port) { var decoded = {}; for (var i = 0; i < bytes.length;) { var channel_id = bytes[i++]; var channel_type = bytes[i++]; // BATTERY if (channel_id === 0x01 && channel_type === 0x75) { decoded.battery = bytes[i]; i += 1; } // PIR else if (channel_id === 0x03 && channel_type === 0x00) { decoded.pir = bytes[i] === 0 ? "normal" : "trigger"; i += 1; } // LIGHT else if (channel_id === 0x04 && channel_type === 0x00) { decoded.light = bytes[i] === 0 ? "dark" : "light"; i += 1; } else { break; } } return decoded; }