Simplifies driver development for Amazon's IOT-Core service
Project description
pyIOT
A python module to simplify writing device drivers for the Amazon AWS IOT service
pyIOT abstracts the AWS IOT-Core service handling all of the communications between it and our device. To implement a pyIOT application, you only need to specify how to convert from the protocol of your device into the properties that you want to expose to IOT-Core and vice-versa. This enables IOT-Core applications to be written in a handful of lines of code.
Here's an example pyIOT application for a simple relay...
import serial
import pyIOT
class Relay(Component):
@Component.componentToProperty('relayState', '^RELAY(ON|OFF)$')
def toRelayState(self, property, value):
val = { 'ON': True, 'OFF': False }.get(value)
if val: return val
raise ValueError('{0} is not a valid value for property {1}'.format(value, property))
@Component.propertyToComponent('relayState', 'RELAY{0}')
def fromRelayState(self, value):
val = { True: 'ON', False: 'OFF' }.get(value)
if val: return val
raise ValueError('{0} is not a valid relayState'.format(value))
def queryStatus(self):
return 'RELAY?\n'
try:
ser = serial.Serial('/dev/ttyUSB0',9600, timeout=0.5)
relayComponent = Relay(name = 'RelayComponent1', stream = ser, synchronous=True)
relayThing = Thing(endpoint='<your endpoint>', thingName='relayOne', rootCAPath='root-CA.crt', certificatePath='relayOne.crt',
privateKeyPath='relayOne.private.key', region='us-east-1', components=relayComponent)
relayThing.start()
except KeyboardInterrupt:
relayComponent.exit()
Features
- Handles all communications between AWS IOT-Core and your device
- Optionally allows several components to be combined into a single IOT device
- Supports synchronous and asynchronous components
- Easily interfaces with serial and network driven components
- Allows custom communication methods including GPIO driven applications
Documentation
For more details on pyIOT and its usage, please consult the documenation at https://pyiot.readthedocs.io
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 Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyIOT-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pyIOT-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b29ce343dfcd14945fb8d410128a222df41143400a6ea4ee06fdf1300915151e
|
|
| MD5 |
2fd628223ddb0efd8214f2afc922c67c
|
|
| BLAKE2b-256 |
3808fde36803f3e77cddae02c16aa941a09d55024dff62660b5faec255e7fac0
|