Helper to create python cloudio applications
Project description
cloudio-connector-python
This library is a helper to create python cloudio applications.
The cloudio project: http://cloudio.hevs.ch/
The cloud.iO three layers
Cloud.iO is composed of 3 layers:
- The endpoints: distributed field devices that mainly measures and actuate things.
- Cloudio services: the cloud.iO server that communicate with the endpoints, stores the data and provide a http rest api to the applications.
- The applications: data analysis, controls the endpoint setpoints, ...
This library is used to create applications.
The cloud.iO data model
Here is a quick reminder of the cloud.iO data model:
Note: You can have objects in objects, that's why an object list is needed to create an AttributeId.
You can get the data model of an endpoint:
cc = CloudioConnector("https://example.com", "user", "password")
sp = cc.get_endpoint_structure('ba3d3ec2-23b6-45a8-827a-3b3133a69076')
Read/Write attributes
Example
cc = CloudioConnector("https://example.com", "user", "password")
sp = AttributeId(uuid='ba3d3ec2-23b6-45a8-827a-3b3133a69076', node='myNode',
objects=['myObject'], attribute='mySetPoint')
mea = AttributeId(uuid=cc.get_uuid('demo'), node='myNode',
objects=['myObject'], attribute='myMeasure')
# get the last value of an attribute
last_val = cc.get_last_value(mea)
print(str(mea) + ' ' + str(last_val))
# get the mean value of the last 15 minutes
mean = cc.get_mean_value(mea, 15*60)
# write the value of an attribute
cc.write_value(sp, 1.0)
Get attributes time series
Example
cc = CloudioConnector("https://example.com", "user", "password")
sp = AttributeId(uuid='ba3d3ec2-23b6-45a8-827a-3b3133a69076', node='myNode',
objects=['myObject'], attribute='mySetPoint')
mea = AttributeId(uuid=cc.get_uuid('demo'), node='myNode',
objects=['myObject'], attribute='myMeasure')
tm_mea = TimeSeries(mea, start=datetime.now() - datetime.timedelta(hours=24),
stop=datetime.now(), resample='15m')
tm_sp = TimeSeries(sp, start=datetime.now() - datetime.timedelta(hours=24),
stop=datetime.now(), resample='15m')
# get attribute time series
data = cc.get_time_series(tm_mea)
# data is the same as tm_mea.data
# convert cloudio time series to panda data frame
cc.data_frame(data, serie_name="My Measure")
# get multiple time series with multithreading
cc.get_multiple_time_series([tm_mea, tm_sp])
print(tm_mea.data)
print(tm_sp.data)
Get notified for attribute new value
Example
class Example(AttributeListener):
def __init__(self):
cc = CloudioConnector("https://example.com", "user", "password")
cc.add_attribute_listener(self)
attr = AttributeId(uuid=cc.get_uuid('demo'), node='myNode',
objects=['myObject'], attribute='myMeasure'),
# subscribe to attribute on change event
cc.subscribe_to_attribute(attr)
# this method is called when a subscribed attribute has changed
def attribute_has_changed(self, attribute: AttributeId, value):
print(str(attribute) + ' ' + str(value))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cloudio-connector-python-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dfa88270ee9fd992a00a9f210ee6b4abd081973540aaa59515f4a0251ff8559 |
|
MD5 | 8a7030f5543bd3e3202a501b7359246a |
|
BLAKE2b-256 | 1a592c50a713b9bcac10174bf7bef9d0681cc7dbbf0135c47ee88458723eecad |
Close
Hashes for cloudio_connector_python-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63941d90d0ceda9ec642ea6de659ecbb6e26d2ab0517a9d88e459a3e83ca1023 |
|
MD5 | 317f73614c33dfa9a15066f614a83586 |
|
BLAKE2b-256 | fa89bc2d0f6bf02ee3e56d078b15cac98f6f802c0250860ab607d1c7654f500e |