设置 IoT 提供程序操作
设置 IoT(物联网)提供程序 后,可以根据从组织的 IoT 设备捕获的数据指定要触发的一组操作。 除了五个预定义操作外,您还可以创建与提供程序相关联的自定义操作,以自动化 Connected Field Service 操作的各个方面。
Connected Field Service 附带以下操作:
拉取设备数据
拉取设备数据操作从 IoT 提供程序提取一个设备或一组设备的最新数据。 它将显示在设备数据历史记录选项卡中。
因为数据可以来自多个设备,所以拉取设备数据操作需要 EntityCollection 作为输入。 下表介绍了 EntityCollection 的参数。
参数 | 类型 | Details |
---|---|---|
msdyn_iotdeviceid | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
msdyn_name | string | 设备的名称 |
@odata.type | string | 实体的 OData 类型 |
示例输入:
{
"EntityCollection":[
{
"msdyn_iotdeviceid":"B25B5E21-326E-4C36-9296-C195286DGEC9",
"msdyn_name":" HVAC 32443",
"@odata.type":"Microsoft.Dynamics.CRM.msdyn_iotdevice"
},
{
"msdyn_iotdeviceid":"B25B5E21-326E-4C36-9296-C195286DGEE9",
"msdyn_name":" HVAC 92232",
"@odata.type":"Microsoft.Dynamics.CRM.msdyn_iotdevice"
}
]
}
拉取设备数据操作以序列化 JSON 格式返回提取的数据。 下表介绍了 PullDeviceDataResultsJSON 输出的参数。
JSON 属性 | 类型 | Details |
---|---|---|
ID | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
ConnectionState | boolean | 设备是断开连接 (false) 还是已连接 (true) |
ConnectionStateUpdatedTime | datetime | 来自 IoT 提供程序的上次连接状态更新的时间戳 |
DeviceReportedProperties | string | 设备的报告属性,格式为 JSON 字符串 |
LastActivityTime | datetime | 设备的上次报告活动的时间戳 |
示例输出:
{
"PullDeviceDataResultsJSON":[
{
"Id":"B25B5E21-326E-4C36-9296-C195286DGEC9",
"ConnectionState":true,
"ConnectionStateUpdatedTime":"2019-08-2911:00:00",
"DeviceReportedProperties":{
"temperature":65.6366305680316,
"humidity":21.3333366666
},
"LastActivityTime": "2019-08-2011:00:00"
},
{
"Id":"B25B5E21-326E-4C36-9296-C195286DGEE9",
"ConnectionState":true,
"ConnectionStateUpdatedTime":"2019-08-2911:00:00",
"DeviceReportedProperties":{
"temperature":62.8366305680316,
"humidity":19.5333366666
},
"LastActivityTime": "2019-08-2011:00:00"
}
]
}
注册设备
注册设备操作在设备或设备集合与 IoT 提供程序之间创建关联。 可以注册技术人员更换的新设备和设备或组件。 注册设备后,它会出现在 IoT 设备记录的注册历史记录选项卡中。
因为一次可以注册多个设备,所以注册设备操作需要 EntityCollection 作为输入。 下表介绍了 EntityCollection 的参数。
参数 | 类型 | Details |
---|---|---|
msdyn_iotdeviceid | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
msdyn_name | string | 设备的名称 |
@odata.type | string | 实体的 OData 类型 |
示例输入:
{
"EntityCollection": [
{
"msdyn_iotdeviceid": "5754578D-1F9A-4720-BC21-3C3042C05B2F",
"msdyn_name": "Coffee maker 1",
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_iotdevice"
},
{
"msdyn_iotdeviceid": "5754578D-1F9A-4720-BC21-3C3042C06C5F",
"msdyn_name": "Coffee maker 2",
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_iotdevice"
}
]
}
注册设备操作以序列化 JSON 格式返回注册结果。 下表介绍了 RegistrationResultsJSON 输出的参数。
JSON 属性 | 类型 | Details |
---|---|---|
ID | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
RegistrationStatus | OptionSetValue | 从 IoT 提供程序注册回 Connected Field Service 的状态 值和标签: - 192350000:未知 - 192350001:未注册 - 192350002:正在进行 - 192350003:已注册 - 192350004:错误 注意:OptionSet 是具有标签值映射的选项列表,如 drop-down list 控件。 |
DeviceId | string | IoT 提供程序系统中设备的 ID |
邮件 | string | 向 Connected Field Service 用户发送的有关注册的详细消息 |
示例输出:
{
"RegistrationResultsJSON":[
{
"Id":"5754578D-1F9A-4720-BC21-3C3042C05B2F",
"RegistrationStatus":{"Value":192350003},
"DeviceId":"DeviceIdFromThirdPartyOrUserDefined",
"Message":"Registration info/warning/error message"
},
{
"Id":"5754578D-1F9A-4720-BC21-3C3042C06C5F",
"RegistrationStatus":{"Value":192350003},
"DeviceId":"DeviceIdFromThirdPartyOrUserDefined",
"Message":"Registration info/warning/error message"
}
]
}
聚合设备读数
聚合设备读数操作从 IoT 提供程序获取聚合设备数据。 聚合数据提供 Connected Field Service 中摘要磁贴上设备状况的快速快照。
下表介绍了聚合设备读数操作的输入参数。
参数 | 类型 | Details |
---|---|---|
deviceId | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
measures | string | JSON 格式的度量列表;示例请参见以下代码片段 |
示例输入:
[
{
"Measure":"Humidity",
"Aggregate":"Min",
"TimeRangeType":"Days",
"TimeRangeValue":7
},
{
"Measure":"Temperature",
"Aggregate":"Avg",
"TimeRangeType":"Days",
"TimeRangeValue":14
}
]
聚合设备读数操作以序列化 JSON 格式返回度量。 下表显示了输出参数。
JSON 属性 | 类型 | Details |
---|---|---|
measuresOutput | string | JSON 格式的返回的度量的值;示例请参见以下代码片段 |
示例输出:
[
{
"Name":"Humidity",
"Aggregate":"Min",
"Unit":"F",
"TimeRangeValue":7,
"TimeRangeType":"Days",
"Position":1,
"Value":"39.13334"
},
{
"Name":"Temperature",
"Aggregate":"Avg",
"Unit":"F",
"TimeRangeValue":14,
"TimeRangeType":"Days",
"Position":2,
"Value":"65.13334"
}
]
如果您未使用聚合设备读数操作,聚合设备读数基于设备数据历史记录实体。
查询设备读数
查询设备读数操作从 IoT 提供程序获取历史设备数据(如温度和湿度),并将其显示为时间序列图。
下表介绍了查询设备读数操作的输入参数。
参数 | 类型 | Details |
---|---|---|
From | datetime | ISO 格式的读取(度量)开始时间;例如,“2020-04-10T13:51:55.781Z” |
操作 | datetime | ISO 格式的读取(度量)结束时间 |
IoTDeviceId | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
间隔 | string | 以 ISO-8601 持续时间格式指定的绘图点的间隔大小;例如,1 分钟是“PT1M”,1 毫秒是“PT0.001S” 所有间隔都具有相同大小。 一个月始终需要转换为 30 天,一年始终为 365 天。 |
示例输入:
{
"From":"2023-04-01T18:05:37.661Z",
"To":"2023-05-31T18:05:37.661Z",
"IotDeviceId":"50fce36f-9e3e-ed11-bba3-000d3a8b1de9",
"Interval":"P1D"
}
查询设备读数操作以序列化 JSON 格式返回数据。 下表显示了输出参数。
JSON 属性 | 类型 | Details |
---|---|---|
AggregatedDeviceReadings | String | JSON 格式的返回的度量的值;示例请参见以下代码片段 |
示例输出:
{
"HVAC Unit 123": {
"Temperature": {
"2017-04-01T06:00:00Z": {
"min": -29,
"max": 62.59,
"avg": 16.89,
"sum": 4054.14,
"count": 240
},
"2017-04-01T08:00:00Z": {
"min": -29,
"max": 62.59,
"avg": 16.89,
"sum": 4054.14,
"count": 480
}
},
"Humidity": {
"2017-04-01T06:00:00Z": {
"min": 10,
"max": 48.3,
"avg": 29.25,
"sum": 7020.62,
"count": 240
},
"2017-04-01T08:00:00Z": {
"min": 10,
"max": 48.3,
"avg": 29.25,
"sum": 7020.62,
"count": 480
}
}
}
}
获取设备事件
“获取设备事件”操作从设备服务历史记录提取事件,并将它们显示为“查询设备读数”操作创建的图表底部的图钉。 您可以包括任何自定义实体,如上次执行资产升级的时间。
备注
您不需要创建新操作。 在 msdyn_IoTGetDeviceEvents
操作上注册自定义插件,如创建事件的插件。
下表介绍了获取设备事件操作的输入参数。
JSON 属性 | 类型 | Details |
---|---|---|
From | datetime | ISO 格式的读取(度量)开始时间;例如,“2020-04-10T13:51:55.781Z” |
操作 | datetime | ISO 格式的读取(度量)结束时间 |
IoTDeviceId | string | Connected Field Service 中的 GUID 设备 ID (msdyn_iotdevice),已转换为字符串 |
示例输入:
{
"IotDeviceId": "50fce36f-9e3e-ed11-bba3-000d3a8b1de9",
"From": "2023-06-12T18:57:54.864Z",
"To": "2023-06-12T19:57:54.864Z"
}
获取设备事件操作以序列化 JSON 格式返回数据。 下表显示了输出参数。
JSON 属性 | 类型 | Details |
---|---|---|
EventsName | string | 事件类别的简短说明;使用它可以显示或隐藏该类别中的所有事件 |
时间戳 | string | 格式为 ISO 格式的字符串的事件的时间戳;事件图钉的 x 轴时间戳 |
Color | string | 以十六进制代码字符串形式提供的事件图钉的颜色 |
说明 | string | 事件的简短说明,在用户将鼠标悬停在图钉上或选择图钉以查看详细信息时显示 |
ID | string | 事件的 ID;可以是名称或其他用户友好值,如工作订单编号或预订确认码 |
Entity | string | 与事件相关的 Dataverse 实体名称;例如,“msdyn_workorder” |
URL | string | 事件的详细信息页面的 URL,如工作订单窗体的链接 如果您传递实体和 GUID,系统会自动生成超链接。 |
GUID | string | Dataverse 中实体记录的 GUID,转换为字符串 |
示例输出:
{
"Service History": {
"2019-08-07T19:14:53Z": {
"color": "#FF6300",
"description": "Work Order Created",
"id": "00001",
"entity": "msdyn_workorder",
"url": "",
"guid": "952a7592-8818-ea11-a811-000d3a5466d7"
},
"2019-08-08T19:14:53Z": {
"color": "#ECC5AC",
"description": "Work Order Created",
"id": "00002",
"entity": "msdyn_workorder",
"url": "",
"guid": "952a7592-8818-ea11-a811-000d3a5466d9"
},
"2019-09-21T09:34:53Z": {
"color": "#ECC5AC",
"description": "Case Created",
"id": "000121",
"entity": "msdyn_incident",
"url": "",
"guid": "952a7592-8818-ea11-a811-000d3a5466d0"
}
},
"Asset History": {
"2019-08-07T19:14:53Z": {
"color": "#FF6400",
"description": "Asset Model Upgraded",
"id": "001223",
"entity": "new_assetupgraded",
"url": "",
"guid": "952a7592-8818-ea11-a811-000d3a5466d7"
}
}
}