有兴趣了解企业服务器通过 AMQP 接入物联网平台的可以看我上一篇文章,下面说一下企业服务器下发指令到物联网设备,修改设备属性

一、创建产品与设备

还不清楚的查看下面文档
https://help.aliyun.com/document_detail/73705.html?spm=a2c4g.11186623.6.566.27647cbcrXNYwD

二、下发指令修改属性

创建maven项目引入如下依赖

<!--IoT Java SDK的Maven依赖坐标:-->

<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-iot -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-iot</artifactId>
    <version>6.8.0</version>
</dependency>

<!--阿里云公共包依赖坐标 -->

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>3.5.1</version>
</dependency>

Java代码下发指令到灯设备,修改设备开关属性为0

package org.example;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.iot.model.v20180120.SetDevicePropertyRequest;
import com.aliyuncs.iot.model.v20180120.SetDevicePropertyResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import org.json.JSONObject;

public class App {
    public static void main(String[] args) throws ClientException {
     //将光标定位到账号头像上,选择accesskeys,如果使用子账户 RAM 的accesskeys记得授权物联网平台权限
        String accessKey = "LTAxxxxxxxxxxxxxxZr"; 
        String accessSecret = "jxxxxxxxxxxxxxxxxxxAkeR";
        DefaultProfile.addEndpoint("cn-shanghai", "cn-shanghai", "Iot", "iot.cn-shanghai.aliyuncs.com");
        IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKey, accessSecret);
        DefaultAcsClient client = new DefaultAcsClient(profile);
        SetDevicePropertyRequest request = new SetDevicePropertyRequest();
        //ProductKey 以及 DeviceName可以在设备信息详情页获取
        request.setProductKey("a1Ixxxxxxez6");
        request.setDeviceName("Dexxxxxht1");
        JSONObject itemJson = new JSONObject();
        //该选项为当前设备属性,下面给出具体位置
        itemJson.put("LightSwitch", 0);
        request.setItems(itemJson.toString());

        try {
            SetDevicePropertyResponse response = client.getAcsResponse(request);
            System.out.println(response.getRequestId() + ", success: " + response.getSuccess());
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

三、灯产品的详细信息

此测试修改的设备信息如下

1、基础信息

在这里插入图片描述

2、产品属性

在这里插入图片描述

3、属性是否可修改

点击查看,发现此产品开关属性支持修改

在这里插入图片描述

四、测试
1、打开在线测试

从上到下依次选择产品设备,选择获取设备的开关属性,得到返回结果为 1
在这里插入图片描述

2、运行程序,修改设备属性为 0

运行结果如下,返回 true ,表示修改成功
在这里插入图片描述

3、如下,可以看到灯设备开关属性已经修改为 0

在这里插入图片描述
注意:修改设备属性是一定要保证,属性名以及属性值范围与产品预定义一直,否则会报错

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