阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient: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])
实际上,不需要做出响应。。。如果有需要的话,可以自定义方法,在方法里面加上响应,绑定到委托里,自动响应。
如何设置,请参考后面的章节。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:4.1 上报位置信息
阿里云物联网的位置服务,并不是完全独立的功能。位置信息包含 二维、三维,位置数据来源于属性的上传。 1)添加二维位置数据 打开 数据分析 -> 空间数据可视化 -> 二维数据 -> 添加,为上面演示的设备添加位置,刷新时间为1秒。在产品功能中,打开功能定义 ,在 标准功能 里,添加功能。 选择 其它类型 ,里面搜索 位置 ,在出现的列表中选一个(前面那几个都可以)。 笔者选择的是: 标识符:GeoLocation 适用类别:CuttingMachine 位置上传要设置的信息: 注意注意,如果选择的标准属性跟上图的类型定义不一样,需要手动修改。要把上面的位置属性按上图来改,有一个地方不同,都会失败。 当然,也可以一开始就按图手动创建。 2)基础代码 上传位置数据,不需要做什么大操作,按照属性的上传方法上传即可。模型代码参考: public class TestModel { public string id { get { return DateTime.Now.Ticks.ToString(); } set { } } public string version { ...
- 下一篇
阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:说明
CZGL.AliIoTClientCZGL.AliIoTClient 是一个阿里云物联网 SDK,基于 .NET Standard 2.0 开发, 提供了对接阿里云物联网平台的类库,采用 MQTT 协议(M2MQTT.DotNetCore),可以快速开发物联网设备对接阿里云物联网的程序。包括通讯连接与加密、Topic推送和订阅、设备属性上传和设置、事件上报、服务调用、位置上传,支持透传和 Alink json 两种数据方式。 CZGL.AliIoTClient 支持跨平台跨CPU,能够在市场上多种嵌入式开发板上运行,做过大量测试,兼容性稳定性没问题。 documentation address:https://www.cnblogs.com/whuanle/ 笔者即将毕业,再有一个月就不是大学生啦~从此就是社会人。 干嘛用的阿里云物联网文档:https://help.aliyun.com/product/30520.html?spm=a2c4g.750001.list.208.54f37b13JmMfSk 阿里云提供的物联网 SDK 中,是没有 .NET Core 客户端的,所以笔者写...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8