From b9d0ddc294149aaa4cf58e87eae1122594c0db50 Mon Sep 17 00:00:00 2001 From: Mateus Silva Date: Mon, 3 Jun 2024 15:18:07 -0300 Subject: [PATCH] feat: Add Browan/Digital Matter sensor decoders --- .../browan/ambient-light/assets/logo.png | Bin 0 -> 30576 bytes .../browan/ambient-light/connector.jsonc | 13 + .../browan/ambient-light/description.md | 1 + .../ambient-light/v1.0.0/payload-config.jsonc | 25 ++ .../browan/ambient-light/v1.0.0/payload.js | 26 ++ .../door-and-window-sensor/assets/logo.png | Bin 0 -> 22799 bytes .../door-and-window-sensor/connector.jsonc | 13 + .../door-and-window-sensor/description.md | 1 + .../v1.0.0/payload-config.jsonc | 25 ++ .../door-and-window-sensor/v1.0.0/payload.js | 113 +++++++++ .../healthy-home-sensor-iaq/assets/logo.png | Bin 0 -> 59545 bytes .../healthy-home-sensor-iaq/connector.jsonc | 13 + .../healthy-home-sensor-iaq/description.md | 1 + .../v1.0.0/payload-config.jsonc | 25 ++ .../healthy-home-sensor-iaq/v1.0.0/payload.js | 46 ++++ .../browan/industrial-tracker/assets/logo.png | Bin 0 -> 58552 bytes .../browan/industrial-tracker/connector.jsonc | 13 + .../browan/industrial-tracker/description.md | 1 + .../v1.0.0/payload-config.jsonc | 25 ++ .../industrial-tracker/v1.0.0/payload.js | 80 ++++++ .../browan/motion-sensor/assets/logo.png | Bin 0 -> 36923 bytes .../browan/motion-sensor/connector.jsonc | 13 + .../browan/motion-sensor/description.md | 1 + .../motion-sensor/v1.0.0/payload-config.jsonc | 25 ++ .../browan/motion-sensor/v1.0.0/payload.js | 113 +++++++++ .../browan/object-locator/assets/logo.png | Bin 0 -> 36749 bytes .../browan/object-locator/connector.jsonc | 13 + .../browan/object-locator/description.md | 1 + .../v1.0.0/payload-config.jsonc | 25 ++ .../browan/object-locator/v1.0.0/payload.js | 56 +++++ .../browan/sound-level/assets/logo.png | Bin 0 -> 54194 bytes .../browan/sound-level/connector.jsonc | 13 + .../browan/sound-level/description.md | 1 + .../sound-level/v1.0.0/payload-config.jsonc | 25 ++ .../browan/sound-level/v1.0.0/payload.js | 24 ++ .../assets/logo.png | Bin 0 -> 35053 bytes .../connector.jsonc | 13 + .../description.md | 1 + .../v1.0.0/payload-config.jsonc | 25 ++ .../v1.0.0/payload.js | 102 ++++++++ .../browan/water-leak/assets/logo.png | Bin 0 -> 30576 bytes .../browan/water-leak/connector.jsonc | 13 + .../browan/water-leak/description.md | 1 + .../water-leak/v1.0.0/payload-config.jsonc | 25 ++ .../browan/water-leak/v1.0.0/payload.js | 29 +++ .../matter-falcon/assets/logo.png | Bin 0 -> 27380 bytes .../matter-falcon/connector.jsonc | 13 + .../matter-falcon/description.md | 1 + .../matter-falcon/v1.0.0/payload-config.jsonc | 11 + .../matter-falcon/v1.0.0/payload.js | 199 +++++++++++++++ .../matter-yabby-edge/assets/logo.png | Bin 0 -> 29542 bytes .../matter-yabby-edge/connector.jsonc | 13 + .../matter-yabby-edge/description.md | 1 + .../v1.0.0/payload-config.jsonc | 25 ++ .../matter-yabby-edge/v1.0.0/payload.js | 233 ++++++++++++++++++ 55 files changed, 1436 insertions(+) create mode 100644 decoders/connector/browan/ambient-light/assets/logo.png create mode 100644 decoders/connector/browan/ambient-light/connector.jsonc create mode 100644 decoders/connector/browan/ambient-light/description.md create mode 100644 decoders/connector/browan/ambient-light/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/ambient-light/v1.0.0/payload.js create mode 100644 decoders/connector/browan/door-and-window-sensor/assets/logo.png create mode 100644 decoders/connector/browan/door-and-window-sensor/connector.jsonc create mode 100644 decoders/connector/browan/door-and-window-sensor/description.md create mode 100644 decoders/connector/browan/door-and-window-sensor/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/door-and-window-sensor/v1.0.0/payload.js create mode 100644 decoders/connector/browan/healthy-home-sensor-iaq/assets/logo.png create mode 100644 decoders/connector/browan/healthy-home-sensor-iaq/connector.jsonc create mode 100644 decoders/connector/browan/healthy-home-sensor-iaq/description.md create mode 100644 decoders/connector/browan/healthy-home-sensor-iaq/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/healthy-home-sensor-iaq/v1.0.0/payload.js create mode 100644 decoders/connector/browan/industrial-tracker/assets/logo.png create mode 100644 decoders/connector/browan/industrial-tracker/connector.jsonc create mode 100644 decoders/connector/browan/industrial-tracker/description.md create mode 100644 decoders/connector/browan/industrial-tracker/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/industrial-tracker/v1.0.0/payload.js create mode 100644 decoders/connector/browan/motion-sensor/assets/logo.png create mode 100644 decoders/connector/browan/motion-sensor/connector.jsonc create mode 100644 decoders/connector/browan/motion-sensor/description.md create mode 100644 decoders/connector/browan/motion-sensor/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/motion-sensor/v1.0.0/payload.js create mode 100644 decoders/connector/browan/object-locator/assets/logo.png create mode 100644 decoders/connector/browan/object-locator/connector.jsonc create mode 100644 decoders/connector/browan/object-locator/description.md create mode 100644 decoders/connector/browan/object-locator/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/object-locator/v1.0.0/payload.js create mode 100644 decoders/connector/browan/sound-level/assets/logo.png create mode 100644 decoders/connector/browan/sound-level/connector.jsonc create mode 100644 decoders/connector/browan/sound-level/description.md create mode 100644 decoders/connector/browan/sound-level/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/sound-level/v1.0.0/payload.js create mode 100644 decoders/connector/browan/temperature-humidity-sensor/assets/logo.png create mode 100644 decoders/connector/browan/temperature-humidity-sensor/connector.jsonc create mode 100644 decoders/connector/browan/temperature-humidity-sensor/description.md create mode 100644 decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload.js create mode 100644 decoders/connector/browan/water-leak/assets/logo.png create mode 100644 decoders/connector/browan/water-leak/connector.jsonc create mode 100644 decoders/connector/browan/water-leak/description.md create mode 100644 decoders/connector/browan/water-leak/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/browan/water-leak/v1.0.0/payload.js create mode 100644 decoders/connector/digital-matter/matter-falcon/assets/logo.png create mode 100644 decoders/connector/digital-matter/matter-falcon/connector.jsonc create mode 100644 decoders/connector/digital-matter/matter-falcon/description.md create mode 100644 decoders/connector/digital-matter/matter-falcon/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/digital-matter/matter-falcon/v1.0.0/payload.js create mode 100644 decoders/connector/digital-matter/matter-yabby-edge/assets/logo.png create mode 100644 decoders/connector/digital-matter/matter-yabby-edge/connector.jsonc create mode 100644 decoders/connector/digital-matter/matter-yabby-edge/description.md create mode 100644 decoders/connector/digital-matter/matter-yabby-edge/v1.0.0/payload-config.jsonc create mode 100644 decoders/connector/digital-matter/matter-yabby-edge/v1.0.0/payload.js diff --git a/decoders/connector/browan/ambient-light/assets/logo.png b/decoders/connector/browan/ambient-light/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1da97d7e2a9fd8af034b03963538fd20ee2cfb90 GIT binary patch literal 30576 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 QJ^%m!07*qoM6N<$g2t8~6951J literal 0 HcmV?d00001 diff --git a/decoders/connector/browan/ambient-light/connector.jsonc b/decoders/connector/browan/ambient-light/connector.jsonc new file mode 100644 index 00000000..17627772 --- /dev/null +++ b/decoders/connector/browan/ambient-light/connector.jsonc @@ -0,0 +1,13 @@ +{ + "$schema": "../../../../schema/connector.json", + "name": "Browan Ambient Light", + "images": { + "logo": "./assets/logo.png" + }, + "versions": { + "v1.0.0": { + "src": "./v1.0.0/payload.js", + "manifest": "./v1.0.0/payload-config.jsonc" + } + } +} diff --git a/decoders/connector/browan/ambient-light/description.md b/decoders/connector/browan/ambient-light/description.md new file mode 100644 index 00000000..79ce1373 --- /dev/null +++ b/decoders/connector/browan/ambient-light/description.md @@ -0,0 +1 @@ +Ambient Light Intensity sensor over LoRaWAN™ \ No newline at end of file diff --git a/decoders/connector/browan/ambient-light/v1.0.0/payload-config.jsonc b/decoders/connector/browan/ambient-light/v1.0.0/payload-config.jsonc new file mode 100644 index 00000000..2cab6e0f --- /dev/null +++ b/decoders/connector/browan/ambient-light/v1.0.0/payload-config.jsonc @@ -0,0 +1,25 @@ +{ + "$schema": "../../../../../schema/connector_details.json", + "description": "../description.md", + "install_text": "The Tabs Ambient Light Sensor utilizes LoRaWAN connectivity to provide measurements of ambient light intensity which matches the human eye's response to light under a variety of lighting conditions.\n\n**Specifications**\n* Size: 50 x 20 x 50 mm\n* Weight: 30g without battery, 40g with battery\n* Sensors: Temperature, Humidity and Water leak detection\n* Temperature: 0°C to +50°C\n* IP Rating: IP 40 equivalent\n* Power Source: 3.6V 1/2 AA Li-SOCl2 1200mAh battery\n* Frequency: 863-870MHz for EU, 902-928MHz for North America\n* Tx Power: US: +19dBm, EU: +17dBm\n* Rx Sensitivity: -135dBm\n* Antenna Gain: -2dBi Peak, -5dBi Avg", + "install_end_text": "", + "device_annotation": "", + "device_parameters": [], + "networks": [ + "../../../../network/lorawan-actility/v1.0.0/payload.js", + "../../../../network/lorawan-chirpstack/v1.0.0/payload.js", + "../../../../network/lorawan-citykinect/v1.0.0/payload.js", + "../../../../network/lorawan-everynet/v1.0.0/payload.js", + "../../../../network/lorawan-helium/v1.0.0/payload.js", + "../../../../network/lorawan-kerlink/v1.0.0/payload.js", + "../../../../network/lorawan-loriot-/v1.0.0/payload.js", + "../../../../network/lorawan-machineq/v1.0.0/payload.js", + "../../../../network/lorawan-orbiwise/v1.0.0/payload.js", + "../../../../network/lorawan-senet/v1.0.0/payload.js", + "../../../../network/lorawan-senra/v1.0.0/payload.js", + "../../../../network/lorawan-swisscom/v1.0.0/payload.js", + "../../../../network/lorawan-tektelic/v1.0.0/payload.js", + "../../../../network/lorawan-ttittn-v3/v1.0.0/payload.js", + "../../../../network/lorawan-brdot-/v1.0.0/payload.js" + ] +} \ No newline at end of file diff --git a/decoders/connector/browan/ambient-light/v1.0.0/payload.js b/decoders/connector/browan/ambient-light/v1.0.0/payload.js new file mode 100644 index 00000000..b3b06264 --- /dev/null +++ b/decoders/connector/browan/ambient-light/v1.0.0/payload.js @@ -0,0 +1,26 @@ +function Decoder(bytes, port) { + const decoded = []; + if (port === 104) { + // STATUS + decoded.push({ variable: "darker", value: bytes[0] & 0x01 }); + decoded.push({ variable: "lighter", value: (bytes[0] >> 1) & 0x01 }); + decoded.push({ variable: "status_change", value: (bytes[0] >> 4) & 0x01 }); + decoded.push({ variable: "keep_alive", value: (bytes[0] >> 5) & 0x01 }); + // BATTERY + decoded.push({ variable: "battery", value: (25 + (bytes.readUInt8(1) & 0x0f)) / 10, unit: "V" }); + // TEMPERATURE + decoded.push({ variable: "temperature", value: (bytes.readUInt8(2) & 0x7f) - 32, unit: "°C" }); + // LUX + decoded.push({ variable: "lux", value: bytes.readUIntLE(3, 3) / 100, unit: "lux" }); + } + + return decoded; +} + +const data = payload.find((x) => x.variable === "payload" || x.variable === "payload_raw" || x.variable === "data"); +const port = payload.find((x) => x.variable === "port" || x.variable === "fport"); +if (data && port) { + const serie = data.serie || new Date().getTime(); + const bytes = Buffer.from(data.value, "hex"); + payload = payload.concat(Decoder(bytes, Number(port.value))).map((x) => ({ ...x, serie })); +} diff --git a/decoders/connector/browan/door-and-window-sensor/assets/logo.png b/decoders/connector/browan/door-and-window-sensor/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bde59fcf9c8dda6900d6ff8a49df593da2711deb GIT binary patch literal 22799 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

|Bf^dLhsUZ*qdfiQa^kPsqJZ; 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 0).toString(2); + return '00000000'.substr(binary.length) + binary; +} + +// Decode an uplink message from an array of bytes to an object of fields +function Decoder(bytes, port) { + // Decode an uplink message from a buffer + // (array) of bytes to an object of fields. + const decoded = {}; + + if (bytes == null) { return null; } + + if (port === 100) { + // parse status + decoded.status = { + value: parseInt(dec2bin(bytes[0]).substr(7, 1), 2), + }; + + // parse battery voltage + decoded.battery_voltage = { + value: Number((25 + parseInt(dec2bin(bytes[1]).substr(0, 4), 2)) / 10).toFixed(1), + unit: 'V', + }; + + // parse battery capacity + decoded.battery_capacity = { + value: Number(100 * parseInt(dec2bin(bytes[1]).substr(4), 2) / 15).toFixed(1), + unit: '%', + }; + + // parse temperature + decoded.temperature = { + value: bytes.readUInt8(2) - 32, + unit: '°C', + }; + + decoded.time_elapsed = bytes.readUInt16LE(3); + + decoded.count = bytes.readUIntLE(5, 3); + } else { + return null; + } + + return decoded; +} + +let data = payload.find(x => x.variable === 'data' || x.variable === 'payload'); +let port = payload.find(x => x.variable === 'port'); +if (data && port) { + port = Number(port.value); + const serie = data.serie || new Date().getTime(); + data = data.value; + const vars_to_tago = Decoder(Buffer.from(data, 'hex'), port); + + payload = [...payload, ...toTagoFormat(vars_to_tago, serie)]; + payload = payload.filter(x => !ignore_vars.includes(x.variable)); +} diff --git a/decoders/connector/browan/healthy-home-sensor-iaq/assets/logo.png b/decoders/connector/browan/healthy-home-sensor-iaq/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dc01d89e193f55d041fdf7fa0e18bfb9d8a69845 GIT binary patch literal 59545 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

