SmartDeviceModel.init(deviceId?: string)

Requires:
@ray-js/panel-sdk≥1.0.0

Description

Return the instance after asynchronously initializing the smart device

Parameters

ParameterTypeRequiredDescription
deviceIdstringNoDevice ID; if omitted, automatically obtained from the miniapp launch parameters

Return Value

Type: Promise<SmartDeviceModel>
Smart device model instance after SmartDeviceModel initialization completes

Examples

Basic initialization.

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();                    // Automatically get deviceId from mini program launch parameters
await device.init('your-device-id');    // Or specify deviceId

Configure abilities and dp-kit interceptors.

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);