Introduction

LwM2M, for Lightweight Machine 2 Machine, is a communication protocol standard from the Open Mobile Alliance. It was designed specifically for remote device management and telemetry within the Internet of Things. Unlike MQTT, LwM2M fully specifies the application layer for device management and provides an extensive set of standard objects for telemetry data, enabling interoperability between objects and platforms from different vendors. LwM2M supports also optimized protocol headers and payload encodings to reduce bandwidth consumption and extend sensor’s battery lifetime.

Currently Live Objects LwM2M connector uses CoAPs for the message transfer by using IP connectivity and DTLS secure connections. In the future more connectivities and more security mechanisms will be available (TLS, OSCORE).

Live Objects implements 1.1 version of the protocol which includes the main features (the older version 1.0 of LwM2M protocol is also supported), in addition includes the specific features of device management and data management.

Live Objects provide the following features:

  • LwM2M standard features coming from the specification, which are the standardized interfaces between a lwm2m device and a lwm2m server (LiveObjects).

  • Higher Level features (mainly Device Twin) specific to LiveObjects which allows an advanced and industrial management of LwM2M devices and data, and which allows to benefit from all LiveObjects features also for lwm2m devices.

LwM2M protocol support

In the LwM2M common features, we find the main ones as specified in the OMA 1.0 and 1.1 specifications, here is the supported features as specified in LWM2M specifications.

Supported network stack

Layer Supported protocol

Transport

UDP

Security

DTLS 1.2 (using PSK identity + PSK key)

Session

CoAP (Constrained Application Protocol)

Application

LwM2M 1.0 specifications & LwM2M 1.1 specifications on CoAP

LwM2M 1.0 supported features

Legend

☑

Fully implemented

☐

Not applicable

⛔

Not implemented

🚧

On roadmap

Client registration

Feature Live objects implementation

Register

☑

Register update

☑

De-register

☑

Device Management

Feature Live objects implementation

Read

☑

Write

☑

Execute

☑

Create

⛔

Delete

⛔

Write attributes

🚧

Discover

⛔

Information Reporting

Feature Live objects implementation

Observe

☑

Passive cancel observation

☑

Active cancel observation

☑

Notify

☑

Supported format

Feature Live objects implementation

Plain-text

☑

Opaque

☑

Tlv

☑

Json

☑

Resource Model

Feature Live objects implementation

Object

☑

Object instance

☑

Single Resource

☑

Multi-instance Resource

☑

Object Version

☑

Security

Feature Live objects implementation

NoSec

🚧

Pre-Shared-Key

☑

Raw-Public-Key

⛔

X.509

⛔

Est

⛔

Transport binding and mode

Feature Live objects implementation

Udp

☑

Queue Mode

☑

Sms

⛔

Access Control

Feature Live objects implementation

Access Control

☐

Attributes

Feature Live objects implementation

Version

☑

Dimension

☑

Minimum Period

☑

Maximum Period

☑

GreateThan

☑

LessThan

☑

Step

☑

LwM2M 1.1 supported features

Legend

☑

Fully implemented

☐

Non applicable

⛔

Not implemented

🚧

On roadmap

Device Management

Feature Live objects implementation

Read-Composite

☑

Write-Composite

☑

Registration Live objects implementation

Supported content

format (ct=<format>)

☑

Information Reporting

Feature Live objects implementation

Send

☑

Observe-Composite

☑

Cancel-Observe-Composite

☑

Resource Instance Operation

Registration Live objects implementation

Read

☑

Write

☑

Observe

☑

Cancel observe

☑

Write attributes

☑

Supported additional formats

Resource instance codec tlv txt json opaque cbor senml-json senml-cbor

encoding

☑

☑

☑

☑

☑

☑

☑

decoding

☑

☑

☑

☑

☑

☑

☑

New data type tlv txt json cbor senml-json senml-cbor

Unsigned Integer

☑

☑

☑

☑

☑

☑

coreLnk

⛔

⛔

⛔

⛔

⛔

⛔

New Data Formats Live objects implementation

CBOR

☑

senML-JSON

☑

senML-CBOR

☑

Resource Model

New Attributes Live objects implementation

short server id

☑

server URI

☑

enabler version

☑

epmin/epmax

☑

Security

Encryption type Live objects implementation

OSCORE

🚧

Certificate Usage

⛔

Transport binding and mode

Protocol stack Live objects implementation

Tcp

⛔

LoRa®

⛔

CIoT

🚧

Live Objects integration features

Additionally, the Live Objects service provides the LwM2M device management and specific device representation implemented behind the LwM2M device interface (Live objects connector):

Live objects LwM2M integrated features overview

Interactive

  • Live Objects integration features

    1. LwM2M devices are included in the unified inventory API (covering all connectivities : LwM2M, MQTT, SMS, LoRa, external connector). LwM2M connectivity configuration (include multi-connectivity).

    2. Twin capability management service to manage the LwM2M device objects and stores the latest LwM2M device ressource values.

    3. Custom object management to define and register the OMA owners objects.

  • Specific features

    1. Live Objects exposes an API that can managing the operations on a given device and monitoring the results of each operation.

    2. To improve the usage in a disturbed network environment, retrieving a device representation of a resource and keep this representation updated by the server over a period of time is persistent. when this happens, and after a device re-register, the OBSERVE operations are automatically reactivated then persisted by the TWIN service.

    3. In the other hand, RFC 7641 tries to sync the "most recent state" and doesn’t care about a "complete history". But in Live Objects the complete /part history can be retrieved using the DataRule. The user can configure a datarule, when triggering, the rule generate and store the uplink message sended by the device.

    4. In a bad network environment, the retrieval of resource values from a device and their updating by the server over a period of time can be affected. The resources objects are persistent even when there are many disconnections or packet loss due bad network QOS. When this happens, and after a device re-register, Live Objects automatically reactivate the OBSERVE operations which are then persisted by the TWIN service.

  • Common features used in the Live Objects environment

    1. LwM2M datamessage stream management (Uplink).

    2. LwM2M datamessage decoding.

    3. Firmware update.

    4. Telemetry data sampling in time series, enrichment and pushing to multiple platforms using Live Objects Custom Pipelines and Datamessage Routing.

    5. Telemetry data vizualisation widgets using Live Objects Data Store & Search.

    6. Alarms and notifications on LwM2M device behavior and telemetry data.