The Internet of Things (IoT) is currently fragmented by numerous proprietary methods of device management. In order for the IoT to reach its full potential, devices from different vendors must be able to communicate effectively with each other. This is where open standards such as the Open Mobile Alliance's (OMA) Lightweight Machine to Machine protocol (LWM2M) become important.
The LWM2M protocol has been designed to be highly efficient in terms of data transfer and memory footprint, making it suitable for deployment on larger gateway devices as well as the more constrained devices.
Awa LightweightM2M is an implementation of the OMA Lightweight M2M protocol that provides a secure and standards compliant device management solution to simplify the development of M2M applications by providing an intuitive API that enables customization without the need for an intimate knowledge of M2M protocols.
Awa LightweightM2M is a development suite that provides a number of components and tools which can be combined in various ways depending on requirement. For example:
Regardless of the method, adding LWM2M support for your device is simply a matter of incorporating any objects you need into your own M2M application.
2016-08-17: Awa LightweightM2M is a finalist in the New Zealand Open Source Awards.
The easiest way to get started with Awa LightweightM2M is to use our docker container.
Alternatively, you can build Awa on a Linux PC. The following instructions are based on the Ubuntu Linux distribution and assume that the user is familiar with the GNU compiler toolchain, and with the process of installing packages using the package manager.
Firstly, to obtain a copy of the Awa LightweightM2M source code:
Sign up for a Github account
sudo apt-get install git
git clone https://github.com/FlowM2M/AwaLWM2M.git
Further information can be found in the Quick start guide.
This project assumes a basic knowledge of The Open Mobile Alliance's (OMA) LWM2M, its functionality and services. For more detail, see our introductory LWM2M overview.
Awa LightweightM2M documentation is available both at a general level (project information, user and developer guides), and a technical level (the API guide). All documentation is available in this repository. The doc directory contains information relating to the project in general, and the api/doc directory contains the lower level documentation for the Awa API.
Note that for our purposes the terms user and developer have the following definitions:
For project users:
The Awa API documentation is available as a Doxygen presentation which is generated via the following process.
sudo apt-get install doxygen graphviz
Generate the documentation:
The output can be found in the api/doc/html directory and viewed by opening index.html with your web browser.
For convenience you can also find the latest version of this documentation here.
We welcome all contributions to this project and we give credit where it's due. Anything from enhancing functionality to improving documentation and bug reporting - it's all good.
Find out more in the contributor guide.
We would like to thank all of our current contributors.
We would also like to acknowledge and thank the authors of the following projects.
A list of ongoing development tasks can be seen here.
Made in New Zealand.