基于MindSphere创建资产及数据读写相关技术咨询
关于MindSphere带Aspects的资产创建与读写的解答
1. 可运行的Java SDK代码示例(创建带Aspects的资产)
当然有!下面是基于MindSphere Java SDK的可运行代码示例,包含资产创建、Aspects关联,以及基础的读写操作逻辑,附带必要的依赖配置:
首先,在你的pom.xml中添加MindSphere SDK依赖(请匹配你的环境版本):
<dependency> <groupId>com.siemens.mindsphere.sdk</groupId> <artifactId>assetmanagement</artifactId> <version>4.0.0</version> </dependency>
核心代码如下:
import com.siemens.mindsphere.sdk.assetmanagement.client.AssetManagementClient; import com.siemens.mindsphere.sdk.assetmanagement.model.*; import com.siemens.mindsphere.sdk.core.exception.MindSphereException; import com.siemens.mindsphere.sdk.core.model.MindsphereCredentials; public class CreateAssetWithAspects { public static void main(String[] args) { // 初始化MindSphere凭证(替换为你的实际信息) MindsphereCredentials credentials = MindsphereCredentials.builder() .clientId("YOUR_CLIENT_ID") .clientSecret("YOUR_CLIENT_SECRET") .tenant("YOUR_TENANT_ID") .gatewayHost("https://gateway.eu1.mindsphere.io") // 根据你的区域调整 .build(); // 构建Asset Management客户端 AssetManagementClient client = AssetManagementClient.builder() .mindsphereCredentials(credentials) .build(); try { // 1. 构建资产基础信息 AssetCreate assetCreate = AssetCreate.builder() .assetId("smart-sensor-001") // 自定义唯一资产ID .name("WarehouseTemperatureSensor") .description("Temperature monitoring sensor for warehouse zone A") .typeId("core.mindsphere.asset") // 使用默认资产类型,或自定义类型ID .build(); // 2. 构建要关联的Aspect(示例为温度监测Aspect) AspectCreate tempAspect = AspectCreate.builder() .aspectId("WarehouseTempAspect") .name("Temperature Tracking") .description("Captures real-time temperature and humidity data") .typeId("com.siemens.sensor.temp-humidity.v1") // 替换为你的Aspect类型ID .build(); // 3. 将Aspect绑定到资产创建请求 assetCreate.aspects(java.util.List.of(tempAspect)); // 4. 调用API创建资产 Asset createdAsset = client.createAsset(CreateAssetRequest.builder().asset(assetCreate).build()); System.out.println("Asset created successfully! ID: " + createdAsset.getAssetId()); // --- 写入Aspect数据示例 --- TimeSeriesDataPoint dataPoint = TimeSeriesDataPoint.builder() .timestamp(java.time.OffsetDateTime.now()) .fields(java.util.Map.of("temperature", 24.3, "humidity", 62.1)) // 匹配Aspect字段 .build(); client.addTimeSeriesData(AddTimeSeriesDataRequest.builder() .assetId(createdAsset.getAssetId()) .aspectId(tempAspect.getAspectId()) .dataPoints(java.util.List.of(dataPoint)) .build()); System.out.println("Aspect data written successfully!"); // --- 读取Aspect数据示例 --- TimeSeriesDataResponse dataResponse = client.getTimeSeriesData(GetTimeSeriesDataRequest.builder() .assetId(createdAsset.getAssetId()) .aspectId(tempAspect.getAspectId()) .from(java.time.OffsetDateTime.now().minusMinutes(10)) .to(java.time.OffsetDateTime.now()) .build()); System.out.println("Fetched Aspect data: " + dataResponse.getItems()); } catch (MindSphereException e) { System.err.println("Operation failed: " + e.getMessage()); e.printStackTrace(); } } }
注意:替换代码中
YOUR_CLIENT_ID、YOUR_CLIENT_SECRET等占位符为你的实际凭证,Aspect类型ID需要提前在MindSphere中定义(或使用系统内置类型)。
2. 通过Web-GUI创建带Aspects的资产
完全可以通过MindSphere的Web界面创建资产,步骤很直观:
- 登录你的MindSphere租户,打开Asset Manager应用(看不到的话说明账号无权限,需联系租户管理员)
- 左侧菜单点击Assets,右上角点击Create Asset按钮
- 在创建表单中填写资产ID、名称、描述,选择资产类型(默认
core.mindsphere.asset即可) - 切换到Aspects标签页,点击Add Aspect,选择已有的Aspect类型(或创建新类型),填写Aspect的ID和名称
- 点击Create完成资产创建
- 后续读写Aspect数据,可在资产详情页的Time Series标签页手动查询/录入,或通过集成设备自动同步数据
3. 所需的账号类型
要创建资产,你的账号需要具备以下权限之一:
- 拥有**Asset Administrator(资产管理员)**角色:这是租户级角色,允许管理所有资产和Aspect
- 拥有自定义角色,且该角色被分配了
assetmanagement.Assets.Create、assetmanagement.Aspects.Create等核心权限
普通用户账号默认无此权限,需联系租户管理员为你配置对应角色或权限。
内容的提问来源于stack exchange,提问作者user3579222
相关产品推荐
相关产品推荐

