API

更新时间:2023-11-10 07:27:47下载pdf

本文主要为您介绍如何通过面板 SDK 快速实现对智能设备的控制,相关云端接口使用方法请参考 通用能力开发 目录下其他文档。

概述

涂鸦 面板 SDK 致力于提供快捷、完整的涂鸦产品接入方案,主要提供了基于 App SDK 封装的智能设备的控制,定时任务,监听事件方法以及跳转智能生活 App 模块(场景模块,配网模块,用户中心等更多模块)的方法等,通过简单的调用实现完整的功能,方便您更加快速的接入涂鸦的产品。

请求接口数据方法

TYSdk.apiRequest()

请求参数

名称 类型 描述 必选
a string 接口名称
postData object 需要传递的参数
version string api 版本

请求示例

// 4.x 版本
TYSdk.apiRequest(a, postData, version)
  .then(data =>
    console.log('data',data);
  )
  .catch(error =>
    console.log('error',error);
  );

// 2.x 版本
TYSdk.apiRequest({
  a,
  postData,
  v,
})
  .then(data => {
    console.log('data :>> ', data);
  })
  .catch(error => {
    console.log('error :>> ', error);
  });

Event 方法

监听方法

请求参数

名称 类型 描述 必选
yourEventName string 事件名
yourHandler function 监听成功触发的回调

请求示例

TYSdk.event.on(yourEventName, yourHandler); // 开始监听事件

TYSdk.event.off(yourEventName, yourHandler); // 取消监听事件

TYSdk.event.emit(yourEventName, yourHandler); // 主动触发事件

常用事件名

/**
 * @desc
 * type: dpData 设备状态变更通知,payload 为更新的 DP 状态
 * type: devInfo 设备信息变更通知,payload 为 devInfo
 * type: deviceOnline 设备是否在线通知,payload 为 boolean
 */
on(
    event: 'deviceDataChange',
    callback: (data: {
        type: 'dpData' | 'devInfo' | 'deviceOnline';
        payload: Record<string, DpValue> | DevInfo | boolean;
    }) => void,
): void;
/**
 * @desc app 网络状态变更通知
 */
on(event: 'networkStateChange', callback: (data: { appOnline: boolean }) => void): void;
/**
 * @desc 云定时状态变更通知
 */
on(event: 'linkageTimeUpdate', callback: (data: {}) => void): void;
/**
 * @desc 设备局域网在线状态变更通知
 */
on(event: 'deviceLocalStateChange', callback: (data: { state: boolean }) => void): void;
/**
 * @desc 蓝牙状态变更通知
 */
on(event: 'bluetoothChange', callback: (value: boolean) => void): void;
/**
 * @desc NavigatorLayout 路由即将渲染
 */
on(event: 'NAVIGATOR_ON_WILL_FOCUS', callback: (route: DeprecatedNavigatorRoute) => void): void;
/**
 * @desc NavigatorLayout 路由完成渲染
 */
on(event: 'NAVIGATOR_ON_DID_FOCUS', callback: (route: DeprecatedNavigatorRoute) => void): void;

在执行 componentWillUnmount 时,取消监听事件。

设备信息获取

TYSdk.devInfo

4.0 及以上版本支持。

返回参数

名称 类型 描述
DevInfo DevInfo 获取设备信息

以下为常用字段的介绍,如需查看更全面的信息请查看 DevInfo type 定义

  • name:设备名称

  • productId:产品 ID

  • uiId:当前产品对应的面板 ID

  • bv:硬件基线版本

  • devId:设备 ID

  • gwId:网关 ID。如果是单品,devId 一般和 gwId 相等

  • appOnline:App 是否在线

  • deviceOnline:设备是否在线

  • isLocalOnline:局域网是否在线

  • isShare:是否是共享设备

  • groupId:群组设备 ID,用于判断是否为群组设备

  • networkType:设备的在线类型

  • schema:设备所属产品的功能点(dp,data point)定义,功能点解释请看 DP 解释

  • state:DP 的状态

  • capability:设备的能力类型。表示设备所支持的服务,例如支持 Zigbee,红外,蓝牙等

    类型 Wi-Fi 有线 cable GPRS NB-IoT BLE BLE Mesh Zigbee Infrared 433 SIG Mesh
    0 1 2 3 10 11 12 13 14 15
    能力值 1 2 4 8 1024 2048 4096 8192 16384 32768

请求示例

console.log('TYSdk.devInfo: ', TYSdk.devInfo);

Device 方法

TYSdk.device.checkDpExist()

请求参数

名称 类型 描述 必选
idOrCode string dpId 或 dpCode

返回参数

名称 类型 描述
isExit boolean 检查 DP 是否存在

请求示例

