---
name: "getDeviceThingModelInfo"
mode: "kit"
versionRequirements:
  - { name: "DeviceKit", version: "2.0.7" }
  - { name: "@ray-js/ray", version: "0.6.23" }
platform:
  - "iOS"
  - "Android"
async: true
title: "getDeviceThingModelInfo - 获取设备物模型信息"
---

## getDeviceThingModelInfo

> [VERSION] DeviceKit >= 2.0.7 | @ray-js/ray >= 0.6.23

> [PLATFORM] iOS, Android

> ⚡ **支持 Promise 调用** — 不传 success / fail / complete 回调时，该方法返回 Promise。

### 描述

获取设备物模型信息。成功回调返回 GetDeviceThingModelInfoResponse，包含 modelId、productId、services 等物模型详情。

### 参数

| 属性 | 类型 | 必填 | 默认值 | 最低版本 | 描述 |
| --- | --- | --- | --- | --- | --- |
| `devId` | `string` | 是 | - | `2.0.7` | 设备id |
| `complete` | `() => void` | 否 | - | - | 接口调用结束的回调函数（调用成功、失败都会执行） |
| `success` | `(params: Object) => void` ↓见下方 | 否 | - | - | 接口调用成功的回调函数 |
| `fail` | `(params: Object) => void` ↓见下方 | 否 | - | - | 接口调用失败的回调函数 |

#### success 回调参数

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `modelId` | `string` | `3.3.0` | 物模型id |
| `productId` | `string` | `3.3.0` | 产品id |
| `productVersion` | `string` | `3.3.0` | 产品版本 |
| `services` | `ServiceModel[]` | `3.3.0` | 服务列表 |
| `extensions` | `Record<string, any>` | `3.3.0` | 物模型扩展属性，键值对形式，用于承载标准模型外的附加信息 |

#### fail 回调参数

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorMsg` | `string` | 错误信息 |
| `errorCode` | `string \| number` | 错误码 |
| `innerError` | `Object` | 错误扩展 |

##### fail(params).innerError 的属性

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorCode` | `string \| number` | 错误扩展码 |
| `errorMsg` | `string` | 错误扩展信息 |


### 引用对象

##### `interface` ServiceModel

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `properties` | `ThingProperty[]` | `3.3.0` | 属性列表 |
| `actions` | `ThingAction[]` | `3.3.0` | 动作列表 |
| `events` | `ThingEvent[]` | `3.3.0` | 事件列表 |

##### `type` ThingProperty

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `abilityId` | `number` | `3.3.0` | 属性id |
| `accessMode` | `string` | `3.3.0` | 访问模式: ro-只读, wr-只写, rw-读写 |
| `typeSpec` | `Record<string, any>` | `3.3.0` | 属性类型规格（JSON 结构，含数据类型、取值范围等定义） |
| `defaultValue` | `Record<string, any>` | `3.3.0` | 属性默认值 |
| `code` | `string` | `3.3.0` | 标识代码 |

##### `type` ThingAction

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `abilityId` | `number` | `3.3.0` | 动作id |
| `inputParams` | `Record<string, any>[]` | `3.3.0` | 动作输入参数规格列表，每项为参数定义对象（含 code、typeSpec 等字段） |
| `outputParams` | `Record<string, any>[]` | `3.3.0` | 动作输出参数规格列表，每项为参数定义对象（含 code、typeSpec 等字段） |
| `code` | `string` | `3.3.0` | 标识代码 |

##### `type` ThingEvent

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `abilityId` | `number` | `3.3.0` | 事件id |
| `outputParams` | `Record<string, any>[]` | `3.3.0` | 事件输出参数规格列表，每项为参数定义对象（含 code、typeSpec 等字段） |
| `code` | `string` | `3.3.0` | 标识代码 |


### 示例代码

#### 基础调用

```tsx
import { device } from '@ray-js/ray'

const { getDeviceThingModelInfo } = device;

getDeviceThingModelInfo({
  devId: 'device_001',
  success: (result) => {
    console.log('getDeviceThingModelInfo success', result);
  },
  fail: (error) => {
    console.log('getDeviceThingModelInfo fail', error.errorMsg);
  },
});
```
