Skip to main content

The AWS IoT Device Client provides device-side functionality for AWS IoT services such as jobs, device shadow, and simple pubsub.

Project description

aws-iot-device-client-python

The AWS IoT Device Client provides device-side functionality for AWS IoT services such as jobs, device shadow, and simple pubsub.

Installation

Minimum Requirements

  • Python 3.7.1+

Install from PyPI

python3 -m pip install awsiotclient

Install from source

git clone https://github.com/whill-labs/aws-iot-device-client-python
python3 -m pip install ./aws-iot-device-client-python

Usage

Create MQTT connection

from awsiotclient import mqtt

# Construct connection parameters
conn_params = mqtt.ConnectionParams()

# Required params
conn_params.endpoint = <your_endpoint_url>
conn_params.cert = <path_to_your_certificate>
conn_params.key = <path_to_your_private_key>
conn_params.root_ca = <path_to_your_root_ca>

# Optional params
conn_params.client_id = <client_id> # default "mqtt-" + uuid4()
conn_params.signing_region = <signing_region> # default "ap-northeast-1" (Tokyo Region)
conn_params.use_websocket = <True/False> # default False

# Initialize connection
mqtt_connection = mqtt.init(conn_params)
connect_future = mqtt_connection.connect()
connect_future.result()

Use AWS IoT named shadow

Note that usage of classic shadow client is similar to named shadow client.

without delta (one-way communication from device to cloud)

from awsiotclient import mqtt, named_shadow

# <create mqtt connection here as described above>
my_client = named_shadow.client(
    mqtt_connection,
    thing_name="my_thing",
    shadow_name="my_shadow"
)

my_value = dict(foo="var")
my_clinet.change_reported_value(my_value)

with delta (two-way communication from/to device and cloud)

from awsiotclient import mqtt, named_shadow

def my_delta_func(thing_name: str, shadow_name: str, value: Dict[str, Any]) -> None:
    print("my_client invokes this callback when it receives delta message")
    print(f"thing_name: {thing_name}, shadow_name: {shadow_name}, value: {value}")

# <create mqtt connection here as described above>
my_client = named_shadow.client(
    mqtt_connection,
    thing_name="my_thing",
    shadow_name="my_shadow",
    delta_func=my_delta_func,
)

my_value = dict(foo="var")
my_client.change_reported_value(my_value)
# <wait until the client receives delta>

Use AWS IoT jobs

from awsiotclient import mqtt, named_shadow

def job_runner(id: str, document: dict):
    print("my_client invokes this callback when it receives job document")
    print(f"job id: {id}, document: {document}")

# <create mqtt connection here as described above
job_client = jobs.client(
    mqtt_connection,
    thing_name="my_thing",
    job_func=job_runner
)
# <wait until the client receives job>

License

This library is licensed under the Apache 2.0 License.

Acknowledgments

Project details


Download files

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

Source Distribution

awsiotclient-0.2.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awsiotclient-0.2.1-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file awsiotclient-0.2.1.tar.gz.

File metadata

  • Download URL: awsiotclient-0.2.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for awsiotclient-0.2.1.tar.gz
Algorithm Hash digest
SHA256 dbdfe6376e57ea8f280428b45e845ad7c330398d57c60d661252a9f05b5584c2
MD5 5b3ecd7a961f112b1ed8ed19e17fad4d
BLAKE2b-256 e54f690229043af929871aa46357a6af9d086de7c955ddf4b163a6ce1d0eb827

See more details on using hashes here.

File details

Details for the file awsiotclient-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: awsiotclient-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for awsiotclient-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 99f34a9428d077219c78e4de99c1d04e2aed37ec21ee4bcf40eb482f470c63e6
MD5 c7cfd3854be77e977b92ec203f7fd9c4
BLAKE2b-256 50f44b3041c0b5f781088b3d042b5bdf8e2e60d5a6a3bb38a22a53e3279fa3e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page