Encoder and Decoder for CayenneLLP
A Cayenne Low Power Payload (CayenneLPP) decoder and encoder written in Python.
PyCayenneLPP offers a concise interface with proper encoding and decoding functionality for the CayenneLPP format suporting many sensor types. Further, the project aims for overall high code quality and good test coverage.
See also myDevicesIoT/CayenneLPP for more information on the format and a reference implementation in C++.
The project is under active development. Releases will be published on the fly as soon as a certain number of new features and fixes have been made.
Supported Data Types
The following table lists the currently supported data types with the LPP code (which equals IPSO code - 3200), data size in bytes, and data dimensions.
PyCayenneLPP does not have any external dependencies and only uses builtin functions and types of Python 3. It is compatible with all the latest and officially supported Python versions 3.6 and above, though even Python 3.4 will do.
Since PyCayenneLPP 1.2.0 MicroPython is officially supported, and published
as a separate package under
Python 3 Prerequisites
The PyCayenneLPP package is available via PyPi using
pip. To install it run:
pip3 install pycayennelpp
upip module PyCayenneLPP can be installed as follows
import upip upip.install("micropython-pycayennelpp")
Or alternatively run with in a shell:
micropython -m upip install micropython-pycayennelpp
The following show how to utilise PyCayenneLPP in your own application to encode and decode data into and from CayenneLPP. The code snippets work with standard Python 3 as well as MicroPython, assuming you have installed the PyCayenneLPP package as shown above.
from cayennelpp import LppFrame # create empty frame frame = LppFrame() # add some sensor data frame.add_temperature(0, -1.2) frame.add_humidity(6, 34.5) # get byte buffer in CayenneLPP format buffer = bytes(frame)
from cayennelpp import LppFrame # byte buffer in CayenneLPP format with 1 data item # i.e. on channel 1, with a temperature of 25.5C buffer = bytearray([0x01, 0x67, 0x00, 0xff]) # create frame from bytes frame = LppFrame().from_bytes(buffer) # print the frame and its data print(frame)
Contributing to a free open source software project can take place in many different ways. Feel free to open issues and create pull requests to help improving this project. Each pull request has to pass some automatic tests and checks run by Travis-CI before being merged into the master branch.
This is a free open source software project published under the MIT License.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for pycayennelpp-2.0.0-py3-none-any.whl