概述
TuyaOS 是基于组件化的概念设计的,提供了基础服务、安全、网络服务中间件、丰富的物联网业务功能组件,这些功能组件构成了 TuyaOS 的能力地图。TuyaOS 联网单品开发框架就是基于 TuyaOS 的能力地图,按照联网单品设备工作场景的能力需求,构建的不同规格的、适用于不同场景的 SDK 的集合。这些开发框架提供了统一的接口、丰富的组件能力,开发者无需关心具体的实现原理,调用接口函数即可快速开发产品功能,并提供了统一的开发体验。
架构图
能力列表
设备管理
能力 |
说明 |
初始化 |
初始化是指设备上电、启动之后,调用一系列接口,完成设备硬件环境的初始化、TuyaOS 软件的初始化、应用功能初始化等工作。应用初始化的时候,开发者需要根据自己的产品形态,提供一些回调函数,用于处理 TuyaOS 内部的状态变化、控制操作、升级等工作。 |
重置 |
设备重置是把设备恢复到配网、激活之前状态的操作。根据触发源不同,可以分为本地重置和 App 重置;根据重置后设备所处的状态,又可细分为普通重置(解除绑定)和恢复出厂重置(解绑并清除数据) |
授权 |
授权是通过将涂鸦产生的设备标识信息写入到设备的不易失存储期间之中,用于后续设备正常运行时的设备认证。授权方式有通过代码的方式授权和通过工具的方式授权,前者主要在调试阶段使用,后者主要在量产生成时使用 |
配网激活
Wi-Fi / Wi-Fi+蓝牙
能力 |
说明 |
AP 配网 |
通过设备生成一个 Wi-Fi AP 热点,App 连接此热点,建立 TLS 加密通道,传输配网路由器的 SSID、passwd 以及激活 Token。设备在获取到 SSID、passwd 之后,会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活的操作。 |
闪电配网 |
通过同一 App 下,已经配网的 Wi-Fi 设备(server),使用 Wi-Fi beacon/prob request/prob response 帧,和待配网(client)的 Wi-Fi 设备之间进行发现、协商秘钥、建立连接,传输 SSID、passwd 以及激活 Token。待配网设备在获取到 SSID、passwd 之后,会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活的操作。 |
蓝牙配网 |
通过设备发送蓝牙广播,App 通过广播发现此设备,进行蓝牙配对、秘钥交换、连接,传输配网路由器的 SSID、passwd 以及激活 Token。设备在获取到 SSID、passwd 之后,会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活的操作。 |
用户自定义配网 |
获取 SSID、passwd 的方式有很多种方式,如音频、视频、NFC 等。TuyaOS 提供了一个接口,用于写入开发者使用自己定义的形式获取到的 SSID、passwd 以及激活 Token。在传入 SSID、passwd 和 Token 之后,设备会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活。 |
蓝牙无网络激活(Plug&Play) |
在没有 Wi-Fi 网络的场景下,App 通过蓝牙连接设备,获取设备信息,然后代理设备向云端端激活。使得设备在没有 Wi-Fi 路由器的场景下,可以临时作为一个单点蓝牙设备使用。 注意:设备在被蓝牙无网络激活的时候,仅能做简单的控制,和云端相关的能力都是缺失的。 |
AP 无网络激活 |
在没有 Wi-Fi 网络的场景下,App 扫描设备上的二维码,获取设备信息,然后代理设备向云端端激活。使得设备在没有 Wi-Fi 路由器的场景下正常使用。 |
设备配网模式 |
设备上电、进入配网模式但未配网(短期未配网防误触、长期未配网低功耗)、配网后重置等情况下,设备的具体行为在不同的场景下有不同的需求,为了满足这些场景下的需求,涂鸦定义了 6 种设备配网模式,适用于不同类型的产品。 |
Wi-Fi 备份 |
通过 App 配置备用的 SSID、passwd 给设备,在当前连接的路由器断开之后,会自动连接备份 SSID、passwd 列表中信号最好的路由器,避免进行重新配网。 |
Ethernet
能力 |
说明 |
局域网绑定 |
设备在连接到路由器之后,通过在局域网内定期发送 UDP 广播包。App 在同一局域网搜索、内接收到广播包之后,根据广播包内携带的信息,协商交互密钥,并将激活 Token 发送给设备,设备在获取到激活 Token 之后,使用授权信息和 Token,向云端进行设备认证、激活操作。 |
扫码绑定 |
设备在连接到路由器之后,App 通过扫码设备上粘贴的二维码或者屏幕上显示的二维码,获取设备相关的信息,并通过云端向已经连接到云端端激活服务器的设备推送激活 Token。设备在获取到激活 Token 之后,使用授权信息和 Token,向云端进行设备认证、激活操作。 |
设备控制
能力 |
说明 |
DP 模型&控制协议 |
TuyaOS 设备模型描述,通过设备模型可以对设备进行控制 |
局域网控制 |
当 App 和设备位于同一个局域网内,可以通过局域网协议对设备进行控制。 |
蓝牙控制 |
当 App 位于设备附近,且设备处于离线状态,可以通过蓝牙协议对设备进行控制。 |
控制通道优先级 |
不同类型的设备使用场景不同,可以根据产品的需求,调整 Wi-Fi WAN、Wi-Fi LAN、Bluetooth的控制的优先级,默认优先级,Wi-Fi LAN 高于 Wi-Fi WAN 高于 Bluetooth。 |
基础服务
能力 |
说明 |
安全存储 |
TuyaOS 提供的,使用 Key-Value 形式的,加密的数据存储功能,以及文件形式的,明文的数据存储功能。 |
健康检测 |
TuyaOS 提供的,定期执行对设备内存、无线信号、任务状态进行检测的功能,并支持应用自定义的检测指标。 |
日志服务 |
TuyaOS 提供的,用于记录设备运行过程的本地日志、记录异常并编码上报的日志序功能。 |
事件服务 |
TuyaOS 提供的,事件发布、订阅功能,通过订阅事件,可以感知内部变化的发送,并做相应的处理。 |
时间服务(时区、夏令时) |
TuyaOS 提供的,时间管理和维护功能,支持 UTC 时间和本地时间,本地时间由 UTC 时间、时区、夏令时等因素综合得来。 |
定时队器 |
TuyaOS 提供的,软件定时功能。 |
工作队列 |
TuyaOS 提供的,一种工作队列功能,用于处理低优先级的,可能存在阻塞的异步任务。 |
连接管理 |
TuyaOS 提供的,管理设备上各种连接方式的功能,如 Wi-Fi、Ethernet、Bluetooth 之类的。维护设备和网络直接的连接状态。 |
线程管理 |
TuyaOS 提供的,线程管理功能。 |
设备驱动
连接驱动
能力 |
说明 |
Wi-Fi |
Wi-Fi 驱动 |
Bluetooth |
蓝牙驱动 |
外设驱动
能力 |
说明 |
GPIO |
GPIO 驱动 |
ADC |
ADC 驱动 |
PWM |
PWM 驱动 |
I2C |
I2C 驱动 |
I2S |
I2S 驱动 |
UART |
UART 驱动 |
DAC |
DAC 驱动 |
SPI |
SPI 驱动 |
三方生态
能力 |
说明 |
Matter |
支持完整的 Matter 特性,设备可以作为一个标准化的 Matter 设备,完全融入 Matter 生态。 |
Homekit |
支持完整的 Homekit 特性,设备可以作为一个标准化的 Homekit 设备,完全融入 Homekit 生态。 |
功耗管理
能力 |
说明 |
Wi-Fi低功耗 |
Wi-Fi 低功耗管理 |
定时服务
能力 |
说明 |
本地定时 |
将定时任务规则下载到设备,本地计时并到期执行任务。 |
天文定时 |
本地定时的一种,通过设备所处区域日出日落时间规则设置定时任务。 |
日历定时 |
本地定时的一种,更加丰富的定时规则选择,可以使用周循环、奇偶日、隔天、隔小时等规则设置定时任务。 |
升级服务
能力 |
说明 |
静默升级 |
设备自动扫描云端升级配置,在不需要 App 感知的情况下对设备固件进行升级。 |
提醒升级/强制升级 |
云端配置升级,在 App 通过之后,通知设备对固件进行升级。 |
附属固件升级 |
对设备上的各种固件、文件进行升级。 |
设备配件
能力 |
说明 |
Wi-Fi FFC 遥控 |
通过私有的 Wi-Fi Mesh 协议对设备进行遥控。 |
蓝牙 Beacon 遥控 |
通过蓝牙 Beacon 对设备进行遥控。 |
设备安全
能力 |
说明 |
安全体系(安全级别,安全能力) |
设备身份认证、安全存储、安全通信、隐私数据合规。 |
网络
能力 |
说明 |
iot-dns |
服务域名配置、证书管理服务、域名解析服务 |
https |
HTTPS 库 |
mqtt over tls |
MQTT 库 |
mbedTLS |
mbedTLS 库 |
系统服务
能力 |
说明 |
内存管理(tuya heap6) |
TuyaOS 自研堆管理功能。 |
TCP/IP 协议栈(tuya lwip) |
TuyaOS 自维护的 lwIP 协议 |
蓝牙协议栈(tuya Bluetooth) |
TuyaOS 自维护的蓝牙协议 |
tuya wpa supplicant |
TuyaOS 自维护的 wpa_supplicant 组件 |
支持与帮助
在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 联网单品开发版块 进行沟通咨询。