/wakaamaNode

lwM2M library based on Wakaama for PlattformIO/cmake with easy object API

Primary LanguageCMIT LicenseMIT

WakaamaNode Build Status Stability: Active

This is a Lightweight M2M library meant to be used for embedded/constrained devices with a convenient C++ API and bindings for C. Get Started.

Lightweight M2M is a protocol from the Open Mobile Alliance for M2M or IoT device management and communication. It is a convention on top of CoAP/UDP which itself is a light and compact protocol with an efficient resource data model. It follows a server/client architecture with Request/Response semantics (GET, POST, PUT, DELETE), as well as observable resources. Optional DTLS (Datagram TLS) ensures secure communication between LwM2M Servers and LwM2M Clients.

The CoAP/lwM2M data model is explained in the documentation.

A lot of common and not so common object and resource identifiers are standardised via the OMA Object & Resource Registry. For example object 3311 is for light controls, 3312 for power sources such as smart plugs.

Features

  • The well-tested Eclipse Wakaama provides the underlying lwM2M protocol.
  • A powerful Connections API allows to configure lwM2M servers
  • lwM2M object definition API for C and C++
  • All LwM2M Objects of the OMA Registry are predefined for the C++ Objects API.
  • 3 Platform integrations (posix/win32, esp8266-sdk, freertos)
  • 2 Network stack integrations (posix/win32, lwIP)
  • 2 Firmware update integrations (posix/Win32, arduino OTA)
  • Supports optional DTLS via mbedTLS
  • All API functionality and library<-->wakaama server communication is covered by tests.

Have a look at the documentation: https://openhab-nodes.github.io/wakaamaNode/

License

  • This platform code and API wrappers are provided under the MIT License (MIT).
  • Wakaama is provided under the Eclipse Public License - v2.0.
  • TinyFSM is provided unter The MIT License (MIT), Copyright (c) 2012-2018 Axel Burri
  • Optional-lite, Span-lite, String-View-Lite is provided under the Boost Software License 1.0, Copyright (c) Martin Moene