DIGITAL-MATTER - Matter Falcon

Sensor

Codec Description

Codec for DIGITAL-MATTER - Matter-Falcon (v1.0.0).

Codec Preview

/* * TagoIO Decoders - (https://tago.io/) * ------------------- * Generated by :: frederico * Generated at :: Wed Feb 01 2023 15:37:24 GMT+0000 (Coordinated Universal Time) * Machine :: frederico-desktop - 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=

This codec is sourced from TagoIO Github. All rights belong to TagoIO Github.

This codec is licensed under the GNU General Public License v3 (GPL v3). Modifications, if any, are clearly marked. You are free to use, modify, and distribute the codec under the terms of GPL v3.

Community Feedback