阿里云物联网.NET Core客户端 CZGL.AliloTClient:5.设置设备属性

简介: 阿里云物联网.NET Core客户端 CZGL.AliloTClient:5.设置设备属性

在上一章,格力空调温度 gree_temperature 设置了 读写 权限,因为空调的输出温度是可以被设置的。


CPU 温度是根据实际情况进行采集,而 空调温度 是遥控器设置的,服务器可以或者这个温度数据,同时也可以设置这个数据。


读写权限表示服务器有权限下发指令设置设备的属性。

注意的是,只有 读/读写 两种情况,没有 写 。


1)允许服务器设置设备属性


通讯就是 订阅/推送 、数据上下传输,本身没有这么复杂,无论 是属性、事件、服务,本质还是 Topic。


CZGL.AliIoTClient 作了细致的划分(快夸笔者),里面设置了很多参数,这样更自由、方便。


第3章已经说到如何打开和取消响应和其它功能,这里就不再解释。

以下为初始代码,将会在此基础上进行说明(请修改 DeviceOptions 的信息):


static AliIoTClientJson client;
        static void Main(string[] args)
        {
            // 创建客户端
            client = new AliIoTClientJson(new DeviceOptions
            {
                ProductKey = "a1A6VVt72pD",
                DeviceName = "json",
                DeviceSecret = "7QrjTptQYCdepjbQvSoqkuygic2051zM",
                RegionId = "cn-shanghai"
            });
            client.OpenPropertyDownPost();
            // 设置要订阅的Topic、运行接收内容的Topic
            string[] topics = new string[] { client.CombineHeadTopic("get") };
            // 使用默认事件
            client.UseDefaultEventHandler();
            // 连接服务器
            client.ConnectIoT(topics, null, 60);
            Console.ReadKey();
        }


Console.ReadKey() 前加一行代码,运行服务器下发属性设置命令:


client.OpenPropertyDownPost();


运行程序。


2)下发命令


打开阿里云物联网控制台,进入 在线调试 ,然后选择前面已经创建的产品、设备。

你也可以直接打开: https://iot.console.aliyun.com/lk/monitor/debug 进行如下设置:


调试设备:调试真实设备
功能:    格力空调温度(gree_temperature)
方法:    设置


然后将输入框里的数值改为 20.0 ,点击 发送指令


{
  "gree_temperature": 20
}


然后你可以看到控制台程序收到了指令:


get topic message,Date: 16:52:55
topic: /sys/a1A6VVt72pD/json/thing/service/property/set
get messgae :
{"method":"thing.service.property.set","id":"666237842","params":{"gree_temperature":20},"version":"1.0.0"}


由于使用 Alink json,所以服务器下发的指令实际上是这样的:


{"method":"thing.service.property.set","id":"666237842","params":{"gree_temperature":20},"version":"1.0.0"}


那为什么会输出其它东西呢?这是因为 CZGL.AliIoTClient 种设置了多个默认的事件方法,

它会输出收到的消息内容(message)等信息,你可以自定义方法来处理。


将 字符串格式化后:


{
  "method": "thing.service.property.set",
  "id": "666237842",
  "params": {
    "gree_temperature": 20
  },
  "version": "1.0.0"
}


但是目前只能收到服务器下发的命令,还没有写如何处理这些命令的方法,这需要你编写相应的方法绑定到委托事件中。


当收到属性消息时,会触发这些方法。如何设置,请参考后面的章节。


3)做出响应


当你收到服务器下发的指令时,你可以对这条 Topic 做出响应。


// 返回消息ID
public int Thing_Property_set(CZGL.AliIoTClient.PropertyDownModel model,
                             [bool isToLower = True])
public int Thing_Property_set(CZGL.AliIoTClient.PropertyDownModel model, 
                                [bool isToLower = True], 
                                [System.Text.Encoding encoding = null])
public int Thing_Property_set<TModel>(TModel model, [bool isToLower = True])



实际上,不需要做出响应。。。如果有需要的话,可以自定义方法,在方法里面加上响应,绑定到委托里,自动响应。

如何设置,请参考后面的章节。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
5月前
|
API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
102 0
|
7月前
|
缓存 运维 前端开发
阿里云云效操作报错合集之如何解决在使用流水线构建net8应用时遇到无法构建的报错
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
8月前
|
人工智能 物联网 开发者
**.NET技术革新赋能软件开发:从.NET 5的性能飞跃、跨平台支持,到微服务、物联网、AI和游戏开发的广泛应用。
【7月更文挑战第4天】**.NET技术革新赋能软件开发:从.NET 5的性能飞跃、跨平台支持,到微服务、物联网、AI和游戏开发的广泛应用。随着云集成深化、开源社区壮大,未来将聚焦性能优化、云原生应用及新兴技术融合,培养更多开发者,驱动软件创新。**
172 1
|
7月前
|
开发框架 JavaScript .NET
Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问
Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问
85 0
|
10月前
|
Java Maven
【开源视频联动物联网平台】vertx写一个mqtt客户端
【开源视频联动物联网平台】vertx写一个mqtt客户端
242 1
|
10月前
|
网络协议 C语言
【开源视频联动物联网平台】libmodbus库写一个Modbus TCP客户端
【开源视频联动物联网平台】libmodbus库写一个Modbus TCP客户端
129 0
|
10月前
|
JSON 开发框架 .NET
ASP.NET Core Web API设置响应输出的Json数据格式的两种方式
ASP.NET Core Web API设置响应输出的Json数据格式的两种方式
225 0
|
对象存储
.net core 阿里云接口之拷贝文件
紧接上文, 1)[.net core 阿里云接口之获取临时访问凭证](https://developer.aliyun.com/article/1363447?spm=a2c6h.12873639.article-detail.7.2b0e5b1cpeWbZ5 ".net core 阿里云接口之获取临时访问凭证") 2)[.net core 阿里云接口之将指定的OSS文件下载到流](https://developer.aliyun.com/article/1363886 ".net core 阿里云接口之将指定的OSS文件下载到流") 本文继续阿里云接口调用,将指定的OSS文件下载到流。
82 0
|
C# 对象存储
.net core 阿里云接口之将指定的OSS文件下载到流
紧接上文,[.net core 阿里云接口之获取临时访问凭证](https://developer.aliyun.com/article/1363447?spm=a2c6h.13262185.profile.8.180876540j71A9 ".net core 阿里云接口之获取临时访问凭证") 本文继续阿里云接口调用,将指定的OSS文件下载到流。 直接上代码: ```csharp /// <summary> /// 将指定的OSS文件下载到流 /// </summary> /// <param name="args"></param> /// <returns></returns> [H
350 0
|
6天前
|
传感器 人工智能 物联网
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
74 19

相关产品

  • 物联网平台