孪生体中孪生节点与物理设备之间是解耦关系,您可通过数据映射功能,将物理设备上报的原始数据映射到孪生体的业务模型中,更灵活地实现业务场景需求。本文介绍如何将温度传感器设备上报的数据,映射到园区下孪生节点的物模型属性上,实现园区温度统计。
前提条件
操作步骤
在孪生空间详情页面的左侧导航栏,单击数据接入,然后单击添加数据映射。
在添加数据映射面板,配置参数,然后单击确定。
本文示例以设备自定义Topic上报数据为例,将设备Device1、Device2、Device3、Device4上报的温度temperature数据,分别映射到孪生节点温度传感器1、温度传感器2、温度传感器3、温度传感器4的属性温度temperature上。
参数
配置
Topic
选择产品温度传感器下全部设备的自定义Topic
/${productKey}/${deviceName}/user/update
。上报消息如下:
{ "temperature":32 }
脚本
下载脚本文件transformScript.txt,将模板内容替换为以下代码,保存后上传,用来解析所有设备的上报数据。
//获取设备上报的消息内容。 var payload = payload("json"); //定义Map类型数据,存储键值对数据。 var data = {}; //获取设备名称。 var deviceName = topic(2); //获取设备上报的温度数据。 var t = payload.temperature; //存储不同设备上报的数据。 if (deviceName == "Device1") { data["temp1"] = t; }if (deviceName == "Device2") { data["temp2"] = t; }if (deviceName == "Device3") { data["temp3"] = t; }if (deviceName == "Device4") { data["temp4"] = t; } return data;
输出
下载输出文件destConfig.json,将模板内容替换为以下代码,保存后上传,实现解析后数据的映射。
重要代码中的iotId,需替换为您实际场景中添加的孪生节点ID。
[ { //key值对应data数据中的字段。 "key": "temp1", //iotId值对应孪生节点ID。 "iotId": "hX***9r00", //孪生节点下的功能属性标识符,获取key对应字段的输出值,即节点“hX***9r00”下属性temperature值更新为data["temp1"]的值。 "identifier": "temperature" }, { "key": "temp2", "iotId": "bY***9r00", "identifier": "temperature" },{ "key": "temp3", "iotId": "FH***9r00", "identifier": "temperature" },{ "key": "temp4", "iotId": "ff***9r00", "identifier": "temperature" } ]
在数据映射列表,查看已添加数据映射脚本的解析状态。
状态列显示解析完成,表示数据映射脚本添加成功。
后续步骤
文档内容是否对您有帮助?