SmartDeviceModel.init(deviceId?: string)

版本要求:
@ray-js/panel-sdk≥1.0.0

描述

异步初始化智能设备后再返回其实例

参数

参数类型必填说明
deviceIdstring否设备 ID,不传则从小程序环境启动参数自动获取

返回值

类型:Promise<SmartDeviceModel>
SmartDeviceModel 初始化完成的智能设备模型实例

示例代码

基础初始化

import { SmartDeviceModel } from '@ray-js/panel-sdk';

const schema = [
  { code: 'switch_led', property: { type: 'bool' }, type: 'obj', mode: 'rw', id: 1, name: 'Switch' },
  { code: 'brightness', property: { type: 'value', min: 10, max: 1000, step: 1 }, type: 'obj', mode: 'rw', id: 2, name: 'Brightness' },
] as const;

type Schema = typeof schema;
const device = new SmartDeviceModel<Schema>();
await device.init();                    // 自动从小程序启动参数获取 deviceId
await device.init('your-device-id');    // 或指定 deviceId

配置 abilities 和 dp-kit 拦截器

import { SmartDeviceModel, SmartSupportAbility, createDpKit } from '@ray-js/panel-sdk';
import { protocols } from './devices/protocols';

const dpKit = createDpKit<Schema>({
  protocols,
  sendDpOption: { immediate: true, throttle: 300 },
});

const device = new SmartDeviceModel<Schema>({
  abilities: [new SmartSupportAbility()],
  interceptors: dpKit.interceptors,
});

await device.init();
dpKit.init(device);