---
name: "createMatterKit"
mode: "api"
versionRequirements:
  - { name: "", version: "1.15.0" }
title: "createMatterKit"
summary: "通过 createMatterKit 创建 matter-kit 实例，可配置 shouldConvert、debug、config（亮度/色温范围等）。"
questions:
  - "createMatterKit 的返回值里与 SDM 拦截器直接相关的是哪些字段？"
  - "shouldConvert 的典型用途是什么？"
  - "生产环境为什么建议关闭 debug？"
---

## createMatterKit

> [VERSION] v1.15.0+

### 描述

创建 matter-kit 实例：提供 SDM 拦截器、Matter ↔ 标准 DP 转换工具与 Hook。

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `options` | `CreateMatterKitOptions` | 否 | 工厂入参，字段含义见 |

### 返回值

类型: `MatterKit`

{MatterKit} matter-kit 实例

### 引用对象

##### `interface` CreateMatterKitOptions

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `shouldConvert` | `(params: InitDpStateInterceptorParams) => boolean` | `1.15.0` | 是否在拦截链路中转换 DP 状态；默认在 `init` 与 `onDpDataChange` 时转换。 |
| `debug` | `boolean` | `1.15.0` | 是否开启调试模式（控制台输出转换过程）。 |
| `config` | `Object` | `1.15.0` | 可选：标准侧 `bright_value` / `temp_value` 的 min、max 范围。 |

##### `type` DpState

功能点状态对象，key 为功能点 code，value 为功能点值

```typescript
export type DpState = Record<string, DpValue>;
```

##### `type` InitDpStateInterceptorParams

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `dpState` | `DpState` | 当前设备功能点状态 |
| `newDpState` | `DpState` | 新的设备功能点状态 |
| `action` | `"init" \| "onDpDataChange" \| "onDeviceInfoUpdated" \| "dp-kit"` | 拦截器动作 |

##### `type` DpValue

功能点值类型，可能为 boolean、number、string

```typescript
export type DpValue = boolean | number | string;
```

##### `type` CreateMatterKitOptions.config

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `brightnessRange` | `Object` | 标准侧亮度数值范围 |
| `colorTemperatureRange` | `Object` | 标准侧色温数值范围 |

##### `type` CreateMatterKitOptions.config.brightnessRange

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `min` | `number` | 最小值 |
| `max` | `number` | 最大值 |

##### `type` CreateMatterKitOptions.config.colorTemperatureRange

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `min` | `number` | 最小值 |
| `max` | `number` | 最大值 |


### 示例代码

#### 示例

```ts
import { SmartDeviceModel, createMatterKit } from '@ray-js/panel-sdk';
import { defaultSchema } from '@/devices/schema';

type SmartDeviceSchema = typeof defaultSchema;

export const matterKit = createMatterKit({ debug: false });
export const devices = {
  common: new SmartDeviceModel<SmartDeviceSchema>({
    interceptors: matterKit.interceptors,
  }),
};
```
