asset_tracker_v2
LwM2M JSON to nRF Asset Tracker JSON
Converts a JSON document containing the asset_tracker_v2
device and sensor
data encoded as LwM2M to the JSON document required by nRF Asset Tracker.
LwM2M to JSON mapping
Data transition from asset_tracker_v2
LwM2M to nRF Asset Tracker reported
LwM2M ID | LwM2M Obj Version | LwM2M version | Name | nRF Asset Tracker Reported |
---|---|---|---|---|
3 | 1.2 | 1.1 | Device | bat, dev, roam |
4 | 1.3 | 1.1 | Connectivity Monitoring | roam |
6 | 1.0 | 1.0 | Location | gnss |
3303 | 1.1 | 1.0 | Temperature | env |
3304 | 1.1 | 1.0 | Humidity | env |
3323 | 1.1 | 1.0 | Pressure | env |
50009 | Config | cfg |
Installation
npm i --save-exact @nordicsemiconductor/asset-tracker-lwm2m
Running the tests
After cloning the repository:
npm ci
npm test
Example usage
import {
converter,
type LwM2MAssetTrackerV2,
} from '@nordicsemiconductor/asset-tracker-lwm2m'
const lwM2MAssetTrackerV2 = {} as LwM2MAssetTrackerV2 // Object with Asset Tracker v2 objects...
const result = converter(lwM2MAssetTrackerV2)
console.log(result)
See ./src/example.ts for more details.
Example input
A JSON document containing the
asset_tracker_v2
device and sensor data encoded as LwM2M, following the schema in
lwm2m-types-js
.
import {
Device_3_urn,
ConnectivityMonitoring_4_urn,
Location_6_urn,
Temperature_3303_urn,
Humidity_3304_urn,
Pressure_3323_urn,
Config_50009_urn
} from "@nordicsemiconductor/lwm2m-types";
export const input = {
[Device_3_urn]: {
'0': 'Nordic Semiconductor ASA',
'1': 'Thingy:91',
'2': '351358815340515',
'3': '22.8.1+0',
'7': [2754],
'11': [0],
'13': 1675874731,
'16': 'UQ',
'19': '3.2.1',
},
[ConnectivityMonitoring_4_urn]: {
'0': 6,
'1': [6, 7],
'2': -85,
'3': 23,
'4': ['10.160.120.155'],
'8': 34237196,
'9': 20,
'10': 242,
'12': 12,
},
[Location_6_urn]: {
'0': -43.5723,
'1': 153.2176,
'2': 2,
'3': 24.798573,
'5': 1665149633,
'6': 0.579327,
},
[Temperature_3303_urn]: [
{
'5601': 27.18,
'5602': 27.71,
'5700': 27.18,
'5701': 'Cel',
'5518': 1675874731,
},
],
[Humidity_3304_urn]: [
{
'5601': 23.535,
'5602': 24.161,
'5700': 24.057,
'5701': '%RH',
'5518': 1675874731,
},
],
[Pressure_3323_urn]: [
{
'5601': 101697,
'5602': 101705,
'5700': 10,
'5701': 'Pa',
'5518': 1675874731,
},
],
[Config_50009_urn]: {
'0': true,
'1': 120,
'2': 120,
'3': 600,
'4': 7200,
'5': 8.5,
'6': false,
'7': true,
'8': 2.5,
'9': 0.5,
},
}
Example output
The output is the nRF Asset Tracker Reported object.
const result = {
bat: { v: 2754, ts: 1675874731000 },
dev: {
v: {
imei: '351358815340515',
modV: '22.8.1+0',
brdV: 'Nordic Semiconductor ASA',
},
ts: 1675874731000,
},
env: { v: { temp: 27.18, hum: 24.057, atmp: 10 }, ts: 1675874731000 },
gnss: {
v: {
lng: 153.2176,
lat: -43.5723,
acc: 24.798573,
alt: 2,
spd: 0.579327,
},
ts: 1665149633000,
},
roam: {
v: {
nw: '6',
rsrp: -85,
area: 12,
mccmnc: 24220,
cell: 34237196,
ip: '10.160.120.155',
},
ts: 1675874731000,
},
cfg: {
loct: 120,
act: true,
actwt: 120,
mvres: 600,
mvt: 7200,
accath: 8.5,
accith: 2.5,
accito: 0.5,
nod: [],
},
}
Architecture decision records (ADRs)
See ./adr.