LwM2M implementation based on the Wakaama package. More...
LwM2M implementation based on the Wakaama package.
Lightweight Machine to Machine is a device management protocol designed for sensor networks, designed for remote management of M2M devices and related service enablement. It defines an extensible resource and data model and builds top of CoAP. LwM2M has been specified by the OMA SpecWorks Device Management Working Group. The specification is freely available here.
For a list of the supported objects see LwM2M Object implementations. The client implementation is based on the Eclipse Wakaama project
A LwM2M Client organizes resources as object instances. The LwM2M engine is independent of the objects that the client exposes, but it needs at least 3 mandatory ones: Device object, Security object and a Server object.
The LwM2M Client will connect to the specified LwM2M server and register itself. After that, the server will be able to perform Read, Write, Create, Delete, Execute and Observe operations on the resources.
With the configuration above plain CoAP is used. To secure the connection with the LwM2M Server, a credential is needed in the Security object instance. To enable DTLS support add the module wakaama_client_dtls
. This uses the DTLS sock API, so you will need to select an implementation of it (e.g. USEPKG += tinydtls
). Currently Pre-Shared Key (PSK) and Raw Public Key (RPK) modes are supported.
To see how to use DTLS credentials, go to the usage section of Security LwM2M object.
A bootstrap server gives a LwM2M deployment more flexibility. Information on how to connect to the LwM2M bootstrap server is defined at compile-time in the client (including URI and potentially needed credentials). The client connects to the bootstrap server on boot, which installs on the node the information needed to connect to the LwM2M servers.
To enable bootstrap support, set the LWM2M_BOOTSTRAP
option on Kconfig or set the CFLAG CONFIG_LWM2M_BOOTSTRAP=1
. You will also need to specify during the security object instantiation that the information corresponds to a bootstrap server. DTLS is also supported for the bootstrap server:
Keep into account, that some Sock DTLS implementations may need some extra configuration to handle multiple connections. See the example/wakaama
Makefile.
Modules | |
Common LwM2M Object functionalities | |
Common functionalities to interact with LwM2M objects. | |
LwM2M Client using Wakaama | |
Wakaama adaption to RIOT for implementing a LwM2M client. | |
LwM2M Object implementations | |
Implementations of LwM2M objects using Wakaama. | |
Platform adaption for Wakaama package | |
Adaption of Wakaama LwM2M package to RIOT. | |
Wakaama LwM2M Client configuration | |
Configuration options for the LwM2M client implementation based on the Wakaama package. | |