Skip to main content

ZDM Client Python Library

Project description

Zerynth ZDM Client Python Library

A python library that emulates a device for the ZDM (Zerynth Device Manager). The library permits: to connect to the ZDM, to send data and to receive jobs.

Installation

The latest stable version is available on PyPI. Either add zdm-client-py to your requirements.txt file or install with pip:

pip install zdm-client-py

Usage

Follow the guide here

  1. Login to the ZDM platform (by using the ZDM Web or the ZDM CLI).
  2. Create a device
  3. Generate the credentials for the device (file zdevice.json)
  4. Create a new Python project with your preferred editor and paste the zdevice.json file inside it.
  5. Create a Python file zdm_basic.py and paste this simple code into it:
import zdm
import random
import time

def pub_temp_hum():
    # this function publish into the tag weather two random values: the temperature and the humidity
    tag = 'weather'
    temp = random.randint(19, 38)
    hum = random.randint(50, 70)
    payload = {'temp': temp, 'hum': hum}
    device.publish(payload, tag)
    print('Published: ', payload)


# connect to the ZDM using credentials in zdevice.json file
device = zdm.ZDMClient()
device.connect()

# infinite loop
while True:
    pub_temp_hum()
    time.sleep(5)

In the example, the Client connects to the ZDM with the username e password. Then it sends an infinite stream of messages onto three different tags ("bathroom", "bedroom", "living room") with a random temperature.

You can find other examples in the data/examples folder.

======= History

1.0.1 (2020-12-02)

  • Fix import pyJwt
  • Fix TempFile on Windows

1.0.0 (2020-07-24)

Official release of ZDM (Zerynth r2.6.0)

  • Added conditions and removed events.
  • Added requests_timestamp() method
  • Renamed publish_data() into publish().
  • Fix job args after expected status received.
  • Renamed jobs parameters into jobs_dict of the ZDMClient.
  • Parameters of publish(payload, tag) methods inverted. First parameter is payload and second is tag.

0.2.0 (2020-06-16)

  • Added Conditions and removed the events.
  • removed wait_for_publish()

0.1.0 (2020-05-14)

  • added wait_for_publish() to the published msg in order to guarantee that the message is sent to the ZDM
  • added the send_event() method for sending events to the ZDM.

0.0.11 (2020-05-04)

  • fix json load arguments of job

0.0.10 (2020-04-27)

  • Changed default endpoint to "mqtt.zdm.zerynth.com"
  • Fix args of Jobs as ./json

0.0.7 (2020-04-09)

  • modified examples
  • copy examples in /usr/share/zdm/examples folder

0.0.6 (2020-03-30)

  • Fix error in _handle_dn_msg decode msg to str with python3.5

0.0.5 (2020-03-29)

  • Fix error manifest with empty jobs.

0.0.4 (2020-03-29)

New functionality:

  • Verbose parameter to ZdmClient class

0.0.3 (2020-03-27)

Release with support Python >3

  • Create ZDmClient
  • Publish messages to ZDM
  • Received Jobs from ZDM

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

zdm_client_py-1.0.1-py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 3

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