TYSdk.device.checkDpExist(idOrCode);

TYSdk.device.getDeviceInfo()

返回参数

名称 类型 描述
DevInfo DevInfo 获取设备信息

请求示例

TYSdk.device.getDeviceInfo()
  .then((data: DevInfo) => {
    console.log('data :>> ', data);
  })
  .catch(error => {
    console.log('error :>> ', error);
  });

TYSdk.device.getDeviceState()

4.0 及以上版本支持。

返回参数

名称 类型 描述
DpState { dpCode: number | string | boolean } 获取设备状态信息

请求示例

TYSdk.device.getDeviceState()
.then((data: DpState) => {
    console.log('data :>> ', data);
  })
  .catch(error => {
    console.log('error :>> ', error);
  });

TYSdk.device.getDpCodeById()

请求参数

名称 类型 描述 必选
dpId string | number dpId

返回参数

名称 类型 描述
dpCode string 根据 dpId 获取 dpCode

请求示例

TYSdk.device.getDpCodeById(dpId);

TYSdk.device.getDpCodes()

4.0 及以上版本支持。

返回参数

名称 类型 描述
dpCodes string[] 获取设备的所有 dpCode

请求示例

TYSdk.device.getDpCodes();

TYSdk.device.getDpDataFromDevice()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
idOrCode string | number dpId 或 dpCode

返回参数

名称 类型 描述
DpState { dpCode: number | string | boolean } 从设备主动获取的 DP 状态

请求示例

TYSdk.device.getDpDataFromDevice(idOrCode)
 .then((data: DpState) => {
    console.log('data :>> ', data);
  })
  .catch(error => {
    console.log('error :>> ', error);
  });

TYSdk.device.getDpIdByCode()

请求参数

名称 类型 描述 必选
dpCode string dpCode

返回参数

名称 类型 描述
dpId string 根据 dpCode 获取 dpId

请求示例

TYSdk.device.getDpIdByCode(dpCode);

TYSdk.device.getDpSchema()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
dpCode string dpCode

返回参数

名称 类型 描述
DpSchema DpSchema 获取该设备对应 DP 的 schema 信息

请求示例

TYSdk.device.getDpSchema(dpCode);

TYSdk.device.getState()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
idOrCode string dpId 或者 dpCode No

返回参数

名称 类型 描述
dpState { dpCode: number | string | boolean } 获取 DP 的 value 值,如果不传参数则获取全部 dpValue

请求示例

TYSdk.device.getState(idOrCode);

TYSdk.device.isBleDevice()

4.0 及以上版本支持。

返回参数

名称 类型 描述
isBleDevice boolean 是否是蓝牙设备

请求示例

TYSdk.device.isBleDevice();

TYSdk.device.isLocalLAN()

4.0 及以上版本支持。

返回参数

名称 类型 描述
isLocalLAN boolean 是否局域网

请求示例

TYSdk.device.isLocalLAN();

TYSdk.device.isMeshDevice()

返回参数

名称 类型 描述
isMeshDevice boolean 是否是组网设备

请求示例

TYSdk.device.isMeshDevice();

TYSdk.device.isMeshWifiDevice()

返回参数

名称 类型 描述
isMeshWifiDevice boolean 是否是无线组网设备

请求示例

TYSdk.device.isMeshWifiDevice();

TYSdk.device.isShareDevice()

4.0 及以上版本支持。

返回参数

名称 类型 描述
isShareDevice boolean 是否分享设备

请求示例

TYSdk.device.isShareDevice();

TYSdk.device.isSigMeshDevice()

4.0 及以上版本支持。

返回参数

名称 类型 描述
isSigMeshDevice boolean 是否 SigMesh 设备

请求示例

TYSdk.device.isSigMeshDevice();

TYSdk.device.isWifiDevice()

返回参数

名称 类型 描述
isWifiDevice boolean 是否是无线 Wi-Fi 设备

请求示例

TYSdk.device.isWifiDevice();

TYSdk.device.putDeviceData()

请求参数

名称 类型 描述 必选
dpState { dpCode: number | string | boolean } 需要下发的 DP 状态

请求示例

TYSdk.device.putDeviceData(dpState);

// 如:给某个产品的开关(dpCode 为 switch)下发 true。

TYSdk.device.putDeviceData({ switch: true });

TYSdk.device.putLocalDpData()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
dpState { dpCode: number | string | boolean } 局域网情况下需要下发的 DP 状态

请求示例

TYSdk.device.putLocalDpData(dpState);

Mobile 方法

TYSdk.mobile.back()

请求示例

/**
 * @desc 从面板容器内跳出返回 app 列表
 */

TYSdk.mobile.back();

