Why?
LightweightM2M is a client-server standard specification to allow central servers on the cloud to manage IoT devices (on the edge).
It was proposed many years ago and still was not popularized enough today, however most major platforms do support it. Even ThingBoard has an embedded LwM2M server (just like it has an embedded MQTT broker).
LwM2M is transport layer agnostic, however it is usually implemented using CoAP/DTLS/UDP (instead of MQTT/TLS/TCP). Using CoAP has many technical advantages over MQTT:
- DTLS 1.3 is very secure
- use of UDP only can considerably reduce the firmware size and attack vector
- CoAP share the "same semantics" as HTTP. Can very easily make a CoaP <-> HTTP proxy
There are some product/strategic advantages also, mainly that LwM2M will define the format/contents of some messages / objects, differently than MQTT that is just the transport publish/subscribe layer that can be used for things like factory reset, firmware update, device lock-down, network configuration, etc.
It also provides an optional and extensible data plane.
What?
- Evaluate CoAP/UDP/TLS as an alternative to MQTT
- Evaluate what features or subset of LwM2M is useful / interesting for us
- Prototype a LwM2M "iot hub client" connector and connect it to a LwM2M server