DigTheDoug / xiPy

The official pythonic library for the next-gen Xively platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xiPy

The official pythonic library for the next-gen Xively platform. Built on top of paho-mqtt python client.

Install

There are two options:

  • using pip:
pip install xiPy
  • Clone or download this repo.

Usage

Connect

from xiPy.xively_connection_parameters import XivelyConnectionParameters
from xiPy.xively_client import XivelyClient
from xiPy.xively_config import XivelyConfig

XivelyConfig.XI_MQTT_HOSTS = [ ("my_company.broker.xively.com", 8883, True) ]

params = XivelyConnectionParameters()
params.username = "my_deviceid"
params.password = "my_password"

client = XivelyClient()

client.connect(params)

client.join()

This connects client to Xively. How to get Xively credentials? See PUB and SUB with the Python library.

Set connection finished callback

def my_on_connect_finished(client, result):
  print("connection resultcode = " + str(result) + ", error codes: xiPy/xi_error_codes.py\n")

client.on_connect_finished = my_on_connect_finished

xiPy error codes: xively_error_codes.py

Callbacks

These can be overridden with custom actions:

client.on_connect_finished(client, result)
client.on_disconnect_finished(client, result)
client.on_publish_finished(client, request_id)
client.on_subscribe_finished(client, request_id, granted_qos)
client.on_unsubscribe_finished(client, request_id)
client.on_message_received(client, message)

API

client.connect(options)
client.disconnect()
client.publish(topic, payload, qos, retain)
client.publish_timeseries(topic, value, qos)
client.publish_formatted_timeseries(topic, time, category, string_value, numeric_value, qos)
client.subscribe(topic_qos_list)
client.unsubscribe(topic_list)

Features

  • Python 2.7 and Python 3.x support
  • TLS connection to Xively, TLS1.2 for Python 3.x, TLS1.0 for Python 2.7.x
  • Websocket Support

License

This library is Open Source, under the BSD 3-Clause license.

Xively Demo Environment

By default xiPy connects to Xively production servers. Occassionally Xively demo environment might be the preference. To connect xiPy to Xively demo servers you need this line before calling connect:

XivelyConfig.XI_MQTT_HOSTS = [ ("broker.demo.xively.com", 8883, True) ]

About

The official pythonic library for the next-gen Xively platform

License:Other


Languages

Language:Python 100.0%