TYSdk.mobile.bottomListDialog()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
itemList string[] 列表
selected string 列表选中的某一项
onConfirmed () => void 确认函数

请求示例

/**
 * @desc 显示底部对话列表
 */

TYSdk.mobile.bottomListDialog(itemList, selected, onConfirmed);
API

TYSdk.mobile.disablePopGesture()

请求示例

/**
 * @desc ios 禁用手势全屏返回
 */

TYSdk.mobile.disablePopGesture();

TYSdk.mobile.enablePopGesture()

请求示例

/**
 * @desc ios 开启手势全屏返回
 */

TYSdk.mobile.enablePopGesture();

TYSdk.mobile.getMobileInfo()

返回参数

名称 类型 描述
MobileInfo MobileInfo 获取客户端信息

请求示例

/**
 * @desc 获取客户端信息,如 app 的版本信息,时区等
 */

TYSdk.mobile.getMobileInfo();

TYSdk.mobile.getNetworkState()

返回参数

名称 类型 描述
netWorkState 'WIFI' | 'GPRS' | 'BLE' | 'NONE' 获取网络状态

请求示例

TYSdk.mobile.getNetworkState()。

TYSdk.mobile.hideLoading()

请求示例

/**
 * @desc 隐藏 app 原生 loading UI 框
 */

TYSdk.mobile.hideLoading();

TYSdk.mobile.is24Hour()

返回参数

名称 类型 描述
is24Hour Promise<boolean> 是否是 24 小时制

请求示例

TYSdk.mobile.is24Hour()
 .then(data => {
    console.log('data :>> ', data);
  })
  .catch(error => {
    console.log('error :>> ', error);
  });

TYSdk.mobile.jumpSubPage()

请求参数

名称 类型 描述 必选
uiIdParams { uiId: string } 二级页面项目 uiId
pageParams object 传递的属性

请求示例

/**
 * @desc 根据 uiId 跳转二级页面
 */

TYSdk.mobile.jumpSubPage(uiIdParams: { uiId }, pageParams);

TYSdk.mobile.jumpTo()

请求参数

名称 类型 描述 必选
url string 设置网页 url 跳转功能,可跳转商城,官网。若短链已配置参数,则需添加参数,例如 ${url}?homeId=123456

请求示例

/**
 * @desc 跳转到一个没有被取消挂载的已存在场景,可以跳转至网页
 */

TYSdk.mobile.jumpTo(url);
所属模块 URL 参数 备注
场景模块 sceneAction {"action":"sceneUiUpdate"} 场景通用的动作,例如刷新 UI
createScene {"devid":"设备 Id"} 通用创建场景
createScene_allDevices zigbee 场景开关跳入,创建全部设备类型
editScene {"sceneId":"场景 Id"} 通用编辑场景
createAuto {"devId":"设备 Id","dpId":"功能点 Id","dpValue":"功能点 Value","actionDisplay":"动作展示名称","actionExcutor":"动作类型"} 声光报警器面板跳入,创建自动化,带入动作数据。actionDisplay:需要展示的动作名称,如:报警开关:开。actionExcutor:场景动作类型 红外 irIssueVii,普通设备 dpIssue。示例:{"devId":"vdevo1111111","dpId":"13","dpValue":"true","actionDisplay":"报警开关:开","actionExcutor":"dpIssue"}
createAutoWithCondition {"devId":"设备 Id","dpId":"功能点 Id","dpValue":"功能点 Value","operator":"操作符","exprDisplay":"表达式展示名称","entityType":"条件类型","extraInfo":"条件额外信息"}。 创建自动化,携带条件。operator: enum{'less': "小于", 'equal': "等于", 'greater': "大于"}。entityType:enum{1:"普通 dp",3: "普通气象", 6: "定时", 7: "人体传感器", 9: "识别到人脸", 10: "地理围栏"...}。exprDisplay:条件中 dp 点展示的内容。extraInfo:为灯类设备预留的百分比数值,没有特殊的显示可以传空。示例:{ "devId":"vdevo1111111", "dpValue":"true", "operator":"equal", "exprDisplay":"开关:开启", "entityType":"1", "extraInfo":"jsonString(预留的 json 串,个别设备需要)" }
家庭模块 tysh_house_manage 家庭管理页
tysh_room_manage { "homeId":"房间 id" } 房间管理页
tysh_family_add 添加家庭页
tysh_family_setting { "homeId":"房间 id" } 设置家庭页
tysh_room_setting { "homeId":"房间 id" } 设置房间页
tysh_family_add_member { "homeId":"房间 id" } 添加家庭成员页
tysh_family_associate_member_rn {"memberId":"成员 id","isAdmin":"是否是管理员"} 跳转关联成员页面
member_info {"memberId":"memberId","role":"roleType","homeId":"homeId"} 家庭成员信息
用户中心 about 关于我们
user 个人信息页
ty_user_center 用户中心页
ty_user_setting 设置页
browser { "url":"常见问题网页 url" } 常见问题
settingMoreService 跳转更多服务
ty_mobile_bind 手机号绑定
登录模块 registernew 注册新账号
tp_login 登录页
ty_auth_code_login {"countryCode":"国家码","account":"账号"} 验证码登录页
modifyPassword 登录状态下修改密码
ty_forget_password {"countryCode":"国家码","account":"账号"} 忘记密码
ty_signout 退出登录
ty_anonymous_mode 跳转体验模式
配网模块 presentGatewayCategroy {"gwId":"网关 Id"} 第一版的 Zigbee 网关面板配子设备路由
device_only_search_config_gw_sub {"gwId":"网关 Id"} 新版网关面板配网子设备之开始扫描配网路由
device_gw_sub_device_help_list {"gwId":"网关 Id"} 新版网关面板配网子设备之子设备类型列表路由
首页模块 ty_family_speech 语音助手桌面快捷方式短链
反馈模块 ty_feedback { "key" : "反馈信息 key" } 填写反馈页
helpAndFeedBack 反馈列表页
消息中心 messageCenter 消息中心页

