Skip to main content

A Python interface to the EMQx LwM2M plugin

Project description

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 still in pre-alpha stage and backwards incompatible changes are likely in the releases prior to version 1.0.0.

Usage and command line options

usage: python3 -m emqxlwm2m [-h] [--host HOST] [--port PORT]
                         [--known-endpoints KNOWN_ENDPOINTS]
                         [--xml-path XML_PATH]
                         [-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--echo]
                         [--value VALUE] [--interval INTERVAL]
                         [--timeout TIMEOUT]
[{reboot,notifications,create,write,delete,update,updates,read,discoverall,execute,registrations,cancel-observe,observe,?,discover,attr,endpoints}]
[endpoint] [path]

positional arguments:
{reboot,notifications,create,write,delete,update,updates,read,discoverall,execute,registrations,cancel-observe,observe,?,discover,attr,endpoints}
endpoint              LwM2M endpoint client name
path                  LwM2M object/instance/resource path

optional arguments:
-h, --help            show this help message and exit
--host HOST           EMQx MQTT broker host
--port PORT, -p PORT  EMQx MQTT port
--known-endpoints KNOWN_ENDPOINTS
Path to list of known endpoints. Used for interactive
selection.
--xml-path XML_PATH, -x XML_PATH
Directory with xml lwm2m object definitions. Can be
used multiple times to provide multiple paths.
-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the logging level
--echo                Print endpoint and path when selected with fzf.
--value VALUE, -v VALUE
Value to use in context of command.
--interval INTERVAL, -i INTERVAL
Repeat action with interval. Seconds.
--timeout TIMEOUT, -t TIMEOUT
Timeout when waiting for response. Seconds.

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 --value 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 --value [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 --value [,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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emqxlwm2m-0.2.1.tar.gz (25.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page