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

简介: 在上一章,格力空调温度 gree_temperature 设置了 读写 权限,因为空调的输出温度是可以被设置的。 CPU 温度是根据实际情况进行采集,而 空调温度 是遥控器设置的,服务器可以或者这个温度数据,同时也可以设置这个数据。

在上一章,格力空调温度 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
目录
相关文章
|
1月前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
|
30天前
|
传感器 数据采集 物联网
探索.NET nanoFramework:为嵌入式设备编程的新途径
探索.NET nanoFramework:为嵌入式设备编程的新途
40 7
|
1月前
|
存储 边缘计算 物联网
阿里云物联网平台:推动万物互联的智能化解决方案
随着物联网技术的快速发展,阿里云物联网平台为企业提供了一体化的解决方案,包括设备接入、数据管理和智能应用等核心功能。平台支持海量设备接入、实时数据采集与存储、边缘计算,并具备大规模设备管理、高安全性和开放生态等优势。广泛应用于智能制造、智慧城市和智能家居等领域,助力企业实现数字化转型。
162 5
|
1月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
59 8
|
2月前
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
|
2月前
|
开发框架 .NET 中间件
ASP.NET Core Web 开发浅谈
本文介绍ASP.NET Core,一个轻量级、开源的跨平台框架,专为构建高性能Web应用设计。通过简单步骤,你将学会创建首个Web应用。文章还深入探讨了路由配置、依赖注入及安全性配置等常见问题,并提供了实用示例代码以助于理解与避免错误,帮助开发者更好地掌握ASP.NET Core的核心概念。
95 3
|
1月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
5天前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
69 50
|
5天前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
17 2

热门文章

最新文章

相关产品

  • 物联网平台