TYSdk.mobile.mobileInfo

4.0 及以上版本支持。

返回参数

名称 类型 描述
MobileInfo MobileInfo 获取客户端信息

请求示例

console.log(TYSdk.mobile.mobileInfo);

TYSdk.mobile.showEditDialog()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
title string 标题
editString string 编辑信息内容
onConfirmed () => void 确认函数
onCanceled () => void 取消函数

请求示例

/**
 * @desc 编辑对话框
 */

TYSdk.mobile.showEditDialog(title, editString, onConfirmed, onCanceled);
API

TYSdk.mobile.showLoading()

请求示例

/**
 * @desc 显示 app 原生 loading UI 框
 */

TYSdk.mobile.showLoading();

TYSdk.mobile.showPromptDialog()

请求参数

名称 类型 描述 必选
confirmText string 确认文本
cancelText string 取消文本
title string 对话框标题
message string 文本
defaultValue string 默认值
onConfirmed () => void 确认函数
onCanceled () => void 取消函数

请求示例

/**
 * @desc 轻量级对话
 */

TYSdk.mobile.showPromptDialog(
  confirmText,
  cancelText,
  title,
  message,
  defaultValue,
  onConfirmed,
  onCanceled
);
API

TYSdk.mobile.simpleConfirmDialog()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
title string 标题
msg string 对话框信息
onConfirmed () => void 确认函数
onCanceled () => void 取消函数

请求示例

/**
 * @desc 简易确认对话框
 */

TYSdk.mobile.simpleConfirmDialog(title, msg, onConfirmed, onCanceled);
API

TYSdk.mobile.simpleTipDialog()

4.0 及以上版本支持。

请求参数

名称 类型 描述 必选
msg string 对话框信息
onConfirmed () => void 确认函数

请求示例

/**
 * @desc 简易提示框
 */

TYSdk.mobile.simpleTipDialog(msg, onConfirmed);
API

TYSdk.mobile.verSupported()

返回参数

名称 类型 描述
verSupported boolean 是否支持该 app 版本

请求示例

TYSdk.mobile.verSupported();

Native 方法

TYSdk.native.gotoDpAlarm()

说明: TYSdk.native.gotoDpAlarm 定时不支持raw类型设备功能点(dpId)。

请求参数

名称 类型 描述 必选
category string 定时类型
repeat number 0 代表需要选择重复、1 代表不需要
data data 需要定时的相关 DP 信息

请求示例

/**
 * @desc 跳转到云定时页面
 * @param {String} category - 自定义定时类型
 * @param {String | Number} dpId - 获取定时的 DP
 * @param {String } dpName - DP 显示的名字
 * @param {Array} rangeKeys - DP 的值范围
 * @param { Array } rangeValues - DP 的显示数据范围(rangeKeys 对应的文本信息)
 */

const dpId = TYSdk.device.getDpIdByCode(dpCode);
const dpName = Strings.getDpLang(dpCode);
const category = "schedule";
TYSdk.native.gotoDpAlarm({
  category,
  repeat: 0, // 0 代表需要选择重复、1 代表不需要
  data: [
    {
      dpId,
      dpName,
      selected: 0, // dp 点默认值的 index
      rangeKeys: [true, false],
      rangeValues: [dpValue1, dpValue2],
    },
  ],
});
APIAPI

TYSdk.native.showDeviceMenu()

请求示例

/**
 * @desc 跳转设备详情页
 */

TYSdk.native.showDeviceMenu();