IoT Central - State values error: Another instance with the same id already exists
IoT Central - State values error: Another instance with the same id already exists
我就是不明白。
如果我要定义一个状态,我必须能够多次引用一个值,对吗?
传感器值为占用,值为 0(空闲)或 1(占用)。所以我有 2 个状态,但我只能在 Name it once 中使用 "occupancy" ...
此致,
马蒂亚斯
enter image description here
为了更好地理解,我们将状态 属性(例如报告的设备孪生 属性)称为 Occupancy。
以下屏幕片段显示了它的声明,其中占用状态 属性 有两个状态,例如 空闲 和 已占用(Occupancy.Free 和 Occupancy.Occupied):
及其在能力模型的接口实例中的声明(在我的示例中):
{
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:3",
"@type": [
"Property",
"SemanticType/State"
],
"displayName": {
"en": "Occupancy"
},
"name": "Occupancy",
"schema": {
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:xkuwdf9p:3",
"@type": "Enum",
"valueSchema": "integer",
"enumValues": [
{
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:xkuwdf9p:Free:3",
"@type": "EnumValue",
"displayName": {
"en": "Free"
},
"enumValue": 0,
"name": "Free"
},
{
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:xkuwdf9p:Occupied:3",
"@type": "EnumValue",
"displayName": {
"en": "Occupied"
},
"enumValue": 1,
"name": "Occupied"
}
]
}
}
正如您在上面的架构中看到的,enumValues 数组中的名称必须是唯一的,这就是您在使用相同的枚举名称时出现错误的原因。
请注意,设备可以在空闲 (0) 和已占用 (1) 等值之间更改占用 属性 的状态。
出于测试目的,可以使用 Azure IoT Hub Tester,请参见以下屏幕片段:
以下屏幕片段显示了在连接到 IoTC 应用程序的 PnP 设备(传感器 3)上报告的 属性 占用状态的更改:
发布占用状态:
获取设备孪生属性:
和 Occupancy 状态 属性:
的 IoTC 应用仪表板
如您所见,about 状态的值为 Free。
我就是不明白。
如果我要定义一个状态,我必须能够多次引用一个值,对吗?
传感器值为占用,值为 0(空闲)或 1(占用)。所以我有 2 个状态,但我只能在 Name it once 中使用 "occupancy" ...
此致, 马蒂亚斯
enter image description here
为了更好地理解,我们将状态 属性(例如报告的设备孪生 属性)称为 Occupancy。
以下屏幕片段显示了它的声明,其中占用状态 属性 有两个状态,例如 空闲 和 已占用(Occupancy.Free 和 Occupancy.Occupied):
及其在能力模型的接口实例中的声明(在我的示例中):
{
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:3",
"@type": [
"Property",
"SemanticType/State"
],
"displayName": {
"en": "Occupancy"
},
"name": "Occupancy",
"schema": {
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:xkuwdf9p:3",
"@type": "Enum",
"valueSchema": "integer",
"enumValues": [
{
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:xkuwdf9p:Free:3",
"@type": "EnumValue",
"displayName": {
"en": "Free"
},
"enumValue": 0,
"name": "Free"
},
{
"@id": "urn:rigado:interfaces:S1_Sensor:Occupancy:xkuwdf9p:Occupied:3",
"@type": "EnumValue",
"displayName": {
"en": "Occupied"
},
"enumValue": 1,
"name": "Occupied"
}
]
}
}
正如您在上面的架构中看到的,enumValues 数组中的名称必须是唯一的,这就是您在使用相同的枚举名称时出现错误的原因。
请注意,设备可以在空闲 (0) 和已占用 (1) 等值之间更改占用 属性 的状态。
出于测试目的,可以使用 Azure IoT Hub Tester,请参见以下屏幕片段:
以下屏幕片段显示了在连接到 IoTC 应用程序的 PnP 设备(传感器 3)上报告的 属性 占用状态的更改:
发布占用状态:
获取设备孪生属性:
和 Occupancy 状态 属性:
的 IoTC 应用仪表板如您所见,about 状态的值为 Free。