emqxlwm2m

A Python interface to the EMQx LwM2M plugin


Keywords
emqx, lwm2m, emqx-lwm2m
License
MIT
Install
pip install emqxlwm2m==0.6.0

Documentation

Welcome to emqxlwm2m

This package provides a command line interface to the EMQx LwM2M plugin.

It supports read, discover, write, write-attr, execute, create, delete. It also has some handy features for tracking notifications, etc.

NOTE: This package is in beta stage and backwards incompatible changes may be added in the releases prior to version 1.0.0.

Usage and command line options

usage: python3 -m emqxlwm2m [--host HOST] [--port PORT]
                            [-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
                            [--timeout SEC] [--xml-path DIR]
                            [--ep-active EP_ACTIVE] [--ep-known EP_KNOWN]
                            [--ep-prefix EP_PREFIX] [--startup-script PATH]
                            [command]

positional arguments:
  command               Select command: cmd, discover, read, write,
                        write_attr, execute, create, delete, observe,
                        cancel_observe, wiretap, uplink, downlink, requests,
                        responses, events, registrations, updates,
                        notifications, commands, discoverall, reboot, update,
                        firmware_update. Use with --help to see command
                        arguments.

optional arguments:
  --host HOST           EMQx MQTT broker host (default: localhost)
  --port PORT, -p PORT  EMQx MQTT port (default: 1883)
  -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Logging level (default: INFO)
  --timeout SEC, -t SEC
                        Timeout when waiting for response in seconds (default:
                        60)
  --xml-path XML_PATH, -x XML_PATH
                        Directory containing LwM2M object definition XML-
                        files. Can be used multiple times to provide multiple
                        paths. Used when selecting a path interactively.
  --ep-active EP_ACTIVE
                        Default endpoint in interactive mode (subcommand
                        "cmd")
  --ep-known EP_KNOWN   Path to a text file listing known endpoints. Used for
                        interactive selection when endpoint is not specified
                        in command.
  --ep-prefix EP_PREFIX
                        Ensure endpoints starts with prefix.
  --startup-script PATH
                        Execute initialization commands from a script.

Installation

From PyPI:

$ python3 -m pip install emqxlwm2m

Examples

Read: Read hardware version resource:

$ python3 -m emqxlwm2m --host localhost --port 1883 read urn:imei:123456789012345 /3/0/18
{'/3/0/18': '1.2.3'}

Write: Set the lifetime resource to 60 seconds:

$ python3 -m emqxlwm2m write urn:imei:123456789012345 /1/0/1=60

Execute: Execute the reboot resource:

$ python3 -m emqxlwm2m execute urn:imei:123456789012345 /3/0/4

Write-attr: Set attributes (syntax: [pmin,pmax]lt:st:gt) on battery level resource:

$ python3 -m emqxlwm2m attr urn:imei:123456789012345 /3/0/9=[60,120]5:10:95

Attributes can be omitted. To only set pmax to 100 seconds:

$ python3 -m emqxlwm2m attr urn:imei:123456789012345 /3/0/9=[,100]

Discover: Discover instances/resources and their attributs, for example, the battery level attribute previously set:

$ python3 -m emqxlwm2m discover urn:imei:123456789012345 /3/0/9
{'/3/0/9': {'pmax': '100', 'gt': '95', 'lt': '5', 'st': '10', 'pmin': '60'}}

Observe: Observe battery level resource:

$ python3 -m emqxlwm2m observe urn:imei:123456789012345 /3/0/9

Cancel-Observe: Cancel observe on battery level resource:

$ python3 -m emqxlwm2m cancel-observe urn:imei:123456789012345 /3/0/9