+^-DVJ@xm&}!d!ol zXisvBMW8~`kn2*wrPPFfd}G!3&Zmg(@GV5V_|+{D(n~@Sn;8=koegRvv!%pm#u8X* z1t)!M;*kbPP|0PA+93eGbfQHF_u;0C*EEvy3&0iWZZ>h-Yx^^W0rcWwMk*& z>KOsBh7mTO+w1{8uFnN&+h$w21E+}t6^A7hOfDE2B`~CU+UAkR)^uau%%zz8v44+* zNmldDzIHs>kaLPjBOdAP#_)Q!mzS-orV@EJ1*p!C@U3bT%ir$>1;FnFySwp*GaPM7 z^(g6RnG4@=dWa-!8y~R#uE`eA9TJVu4;CE2p@f33z#jb00*ddPf)=mK<5o-X&5S<_NEw(Tw> 3) & 0x01) ? "Temperature and Humidity sensor" : "IAQ Sensor" }); + decoded.push({ variable: "status_temperature_change", value: (bytes[0] >> 4) & 0x01 }); + decoded.push({ variable: "status_humidity_change", value: (bytes[0] >> 5) & 0x01 }); + decoded.push({ variable: "status_iaq_change", value: (bytes[0] >> 6) & 0x01 }); + // battery -- byte 1 (1 to 14) + if ([0, 15].includes(bytes[1] & 0x0F)) return [{ variable: "parse_error", value: "Parser error: Battery must be between 2.6 and 3.9 V" }]; + decoded.push({ variable: "battery", value: (25 + (bytes[1] & 0x0F)) / 10, unit: "V" }); + // temp (pcb) -- byte 2 + decoded.push({ variable: "board_temperature", value: (bytes[2] & 0x7F) - 32, unit: "°C" }); + // rh -- byte 3 (max 100) + if ((bytes[3] & 0x7F) > 100) return [{ variable: "parse_error", value: "Parser error: Max value for humidity is 100%" }]; + decoded.push({ variable: "humidity", value: bytes[3] & 0x7F, unit: "%" }); + // co2 -- bytes 4, 5 + decoded.push({ variable: "eco2", value: bytes.readUInt16BE(4), unit: "ppm" }); + // voc -- bytes 6, 7 + decoded.push({ variable: "voc", value: bytes.readUInt16BE(6), unit: "ppm" }); + // iaq -- bytes 8, 9 (0 to 500) + if (bytes.readUInt16BE(8) > 500) return [{ variable: "parse_error", value: "Parser error: Max value for IAQ is 500" }]; + decoded.push({ variable: "iaq", value: bytes.readUInt16BE(8) }); + // environment temp -- byte 10 + decoded.push({ variable: "environment_temperature", value: (bytes[10] & 0x7F) - 32, unit: "°C" }); + + + return decoded; +} + +// let payload = [{ variable: "payload", value: "790a2a5f2744274427442a" }, { variable: "port", value: "103" }]; +// let payload = [{ variable: "payload", value: "79ffffffffffffffffffff" }, { variable: "port", value: "103" }]; + +const data = payload.find((item) => item.variable === "data" || item.variable === "payload" || item.variable === "payload_raw" ); +const port = payload.find((item) => item.variable === "port" || item.variable === "fport" ); + +if (data) { + const bytes = Buffer.from(data.value, "hex"); + const serie = new Date().getTime(); + payload = payload.concat(Decoder(bytes, Number(port.value))).map((x) => ({ ...x, serie })); +} + +// console.log(payload); \ No newline at end of file diff --git a/decoders/connector/browan/industrial-tracker/assets/logo.png b/decoders/connector/browan/industrial-tracker/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f0e6bcf26efe2497961a077103f6ca82180e9127 GIT binary patch literal 58552 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 3) }); + decoded.push({ + variable: "temperature", + value: (bytes.readUInt8(2) & 0x7f) - 32, + unit: "°C", + }); + + const battery = bytes[1]; + // const capacity = battery >> 4; + const voltage = battery & 0x0f; + decoded.push({ + variable: "battery", + value: (25 + voltage) / 10, + unit: "V", + }); + + let accuracy = bytes[10] >> 5; + accuracy = Math.pow(2, parseInt(accuracy) + 2); + + decoded.push({ variable: "accuracy", value: accuracy, unit: "m" }); + + // Mask off end of accuracy byte, so lon doesn't get affected + bytes[10] &= 0x1f; + + if ((bytes[10] & (1 << 4)) !== 0) { + bytes[10] |= 0xe0; + } + + // Mask off end of lat byte, RFU + //bytes[6] &= 0x0f; + + let lat = (bytes[6] << 24) | (bytes[5] << 16) | (bytes[4] << 8) | bytes[3]; + let lon = (bytes[10] << 24) | (bytes[9] << 16) | (bytes[8] << 8) | bytes[7]; + + if (lat > 134217727) { + lat = lat - 268435456; + } + + lat /= 1000000; + lon /= 1000000; + + decoded.push({ + variable: "location", + value: `${lat},${lon}`, + location: { lat, lng: lon }, + }); + + return decoded; + } +} + +const data = payload.find( + (x) => + x.variable === "payload" || + x.variable === "payload_raw" || + x.variable === "data" +); +const port = payload.find( + (x) => x.variable === "port" || x.variable === "fport" +); +if (data && port) { + const serie = data.serie || new Date().getTime(); + const bytes = Buffer.from(data.value, "hex"); + payload = payload + .concat(Decoder(bytes, Number(port.value))) + .map((x) => ({ ...x, serie })); +} diff --git a/decoders/connector/browan/motion-sensor/assets/logo.png b/decoders/connector/browan/motion-sensor/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ffa98fbe87fae3d61dec5235e0d5f5dfa65f2f GIT binary patch literal 36923 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 evHQR9_WuEcz57EUFB~)g0000>> 0).toString(2); + return '00000000'.substr(binary.length) + binary; +} + +// Decode an uplink message from an array of bytes to an object of fields +function Decoder(bytes, port) { + // Decode an uplink message from a buffer + // (array) of bytes to an object of fields. + const decoded = {}; + + if (bytes == null) { return null; } + + if (port === 102) { + // parse status + decoded.status = { + value: parseInt(dec2bin(bytes[0]).substr(7, 1), 2), + }; + + // parse battery voltage + decoded.battery_voltage = { + value: Number((25 + parseInt(dec2bin(bytes[1]).substr(0, 4), 2)) / 10).toFixed(1), + unit: 'V', + }; + + // parse battery capacity + decoded.battery_capacity = { + value: Number(100 * parseInt(dec2bin(bytes[1]).substr(4), 2) / 15).toFixed(1), + unit: '%', + }; + + // parse temperature + decoded.temperature = { + value: bytes.readUInt8(2) - 32, + unit: '°C', + }; + + decoded.time_elapsed = bytes.readUInt16LE(3); + + decoded.count = bytes.readUIntLE(5, 3); + } else { + return null; + } + + return decoded; +} + +let data = payload.find(x => x.variable === 'data' || x.variable === 'payload'); +let port = payload.find(x => x.variable === 'port'); +if (data && port) { + port = Number(port.value); + const serie = data.serie || new Date().getTime(); + data = data.value; + const vars_to_tago = Decoder(Buffer.from(data, 'hex'), port); + + payload = [...payload, ...toTagoFormat(vars_to_tago, serie)]; + payload = payload.filter(x => !ignore_vars.includes(x.variable)); +} diff --git a/decoders/connector/browan/object-locator/assets/logo.png b/decoders/connector/browan/object-locator/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..01c25cc206266031852b9ccc98a6083d4c8637c7 GIT binary patch literal 36749 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 KC2GWgLH`5#@*GwG literal 0 HcmV?d00001 diff --git a/decoders/connector/browan/object-locator/connector.jsonc b/decoders/connector/browan/object-locator/connector.jsonc new file mode 100644 index 00000000..d2aaee0d --- /dev/null +++ b/decoders/connector/browan/object-locator/connector.jsonc @@ -0,0 +1,13 @@ +{ + "$schema": "../../../../schema/connector.json", + "name": "Browan Object Locator", + "images": { + "logo": "./assets/logo.png" + }, + "versions": { + "v1.0.0": { + "src": "./v1.0.0/payload.js", + "manifest": "./v1.0.0/payload-config.jsonc" + } + } +} diff --git a/decoders/connector/browan/object-locator/description.md b/decoders/connector/browan/object-locator/description.md new file mode 100644 index 00000000..78d73f2e --- /dev/null +++ b/decoders/connector/browan/object-locator/description.md @@ -0,0 +1 @@ +Object Locator over LoRaWAN™ \ No newline at end of file diff --git a/decoders/connector/browan/object-locator/v1.0.0/payload-config.jsonc b/decoders/connector/browan/object-locator/v1.0.0/payload-config.jsonc new file mode 100644 index 00000000..1b0a3275 --- /dev/null +++ b/decoders/connector/browan/object-locator/v1.0.0/payload-config.jsonc @@ -0,0 +1,25 @@ +{ + "$schema": "../../../../../schema/connector_details.json", + "description": "../description.md", + "install_text": "The Tabs Object Locator utilizes LoRaWAN connectivity to communicate the location of the device. The intended use is to attach the sensor to an object like a backpack or a purse to be able to remotely know its location. The sensor is composed of a GNSS receive, a push button, an LED indicator, and a USB-C connector. The device contains a LiPo battery that can be recharged through the USB-C connector. \n\n**Specifications**\n* Size: 50 x 13 x 50mm\n* Weight: 28g\n* Sensors: GNSS, 3D MEMs accelerometer, Push Button\n* Temperature: 0°C to +50°C\n* IP Rating: IP 64 equivalent\n* Power Source: 4.2V LiPo 540mAh battery\n* Frequency: 863-870MHz for EU, 902-928MHz for North America\n* Tx Power: +19dBm conducted\n* Rx Sensitivity: -140dBm conducted\n* Antenna Gain: -5dBi Peak, -8dBi Avg", + "install_end_text": "", + "device_annotation": "", + "device_parameters": [], + "networks": [ + "../../../../network/lorawan-actility/v1.0.0/payload.js", + "../../../../network/lorawan-chirpstack/v1.0.0/payload.js", + "../../../../network/lorawan-citykinect/v1.0.0/payload.js", + "../../../../network/lorawan-everynet/v1.0.0/payload.js", + "../../../../network/lorawan-helium/v1.0.0/payload.js", + "../../../../network/lorawan-kerlink/v1.0.0/payload.js", + "../../../../network/lorawan-tektelic/v1.0.0/payload.js", + "../../../../network/lorawan-swisscom/v1.0.0/payload.js", + "../../../../network/lorawan-senra/v1.0.0/payload.js", + "../../../../network/lorawan-senet/v1.0.0/payload.js", + "../../../../network/lorawan-orbiwise/v1.0.0/payload.js", + "../../../../network/lorawan-machineq/v1.0.0/payload.js", + "../../../../network/lorawan-loriot-/v1.0.0/payload.js", + "../../../../network/lorawan-ttittn-v3/v1.0.0/payload.js", + "../../../../network/lorawan-brdot-/v1.0.0/payload.js" + ] +} \ No newline at end of file diff --git a/decoders/connector/browan/object-locator/v1.0.0/payload.js b/decoders/connector/browan/object-locator/v1.0.0/payload.js new file mode 100644 index 00000000..157b00e2 --- /dev/null +++ b/decoders/connector/browan/object-locator/v1.0.0/payload.js @@ -0,0 +1,56 @@ +/* eslint-disable no-bitwise */ +/* eslint-disable no-restricted-properties */ +function Decoder(bytes, port) { + const decoded = []; + if (port === 136) { + // STATUS + decoded.push({ variable: "button_trigger_event", value: bytes[0] & 1 }); + decoded.push({ variable: "no_gnss_fix", value: (bytes[0] & 0x0f) >> 3 }); + // BATTERY + const battery_level = bytes.readUInt8(1); + decoded.push({ variable: "battery", value: (25 + (battery_level & 0x0f)) / 10, unit: "V" }); + decoded.push({ variable: "remaining_battery_capacity", value: Number((100 * ((battery_level >> 4) / 15)).toPrecision(4)), unit: "%" }); + // TEMPERATURE + decoded.push({ variable: "temperature", value: (bytes.readUInt8(2) & 0x7f) - 32, unit: "°C" }); + + // LOCATION + // GNSS Fix? + let positionGnssFix = false; + if ((bytes[0] & 0x8) === 0) { + positionGnssFix = true; + } + + // Accuracy Measurement + let positionAccuracy = bytes[10] >> 5; + positionAccuracy = Math.pow(2, parseInt(positionAccuracy) + 2); + + // Mask off end of accuracy byte, so longitude doesn't get affected + bytes[10] &= 0x1f; + + if ((bytes[10] & (1 << 4)) !== 0) { + bytes[10] |= 0xe0; + } + + // Mask off end of latitude byte, RFU + bytes[6] &= 0x0f; + + // Latitude and Longitude Measurement + let positionLatitude = (bytes[6] << 24) | (bytes[5] << 16) | (bytes[4] << 8) | bytes[3]; + let positionLongitude = (bytes[10] << 24) | (bytes[9] << 16) | (bytes[8] << 8) | bytes[7]; + positionLatitude /= 1000000; + positionLongitude /= 1000000; + + decoded.push({ variable: "location", value: `${positionLatitude},${positionLongitude}`, location: { lat: positionLatitude, lng: positionLongitude } }); + decoded.push({ variable: "accuracy", value: positionAccuracy, unit: "m" }); + } + + return decoded; +} + +const data = payload.find((x) => x.variable === "payload" || x.variable === "payload_raw" || x.variable === "data"); +const port = payload.find((x) => x.variable === "port" || x.variable === "fport"); +if (data && port) { + const serie = data.serie || new Date().getTime(); + const bytes = Buffer.from(data.value, "hex"); + payload = payload.concat(Decoder(bytes, Number(port.value))).map((x) => ({ ...x, serie })); +} diff --git a/decoders/connector/browan/sound-level/assets/logo.png b/decoders/connector/browan/sound-level/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ae391524a8c89f35f8cd6d707e9af1650cbe40 GIT binary patch literal 54194 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 z

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%0A&f{uhRp7Of`uqwrUS@(h%8wGvHD}} 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 x.variable === "payload" || x.variable === "payload_raw" || x.variable === "data"); +const port = payload.find((x) => x.variable === "port" || x.variable === "fport"); +if (data && port) { + const serie = data.serie || new Date().getTime(); + const bytes = Buffer.from(data.value, "hex"); + payload = payload.concat(Decoder(bytes, Number(port.value))).map((x) => ({ ...x, serie })); +} diff --git a/decoders/connector/browan/temperature-humidity-sensor/assets/logo.png b/decoders/connector/browan/temperature-humidity-sensor/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b646a020aaef02e9834a3c8886102c00fceb61f9 GIT binary patch literal 35053 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

MMe{+6kswwN?Ff)we4yS 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 literal 0 HcmV?d00001 diff --git a/decoders/connector/browan/temperature-humidity-sensor/connector.jsonc b/decoders/connector/browan/temperature-humidity-sensor/connector.jsonc new file mode 100644 index 00000000..f3974792 --- /dev/null +++ b/decoders/connector/browan/temperature-humidity-sensor/connector.jsonc @@ -0,0 +1,13 @@ +{ + "$schema": "../../../../schema/connector.json", + "name": "Browan Temperature & Humidity Sensor", + "images": { + "logo": "./assets/logo.png" + }, + "versions": { + "v1.0.0": { + "src": "./v1.0.0/payload.js", + "manifest": "./v1.0.0/payload-config.jsonc" + } + } +} diff --git a/decoders/connector/browan/temperature-humidity-sensor/description.md b/decoders/connector/browan/temperature-humidity-sensor/description.md new file mode 100644 index 00000000..74d29316 --- /dev/null +++ b/decoders/connector/browan/temperature-humidity-sensor/description.md @@ -0,0 +1 @@ +Tabs Temperature & humidity sensor designed for in-home and in-building over LoRaWAN™ \ No newline at end of file diff --git a/decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload-config.jsonc b/decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload-config.jsonc new file mode 100644 index 00000000..2e93dd87 --- /dev/null +++ b/decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload-config.jsonc @@ -0,0 +1,25 @@ +{ + "$schema": "../../../../../schema/connector_details.json", + "description": "../description.md", + "install_text": "**Temperature & Humidity Sensor**\n\n• EU, US, and Asia frequency supported\n\n• LoRaWAN 1.0.3\n\n• Temperature Accuracy: +/- 1°C\n\n• Humidity Accuracy: +/- 5%\n\n• IP40 equivalent\n\n• 0 to 50°C operation temperature range", + "install_end_text": "", + "device_annotation": "", + "device_parameters": [], + "networks": [ + "../../../../network/lorawan-everynet/v1.0.0/payload.js", + "../../../../network/lorawan-loriot-/v1.0.0/payload.js", + "../../../../network/lorawan-machineq/v1.0.0/payload.js", + "../../../../network/lorawan-orbiwise/v1.0.0/payload.js", + "../../../../network/lorawan-senet/v1.0.0/payload.js", + "../../../../network/lorawan-senra/v1.0.0/payload.js", + "../../../../network/lorawan-kerlink/v1.0.0/payload.js", + "../../../../network/lorawan-citykinect/v1.0.0/payload.js", + "../../../../network/lorawan-tektelic/v1.0.0/payload.js", + "../../../../network/lorawan-actility/v1.0.0/payload.js", + "../../../../network/lorawan-ttittn-v3/v1.0.0/payload.js", + "../../../../network/lorawan-swisscom/v1.0.0/payload.js", + "../../../../network/lorawan-chirpstack/v1.0.0/payload.js", + "../../../../network/lorawan-helium/v1.0.0/payload.js", + "../../../../network/lorawan-brdot-/v1.0.0/payload.js" + ] +} \ No newline at end of file diff --git a/decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload.js b/decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload.js new file mode 100644 index 00000000..f3a4e572 --- /dev/null +++ b/decoders/connector/browan/temperature-humidity-sensor/v1.0.0/payload.js @@ -0,0 +1,102 @@ +/* eslint-disable camelcase */ +/* This is an example code for Everynet Parser. +** Everynet send several parameters to TagoIO. The job of this parse is to convert all these parameters into a TagoIO format. +** One of these parameters is the payload of your device. We find it too and apply the appropriate sensor parse. +** +** IMPORTANT: In most case, you will only need to edit the parsePayload function. +** +** Testing: +** You can do manual tests to this parse by using the Device Emulator. Copy and Paste the following code: +** [{ "variable": "everynet_payload", "value": "{ \"params\": { \"payload\": \"0109611395\" } }" }] +** +** The ignore_vars variable in this code should be used to ignore variables +** from the device that you don't want. +*/ +// Add ignorable variables in this array. +const ignore_vars = []; + + +/** + * Convert an object to TagoIO object format. + * Can be used in two ways: + * toTagoFormat({ myvariable: myvalue , anothervariable: anothervalue... }) + * toTagoFormat({ myvariable: { value: myvalue, unit: 'C', metadata: { color: 'green' }} , anothervariable: anothervalue... }) + * + * @param {Object} object_item Object containing key and value. + * @param {String} serie Serie for the variables + * @param {String} prefix Add a prefix to the variables name + */ +function toTagoFormat(object_item, serie, prefix = '') { + const result = []; + for (const key in object_item) { + if (ignore_vars.includes(key)) continue; + + if (typeof object_item[key] === 'object') { + result.push({ + variable: object_item[key].variable || `${prefix}${key}`, + value: object_item[key].value, + serie: object_item[key].serie || serie, + metadata: object_item[key].metadata, + location: object_item[key].location, + unit: object_item[key].unit, + }); + } else { + result.push({ + variable: `${prefix}${key}`, + value: object_item[key], + serie, + }); + } + } + + return result; +} + +// Function to convert decimal numbers to binary +// Decode an uplink message from an array of bytes to an object of fields +function Decoder(bytes, port) { + // Decode an uplink message from a buffer + // (array) of bytes to an object of fields. + const decoded = {}; + + if (bytes == null) { return null; } + + // if (port === 103) { + // parse status + decoded.status = { + value: bytes.readUInt8(0), + }; + + // parse battery voltage + decoded.battery_voltage = { + value: Number( ((25 + ((bytes[1] & 0x0F) >>> 0)) / 10).toFixed(1)), + unit: 'V', + }; + + // parse temperature °C + decoded.temperature = { + value: ((bytes[2] & 0x7F) >>> 0) - 32, + unit: '°C', + }; + + // parse humidity + decoded.relative_humidity = { + value: ((bytes[3] & 0x7F) >>> 0), + unit: '%', + }; + + // decoded.co2 = bytes.readUInt16LE(4); + + // decoded.voc = bytes.readUInt16LE(6); + + return decoded; +} + +const data = payload.find(x => x.variable === 'data' || x.variable === 'payload'); +if (data) { + const serie = data.serie || new Date().getTime(); + const vars_to_tago = Decoder(Buffer.from(data.value, 'hex')); + + payload = [...payload, ...toTagoFormat(vars_to_tago, serie)]; + payload = payload.filter(x => !ignore_vars.includes(x.variable)); +} diff --git a/decoders/connector/browan/water-leak/assets/logo.png b/decoders/connector/browan/water-leak/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1da97d7e2a9fd8af034b03963538fd20ee2cfb90 GIT binary patch literal 30576 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 QJ^%m!07*qoM6N<$g2t8~6951J literal 0 HcmV?d00001 diff --git a/decoders/connector/browan/water-leak/connector.jsonc b/decoders/connector/browan/water-leak/connector.jsonc new file mode 100644 index 00000000..73128e5a --- /dev/null +++ b/decoders/connector/browan/water-leak/connector.jsonc @@ -0,0 +1,13 @@ +{ + "$schema": "../../../../schema/connector.json", + "name": "Browan Water Leak", + "images": { + "logo": "./assets/logo.png" + }, + "versions": { + "v1.0.0": { + "src": "./v1.0.0/payload.js", + "manifest": "./v1.0.0/payload-config.jsonc" + } + } +} diff --git a/decoders/connector/browan/water-leak/description.md b/decoders/connector/browan/water-leak/description.md new file mode 100644 index 00000000..a628d169 --- /dev/null +++ b/decoders/connector/browan/water-leak/description.md @@ -0,0 +1 @@ +Water Leakage sensor over LoRaWAN™ \ No newline at end of file diff --git a/decoders/connector/browan/water-leak/v1.0.0/payload-config.jsonc b/decoders/connector/browan/water-leak/v1.0.0/payload-config.jsonc new file mode 100644 index 00000000..4078592e --- /dev/null +++ b/decoders/connector/browan/water-leak/v1.0.0/payload-config.jsonc @@ -0,0 +1,25 @@ +{ + "$schema": "../../../../../schema/connector_details.json", + "description": "../description.md", + "install_text": "The Water Leakage Sensor utilizes LoRaWAN connectivity to sends an uplink notification when a water leak is detected.\n\n**Specifications**\n* Size: 50 x 20 x 50 mm\n* Weight: 30g without battery, 40g with battery\n* Sensors: Temperature, Humidity and Water leak detection\n* Temperature: 0°C to +50°C\n* IP Rating: IP 50 equivalent\n* Power Source: 3.6V 1/2 AA Li-SOCl2 1200mAh battery\n* Frequency: 863-870MHz for EU, 902-928MHz for North America\n* Tx Power: US: +19dBm, EU: +17dBm\n* Rx Sensitivity: -135dBm\n* Antenna Gain: -2dBi Peak, -5dBi Avg", + "install_end_text": "", + "device_annotation": "", + "device_parameters": [], + "networks": [ + "../../../../network/lorawan-actility/v1.0.0/payload.js", + "../../../../network/lorawan-chirpstack/v1.0.0/payload.js", + "../../../../network/lorawan-citykinect/v1.0.0/payload.js", + "../../../../network/lorawan-everynet/v1.0.0/payload.js", + "../../../../network/lorawan-helium/v1.0.0/payload.js", + "../../../../network/lorawan-kerlink/v1.0.0/payload.js", + "../../../../network/lorawan-tektelic/v1.0.0/payload.js", + "../../../../network/lorawan-swisscom/v1.0.0/payload.js", + "../../../../network/lorawan-senet/v1.0.0/payload.js", + "../../../../network/lorawan-senra/v1.0.0/payload.js", + "../../../../network/lorawan-orbiwise/v1.0.0/payload.js", + "../../../../network/lorawan-machineq/v1.0.0/payload.js", + "../../../../network/lorawan-loriot-/v1.0.0/payload.js", + "../../../../network/lorawan-ttittn-v3/v1.0.0/payload.js", + "../../../../network/lorawan-brdot-/v1.0.0/payload.js" + ] +} \ No newline at end of file diff --git a/decoders/connector/browan/water-leak/v1.0.0/payload.js b/decoders/connector/browan/water-leak/v1.0.0/payload.js new file mode 100644 index 00000000..dde6c586 --- /dev/null +++ b/decoders/connector/browan/water-leak/v1.0.0/payload.js @@ -0,0 +1,29 @@ +function Decoder(bytes, port) { + const decoded = []; + if (port === 106) { + // STATUS + decoded.push({ variable: "water_leakage_detected", value: bytes[0] & 1 }); + decoded.push({ variable: "water_leakage_interrupt", value: (bytes[0] >> 4) & 1 }); + decoded.push({ variable: "temperature_changed", value: (bytes[0] >> 5) & 1 }); + decoded.push({ variable: "humidity_changed", value: (bytes[0] >> 6) & 1 }); + // BATTERY + const battery_level = bytes.readUInt8(1); + decoded.push({ variable: "battery", value: (25 + (battery_level & 0x0f)) / 10, unit: "V" }); + // TEMPERATURE (PCB) + decoded.push({ variable: "temperature_pcb", value: (bytes.readUInt8(2) & 0x7f) - 32, unit: "°C" }); + // RH + decoded.push({ variable: "humidity", value: bytes.readUInt8(3) & 0x7f, unit: "%" }); + // TEMPERATURE (ENVIRONMENT) + decoded.push({ variable: "temperature_environment", value: (bytes.readUInt8(4) & 0x7f) - 32, unit: "°C" }); + } + + return decoded; +} + +const data = payload.find((x) => x.variable === "payload" || x.variable === "payload_raw" || x.variable === "data"); +const port = payload.find((x) => x.variable === "port" || x.variable === "fport"); +if (data && port) { + const serie = data.serie || new Date().getTime(); + const bytes = Buffer.from(data.value, "hex"); + payload = payload.concat(Decoder(bytes, Number(port.value))).map((x) => ({ ...x, serie })); +} diff --git a/decoders/connector/digital-matter/matter-falcon/assets/logo.png b/decoders/connector/digital-matter/matter-falcon/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a807ae2af1167269fd12c06ce653f79c3bcc6c5 GIT binary patch literal 27380 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 - Node.js v16.18.0 + * ------------------- +*/ + +function JsonDecoder(payload1) { + const result = [ + { + variable: "serial_number", + value: payload1.SerNo + }, + { + variable: "imei", + value: payload1.IMEI + }, + { + variable: "iccid", + value: payload1.ICCID + }, + { + variable: "prodid", + value: payload1.ProdId + }, + { + variable: "fw", + value: payload1.FW + } + ]; + for (const record of payload1.Records || []){ + const time = new Date(record.DateUTC); + const group = String(record.SeqNo); + result.push({ + variable: "sequence_number", + value: record.SeqNo, + group, + time + }, { + variable: "reason", + value: record.Reason, + group, + time + }, { + variable: "date_utc", + value: record.DateUTC, + group, + time + }, { + variable: "gps_utc", + value: record?.Fields?.[0].GpsUTC, + group, + time, + unit: "GPS datetime" + }, { + variable: "location", + value: `${String(record.Fields?.[0].Lat)},${String(record.Fields?.[0].Long)}`, + unit: "Degrees * 1E7", + location: { + lat: record?.Fields?.[0].Lat, + lng: record.Fields?.[0].Long + }, + group, + time + }, { + variable: "alt", + value: record?.Fields?.[0].Alt, + group, + time, + unit: "m" + }, { + variable: "speed", + value: record.Fields?.[0].Spd, + group, + time, + unit: "Cm/s" + }); + if (record.Fields?.[0]?.SpdAcc != undefined) { + result.push({ + variable: "spdacc", + value: record.Fields?.[0]?.SpdAcc * 10, + group, + time, + unit: "Cm/s" + }); + } + if (record.Fields?.[0].Head != undefined) { + result.push({ + variable: "head", + value: record.Fields?.[0].Head * 2, + group, + time, + unit: "Deg" + }); + } + result.push({ + variable: "pdop", + value: record.Fields?.[0].PDOP, + group, + time, + unit: "x10" + }, { + variable: "posacc", + value: record.Fields?.[0].PosAcc, + group, + time, + unit: "m" + }, { + variable: "gpsstat", + value: record.Fields?.[0].GpsStat, + group, + time + }, { + variable: "din", + value: record.Fields?.[1].DIn, + group, + time + }, { + variable: "dout", + value: record.Fields?.[1].DOut, + group, + time + }, { + variable: "devstat", + value: record.Fields?.[1].DevStat, + group, + time + }); + if (record.Fields?.[2].AnalogueData?.["2"] != undefined) { + result.push({ + variable: "external_voltage", + value: record.Fields?.[2].AnalogueData?.["2"] / 100, + group, + time, + unit: "V" + }); + } + result.push({ + variable: "internal_voltage", + value: record.Fields?.[2].AnalogueData?.["1"], + group, + time, + unit: "mV" + }); + if (record.Fields?.[2].AnalogueData?.["3"] != undefined) { + result.push({ + variable: "temperature", + value: record.Fields?.[2].AnalogueData?.["3"] / 100, + group, + time, + unit: "Deg C" + }); + } + result.push({ + variable: "last_known_gsm", + value: record.Fields?.[2].AnalogueData?.["4"], + group, + time + }, { + variable: "loaded_voltage", + value: record.Fields?.[2].AnalogueData?.["5"], + group, + time, + unit: "mV" + }); + if (record.Fields?.[2].AnalogueData?.["6"] != undefined) { + result.push({ + variable: "battery", + value: record.Fields?.[2].AnalogueData?.["6"] / 10, + group, + time, + unit: "%" + }); + } + } + const filtered = result.filter((x)=>x.value !== undefined); + return filtered; +} + +console.log(`Payload received: ${JSON.stringify(payload)}`); + +try { + payload = JsonDecoder(payload[0]); +} catch (error) { + // Print the error to the Live Inspector. + console.error(error); + // Return the variable parse_error for debugging. + payload = [ + { + variable: "parse_error", + value: error.message + } + ]; +} + + +//#sourceMappingURL=data:application/json;charset=utf-8;base64,IntcInZlcnNpb25cIjozLFwic291cmNlc1wiOltdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJcIixcImZpbGVcIjpcInN0ZG91dFwifSI= \ No newline at end of file diff --git a/decoders/connector/digital-matter/matter-yabby-edge/assets/logo.png b/decoders/connector/digital-matter/matter-yabby-edge/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d892cd2e50795416027c1687fa400aacb790eef4 GIT binary patch literal 29542 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 z00000000000000000000000000000000000008ipegdcl_@G_R5> 1) & 1; + decoded.push({ variable: "watchdog_reset", value: watchdog_reset }); + // External reset + const external_reset = (resets >> 2) & 1; + decoded.push({ variable: "external_reset", value: external_reset }); + // Software reset + const sw_reset = (resets >> 3) & 1; + decoded.push({ variable: "software_reset", value: sw_reset }); + // RFU (resets -- bit 4 to bit 7. Beginning at 0) + // Watchdog reset code + const watchdog_reset_code = bytes.readUInt16LE(5); + decoded.push({ variable: "watchdog_reset_code", value: watchdog_reset_code }); + // Battery voltage + const battery = bytes.readUInt8(7); + decoded.push({ variable: "battery", value: 2000 + 7 * battery, unit: "mV" }); + // LR1110 hardware revision + const lr1110_hw_rev = bytes.readUInt8(8); + decoded.push({ variable: "lr1110_hardware_revision", value: lr1110_hw_rev.toString(16) }); + // LR1110 FIRMWARE VERSION + // LR1110 firmware major + const lr1110_fw_major_version = bytes.readUInt8(9); + // LR1110 firmware minor + const lr1110_fw_minor_version = bytes.readUInt8(10); + decoded.push({ variable: "lr1110_firmware", value: `${lr1110_fw_major_version}.${lr1110_fw_minor_version}` }); + } else if (port === 2) { + // DOWNLINK + const downlink = bytes.readUInt8(0); + // Sequence Number + const sequence_number = downlink & 0x7f; + decoded.push({ variable: "downlink_sequence_number", value: sequence_number }); + // Accept + const accept = downlink >> 7; + decoded.push({ variable: "downlink_accepted", value: accept }); + // FIRMWARE VERSION + // Firmware major version + const major = bytes.readUInt8(1); + // Firmware minor version + const minor = bytes.readUInt8(2); + decoded.push({ variable: "firmware_version", value: `${major}.${minor}` }); + // Product ID + const prod_id = bytes.readUInt8(3); + decoded.push({ variable: "product_id", value: prod_id }); + // Hardware revision + const hw_rev = bytes.readUInt8(4); + decoded.push({ variable: "hardware_revision", value: hw_rev }); + // Downlink port number + const downlink_port = bytes.readUInt8(5); + decoded.push({ variable: "downlink_port_number", value: downlink_port }); + // LR1110 hardware revision + const lr1110_hw_rev = bytes.readUInt8(6); + decoded.push({ variable: "lr1110_hardware_revision", value: lr1110_hw_rev.toString(16) }); + // LR1110 FIRMWARE VERSION + // LR1110 firmware major + const lr1110_fw_major_version = bytes.readUInt8(7); + // LR1110 firmware minor + const lr1110_fw_minor_version = bytes.readUInt8(8); + decoded.push({ variable: "lr1110_firmware", value: `${lr1110_fw_major_version}.${lr1110_fw_minor_version}` }); + } else if (port === 3) { + // Initial battery voltage + const initial_battery = bytes.readUInt8(0); + decoded.push({ variable: "initial_battery", value: 2000 + 7 * initial_battery, unit: "mV" }); + // Current battery voltage + const curr_battery = bytes.readUInt8(1); + decoded.push({ variable: "current_battery", value: 2000 + 7 * curr_battery, unit: "mV" }); + // wakeups per trip + const wakeups_trip = bytes.readUInt8(2); + decoded.push({ variable: "wakeups_per_trip", value: wakeups_trip }); + // trip count + const trip_count = bytes.readUInt16LE(3) & 0x3fff; + decoded.push({ variable: "trip_count", value: 32 * trip_count }); + // uptime in weeks + const uptime = bytes.readUInt16LE(4) >> 6; + decoded.push({ variable: "uptime", value: uptime, unit: "weeks" }); + // battery used + const battery = bytes.readUInt16LE(6) & 0x03ff; + decoded.push({ variable: "battery_used", value: battery * 2, unit: "mAh" }); + // percentage used on LoRaWAN + const p_lorawan = bytes.readUInt8(7) >> 2; + decoded.push({ variable: "percentage_used_lorawan", value: p_lorawan * 1.5625, unit: "%" }); + // percentage used on GNSS + const p_gnss = bytes.readUInt8(8) & 0x3f; + decoded.push({ variable: "percentage_used_gnss", value: p_gnss * 1.5625, unit: "%" }); + // percentage used on WiFi + const p_wifi = (bytes.readUInt16LE(8) >> 6) & 0x3f; + decoded.push({ variable: "percentage_used_wifi", value: p_wifi * 1.5625, unit: "%" }); + // percentage used sleeping + const p_sleep = (bytes.readUInt16LE(9) >> 4) & 0x3f; + decoded.push({ variable: "percentage_used_sleeping", value: p_sleep * 1.5625, unit: "%" }); + // percentage used on battery self discharge + const p_discharge = bytes.readUInt8(10) >> 2; + decoded.push({ variable: "percentage_used_battery_self_discharge", value: p_discharge * 1.5625, unit: "%" }); + } else if (port === 5) { + // Number of WiFi access points N (0-31) + const number_wifi_points = bytes.readUInt8(0) & 0x1f; + decoded.push({ variable: "number_of_wifi_access_points", value: number_wifi_points }); + // In-trip + const intrip = (bytes.readUInt8(0) >> 5) & 0x01; + decoded.push({ variable: "in_trip", value: intrip }); + // Inactivity Indicator + const inactivity = (bytes.readUInt8(0) >> 6) & 0x01; + decoded.push({ variable: "inactivity_indicator", value: inactivity }); + // RFU + // Timestamp in NAV message (if present) + const timestamp_nav_message = (bytes.readUInt8(1) >> 2) & 0x01; + decoded.push({ variable: "timestamp_in_nav_message", value: timestamp_nav_message }); + // position assistance sequence number + const sequence_number = bytes.readUInt8(1) >> 3; + decoded.push({ variable: "sequence_number", value: sequence_number }); + // ACCESS POINTS + for (let i = 1, j = 0; i <= number_wifi_points; ++i, ++j) { + // Access point X, RSSI, in dBm (signed) + const rssi = bytes.readInt8(2 + 7 * j); + decoded.push({ variable: `rssi${i}`, value: rssi, unit: "dBm" }); + // Access point X, MAC address + const mac = bytes + .readUIntBE(3 + 7 * j, 6) + .toString(16) + .toUpperCase(); + decoded.push({ variable: `mac${i}`, value: mac }); + } + // Semtech format GNSS NAV message (optional) + if (bytes.length > 7 * number_wifi_points + 2) { + const start = 7 * number_wifi_points + 2; + const semtech_nav_message = bytes + .slice(start, start + 8) + .toString("hex") + .toUpperCase(); + decoded.push({ variable: "semtech_nav_message", value: semtech_nav_message }); + } + } + return decoded; +} + +// let payload = [ +// { variable: "payload", value: "22E09DAC86749221DB0A48C09342A0CA01961B2230217E03" }, +// { variable: "port", value: 5 }, +// ]; +// let payload = [ +// { variable: "payload", value: "7A4A031234013B05030A00" }, +// { variable: "port", value: 3 }, +// ]; +// let payload = [ +// { variable: "payload", value: "D30102560107220305" }, +// { variable: "port", value: 2 }, +// ]; +// let payload = [ +// { variable: "payload", value: "010A56010203017A220305" }, +// { variable: "port", value: 1 }, +// ]; + +const data = payload.find((x) => x.variable === "payload" || x.variable === "payload_raw" || x.variable === "data"); +const port = payload.find((x) => x.variable === "fport" || x.variable === "port"); + +if (data && port) { + const serie = data.serie || new Date().getTime(); + const bytes = Buffer.from(data.value, "hex"); + payload = payload.concat(Decoder(bytes, Number(port.value))).map((x) => ({ ...x, serie })); +} \ No newline at end of file