Enapter software development kit for Python.
Stable from PyPI:
pip install enapter
Latest for GitHub:
pip install git+https://github.com/Enapter/python-sdk#egg=enapter
Checkout examples.
Every method of enapter.vucm.Device
subclass with a name that starts with
task_
prefix is considered a device task. When such a device is started,
all of its tasks are started as well. Device tasks are started in random order
and are being executed concurrently in the background. If a device task returns
or raises an exception, device routine is terminated. A typical use of the task
is to run a periodic job to send device telemetry and properties.
In order to send telemetry and properties define two corresponding device tasks. It is advised (but is not obligatory) to send telemetry every 1 second and to send properties every 10 seconds.
Examples:
Every method of enapter.vucm.Device
subclass with a name that starts with
cmd_
prefix is considered a device command handler. Device command handlers
receive the same arguments as described in device Blueprint manifest and can
optionally return a payload as dict
.
In order to handle device commands define corresponding device command handlers.
Examples:
Device alerts are stored in self.alerts
. It is a usual Python set
, so you
can add an alert using alerts.add
, remove an alert alerts.remove
and clear
alerts using alerts.clear
.
Alerts are sent only as part of telemetry, so in order to report device alert,
use send_telemetry
with any payload.
A simple Dockerfile can be:
FROM python:3.10-alpine3.16
WORKDIR /app
RUN python -m venv .venv
COPY requirements.txt requirements.txt
RUN .venv/bin/pip install -r requirements.txt
COPY script.py script.py
CMD [".venv/bin/python", "script.py"]
ℹ️ If you are using Enapter
Gateway and running
Linux, you should connect your containers to host
network
:information_source::
docker run --network host ...