aliyun-iot-device-python
非官方,阿里云 IOT 套件设备端 Python 开发 SDK
支持的协议
- MQTT
- HTTP
- CoAP
环境
- Python3
安装
pip3 install yansongda-aliyun-iot-device
使用
MQTT
from aliyun_iot_device.mqtt import Client as IOT
import time
def on_connect(client, userdata, flags, rc):
print('subscribe')
client.subscribe(qos=1)
def on_message(client, userdata, msg):
print('receive message')
print(str(msg.payload))
PRODUCE_KEY = "b1VzFx30hEm"
DEVICE_NAME = "iot_device_01"
DEVICE_SECRET = "3TSqd6sfzjSkSwEmLmcAdZnI0oGlmRZ8"
iot = IOT((PRODUCE_KEY, DEVICE_NAME, DEVICE_SECRET))
iot.on_connect = on_connect
iot.on_message = on_message
iot.connect()
iot.loop_start()
while True:
iot.publish(payload="success", qos=1)
time.sleep(5)
回调
-
on_connect
定义连接成功后的回调函数
回调函数格式:
connect_callback(client, userdata, flags, rc)client: the client instance for this callback
userdata: the private user data as set in Client() or userdata_set()
flags: response flags sent by the broker
rc: the connection result
-
on_subscribe
定义订阅成功后的回调函数
回调函数格式:
subscribe_callback(client, userdata, mid, granted_qos)client: the client instance for this callback
userdata: the private user data as set in Client() or userdata_set()
mid: matches the mid variable returned from the corresponding subscribe() call.
granted_qos: list of integers that give the QoS level the broker has granted for each of the different subscription requests.
-
on_message
定义收到消息时的回调函数.
回调函数格式:
on_message_callback(client, userdata, message)client: the client instance for this callback
userdata: the private user data as set in Client() or userdata_set()
message: an instance of MQTTMessage.This is a class with members topic, payload, qos, retain.
-
on_publish
定义 publish() 方法成功发送消息时的回调函数.
格式:
on_publish_callback(client, userdata, mid)client: the client instance for this callback
userdata: the private user data as set in Client() or userdata_set()
mid: matches the mid variable returned from the corresponding publish() call, to allow outgoing messages to be tracked.
-
on_unsubscribe
定义取消订阅某条 topic 时的回调函数.
格式:
unsubscribe_callback(client, userdata, mid)client: the client instance for this callback
userdata: the private user data as set in Client() or userdata_set()
mid: matches the mid variable returned from the corresponding unsubscribe() call.
-
on_disconnect
定义连接断开时的回调函数.
格式:
disconnect_callback(client, userdata, self)client: the client instance for this callback
userdata: the private user data as set in Client() or userdata_set()
rc: the disconnection result.
说明
-
域名直连与 HTTPS 认证
SDK 默认使用域名直连同时启用 TLS 加密。
如果您不想使用 TLS 加密,可在初始化时传入
tls=False参数;如果您想使用 HTTPS 认证,可在初始化时传入
domain_direct=False参数,HTTPS 认证将强制使用 TLS 认证加密 -
TLS 认证 CA 证书
SDK 默认使用了阿里云 IOT 根证书,一般情况无需修改。
如一定要修改,请传入
ca_certs="/path/to/cert/root.cer" -
websocket 通道
SDK 默认使用 TCP 通道。
如果需要使用 websocket,请传入
transport="websockets"。当使用 websocket 时,默认启用 TLS,即使用的是 wss 协议,如果不想使用 wss,请同时传入
tls=False
HTTP
from aliyun_iot_device.http import Client as IOT
import time
PRODUCE_KEY = "b1VzFx30hEm"
DEVICE_NAME = "iot_device_01"
DEVICE_SECRET = "3TSqd6sfzjSkSwEmLmcAdZnI0oGlmRZ8"
iot = IOT((PRODUCE_KEY, DEVICE_NAME, DEVICE_SECRET))
while True:
iot.publish('success')
time.sleep(5)
注意
-
使用 http 协议进行通讯时,需要 token 进行认证,SDK 默认使用内存型缓存(cachetools 方案)进行 token 的保存。
-
如果您需要自行进行其他方案进行保存(file/memcached/redis),可以
iot.get_token(cache=False)获取 token,再 publish 消息时,请iot.publish(payload=payload, token=token)
设备影子系统
# 设备主动上报状态
iot.publish(payload={"method": "update",
"version": i,
"reported": {"online": True}},
topic="shadow",
qos=1)
# 设备主动获取设备影子内容
iot.publish(payload={"method": "get"},
topic="shadow",
qos=1)
# 设备端删除影子属性
iot.publish(payload={"method": "delete", "reported": "null"},
topic="shadow",
qos=1)
Release files for yansongda-aliyun-iot-device 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yansongda-aliyun-iot-device-0.6.0.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yansongda_aliyun_iot_device-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:19.8 kB
Release files / yansongda-aliyun-iot-device-0.6.0.tar.gz
| Download URL | yansongda-aliyun-iot-device-0.6.0.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e851e6ea4c7fd278fb0358a0949d406825dc0afeb7a20f736c4a27914f122d7f
|
|
BLAKE2b-256 checksum How to use checksums |
0e75d7a16a08752f3315b6af607c7af9eea02273ae117a06b78882ea31c908e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5
|
Release files / yansongda_aliyun_iot_device-0.6.0-py3-none-any.whl
| Download URL | yansongda_aliyun_iot_device-0.6.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40c64bb30d01bb7e67b975b70d1b8c6365e069bda0bcc5a7604862c6d8982340
|
|
BLAKE2b-256 checksum How to use checksums |
587438df9d5f011131113349faab3b7570925dfc94a7a6d436812704d36d114b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5
|