
# 物模型相关问题
本文介绍物模型相关的问题和解决方法。
#### 如何进行产品模型开发？
物联网平台提供线上和线下两种产品模型开发方式：线上开发指导详见[线上开发参考](https://support.huaweicloud.com/devg-iothub/iot_02_0005.html)；线下开发指导详见[线下开发参考](https://support.huaweicloud.com/devg-iothub/iot_02_4012.html)。
#### 在线开发产品模型时，如何选择数据类型？
数据类型的配置可以参考如下原则：
- int：当上报的数据为整数或布尔值时，可以匹配为此类型。插件开发中可匹配int型或array类型。
- decimal：当上报的数据为小数时，可以匹配为此类型。插件开发中可匹配string或者int或者array类型。
- string：当上报的数据为字符串、枚举值或布尔值时，可以配置为此类型。如果为枚举值或布尔值，值之间需要用英文逗号（","）分隔。插件开发中可匹配string类型或者array类型。
- dateTime：当上报的数据为日期时，可以配置为此类型。插件开发中可匹配string类型或者array类型。
- jsonObject：当上报的数据为json结构体时，可以配置为此类型。插件开发者可匹配string或者array类型。
 
#### 产品模型文件中，serviceId和serviceType必须保持一致吗？
不需要。线下开发编解码插件时，serviceId和serviceType可以不一致，一个serviceType可以对应多个serviceId。线上开发为简化开发流程，降低用户理解成本，将serviceType设置为与serviceId一致，均对应界面上的服务类型。
#### 网关添加的子设备所属产品为空怎么处理？
通过Agent Lite的接口添加子设备时，接口参数携带的设备信息需要与子设备在物联网平台上定义的产品模型一致，否则会因为匹配不上产品而导致子设备所属产品为空。请删除所属产品为空的子设备后重新添加，并保证设备信息无误。
#### 设备接入服务如何上传带插件的产品模型？
设备接入平台不支持上传带插件的产品模型。若您希望使用带插件的产品模型，请先在设备接入控制台开发或导入产品模型后，再单独进行编码插件开发。
#### 在产品详情中上传产品模型，无法单击确定按钮？
**问题描述**
用户在产品详情页面中上传了产品模型，无法单击确定按钮。
图1产品-上传模型文件   
![](https://support.huaweicloud.com/iothub_faq/figure/zh-cn_image_0000001950352382.png "点击放大")
**可能原因**
1. 上传的产品模型文件命名不符合规范。
2. 上传的产品模型的压缩文件不是zip格式的。
**解决方法**
1. 检查产品模型文件的名称是否符合deviceType_manufacturerId_model.zip的格式，并检查"deviceType"、"manufacturerId"、"model"三个字段是否和devicetype-capability.json中的定义一致。
2. 检查产品模型文件是否压缩为zip格式。如非zip格式，请解压后重新压缩、上传。
 
#### 在产品详情上传产品模型，弹窗提示"文件输入格式有误"？
**问题描述**
客户在产品详情界面里，上传产品模型文件，提示"文件输入格式有误"。
**可能原因**
1. 模型的json文件格式错误。
2. servicetype-capability.json中commands/properties的值不是数组格式。
3. 压缩包中存在其他的文件。
**解决方法**
1. 检查每个json文件的格式是否正确，可以使用第三方格式校验工具进行检查。
2. 检查servicetype-capability.json中commands/properties的值是否为数组格式（值是否包含在中括号之内）。
3. 检查产品模型的压缩包是否存在其他文件或者隐藏文件，如果存在其他文件或者隐藏文件，则删除后重新上传。
 
#### 在产品详情上传产品模型，弹窗提示厂商ID和设备型号已存在？
**问题描述**
在产品详情界面上传产品模型，系统提示厂商ID和设备型号已存在。
**可能原因**
物联网平台上已经存在相同设备型号和厂商ID的产品模型和插件。
**解决方法**
1. 删除另一个产品或账户下的该插件和产品模型（先删除插件），再导入产品模型即可。
2. 修改设备型号和厂商ID后，再导入产品模型。
 
