TuyaOS Link SDK for Python

更新时间:2023-11-28 02:35:58下载pdf

TuyaOS Link SDK for Python 使用 Python 语言实现,适用于开发者自主开发硬件设备逻辑业务接入涂鸦 IoT 开发平台。TuyaOS Link SDK for Python 提供设备激活、DP 上下行和 OTA 等基础业务接口封装,SDK 不依赖具体设备平台及操作系统环境,也可以运行在单任务环境,仅需要支持 TCP/IP 协议栈及提供 SDK 必要的系统依赖接口即可完成接入。

开发步骤

第一步:创建产品

登录 涂鸦 IoT 开发平台,创建一个产品,获取产品 ID。

  1. 通过 标准类目 > 其他 > 自定义品类 选择产品品类。

    TuyaOS Link SDK for Python
  2. 选择智能化方式为 产品开发

    TuyaOS Link SDK for Python
  3. 选择产品方案为 自定义方案

    TuyaOS Link SDK for Python
  4. 完善产品信息,依次完成 产品名称产品型号(非必须)产品描述通讯协议功耗类型 配置。

    TuyaOS Link SDK for Python

    单击 创建产品 按钮,完成产品创建。更多产品创建操作可参考 选品类创建产品

第二步:产品功能定义

创建产品后,根据产品功能需求,在涂鸦 IoT 开发平台进行功能数据点(DP)定义。功能点是对产品功能的抽象表示,每种功能都可以通过不同功能类型定义。

目前,您可以设置的功能类型包括布尔型、数值型、枚举型、故障型、字符串型和透传型。更多详情,请参考 功能定义

第三步:获取设备授权信息

授权信息是设备接入涂鸦的凭证,由 UUID 和 AUTHKEY 组成。授权信息可以在涂鸦 IoT 开发平台 硬件开发 步骤获取。

  1. 硬件开发 步骤,选择 Link SDK,并单击 选择 Link SDK 通用芯片平台。

    TuyaOS Link SDK for Python
  2. 单击 免费领取2个授权码,申请授权信息。

    TuyaOS Link SDK for Python
  3. 交付形式选择 授权码清单

    TuyaOS Link SDK for Python

第四步:下载 SDK

您可以参考 PyPi 仓库 的指导说明,下载 TuyaOS Link SDK for Python。

该 SDK 的 Python 代码文件通过以下目录结构提供:

  • examples:例程
  • tuyalinksdk:Link SDK 相关函数

第五步:配置设备信息

配置设备信息时,将您获取到的产品 ID 与授权信息写入 SDK examples/outlet.py 文件的 TuyaClient 中,完成基础信息配置。

TuyaOS Link SDK for Python

第六步:运行 Demo

  1. 在 Demo 文件路径内输入 python3 outlet.py 指令,运行 Demo 代码。

  2. 在 App 上绑定设备。

    打开智能生活 App 或 OEM App 或根据 App SDK 开发出来的 App,扫描在终端例程程序输出的二维码,绑定设备进行测试。

第七步:(可选)生成设备二维码

您可以通过二维码生成工具生成如下 URL 二维码,进行设备绑定测试。

  • 二维码 URL 格式:

    https://smartapp.tuya.com/s/p?p=<PRODUCT_KEY>&uuid=<UUID>&v=2.0
    
    • PRODUCT_KEY:您在涂鸦 IoT 开发平台创建的产品的 ID。
    • UUID:待绑定设备的 UUID。
  • 二维码 URL 示例:

    https://smartapp.tuya.com/s/p?p=U0fxNCEnZptKnQ **&uuid=f2ef8b136911f4**&v=2.0
    

应用示例

  1. 实例化和初始化一个设备对象 client,用来初始化产品 ID 和授权信息等配置参数。

         from tuyalinksdk.client import TuyaClient
    
    # instantiate the config
    client = TuyaClient(productid='ndo5dfkaiykh****',
                     uuid='tuyae53b389a45a0****',
                     authkey='RUgfPmGAyv3J8nfQ75fPDDic1Tx4****')
    
    # initialize the client
    tuya_iot_init(&client, &config);
    
  2. 定义应用层事件回调,回调函数用于应用层接收 SDK 事件通知,例如数据功能点(DP)下发,云端连接状态通知。

    # Tuya SDK event callback
         def on_connected():
         print('Connected.')
    
         def on_qrcode(url):
         qrcode_generate(url)
    
         def on_reset(data):
         print('Reset:', data)
    
         def on_dps(dps):
         print('DataPoints:', dps)
         client.push_dps(dps)
    
  3. 启动 Tuya IoT SDK 服务。

    client.connect()
         client.loop_start()
    //Tuya IoT SDK 服务任务,数据接收处理,设备在线保活等任务处理
    
  4. 上报示例。

    client.push_dps(dps)
    

Demo 设备例程

#!/usr/bin/env python
import time
import coloredlogs
from tuyalinksdk.client import TuyaClient
from tuyalinksdk.console_qrcode import qrcode_generate

coloredlogs.install(level='DEBUG')

client = TuyaClient(productid='ndo5dfkaiykh****',
                    uuid='tuyae53b389a45a0****',
                    authkey='RUgfPmGAyv3J8nfQ75fPDDic1Tx****')

def on_connected():
    print('Connected.')

def on_qrcode(url):
    qrcode_generate(url)

def on_reset(data):
    print('Reset:', data)

def on_dps(dps):
    print('DataPoints:', dps)
    client.push_dps(dps)

client.on_connected = on_connected
client.on_qrcode = on_qrcode
client.on_reset = on_reset
client.on_dps = on_dps

client.connect()
client.loop_start()

while True:
    time.sleep(1)
​```