干货分享丨玩转物联网IoTDA服务系列六-恒温空调
摘要:本文主要讲述空调接入到物联网平台后,通过恒温空调控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。
场景简介
通过恒温控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。
该场景主要描述的是应用侧或控制台可以给离线设备下发缓存命令,待设备上线后执行,控制台通过设备影子配置属性,待设备上线后上报的属性不匹配的话,会自动下发属性修改的指令,直至修改成功。
核心知识点:产品模型、编解码插件、设备影子、属性上报、属性修改。
场景流程

流程解释:
1.创建恒温空调产品:物联网平台以产品为粒度管理批量设备。用户可以通过平台提供的API接口或控制台创建产品。
2.上传产品模型(编解码插件):产品模型定义了设备的基本属性和命令。您可以通过控制台在线开发产品模型,通过模板离线开发产品模型再上传到控制台,也可以导入公共产品库的模型。通过前面几个示例,您应该发现当设备若采用二进制上传方式时,需要开发编解码插件上传到平台;若采用Json数据格式上传,则无需编解码插件。
3.注册恒温空调设备:平台提供了应用侧API接口可以注册设备,也可以通过控制台批量注册。注册时获取的设备ID,是设备侧与平台交互的唯一标识。
4.配置恒温预期温度:这里需要引入一个概念:设备影子。当设备不在线时,平台可以缓存来自应用侧的设备影子预期配置,待设备上线后同步属性给设备,若设备上报的对应属性值与预期不一致时,平台会继续下发,直到属性更改成功。这里的预期是恒温控制系统,根据季节情况,统一调整空调的默认温度,例如冬天设置为28度,夏天设置为24度。
设备影子可以通过控制台“设备详情 > 设备影子 > 属性配置”中进行设置。如果无法配置,那可能是您没有添加产品模型。设备影子依赖设备属性,而属性又依赖产品模型的定义,所以设备影子跟属性一样,您需要先有产品模型的属性定义,才能正常使用设备影子。
5.设备影子缓存预期值:设备影子是IoTDA里面的一个服务,设备在平台的孪生数据,主要提供缓存属性修改,属性同步的机制,目的是确保设备属性值与平台保持一致,即使设备离线,也能提供修改属性的能力,待设备上线后自动同步生效。
6.空调通电开机:空调开机后,通过二进制或MQTT都可以上线或上报(与平台建立连接),平台缓存的预期值就会通过设备属性修改下发给空调。
7.上报当前温度属性值:空调上报当前的温度属性值,即空调的默认温度调节的度数。
8.设备影子更新属性值:如果预期温度是28度,而空调上报的温度调节度数是26度,则说明未设置成功,平台会重复下发属性修改,通知空调调节温度到28度。如果空调上报的度数是28度,说明预期值在设备侧设置成功,平台不再下发属性修改。
9.上报空调温度属性值:当空调按预期设置温度成功后,上报的属性值平台会通知给应用侧恒温控制系统。当然,应用侧和控制台都可以主动查询设备影子,来决定是否要做预期的调整。
最佳实践
场景说明
通过恒温控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。空调接入到物联网平台后,用户可以在应用侧或者设备接入控制台设置设备影子,将预置的温度通过设备影子下达属性修改给空调。空调收到修改属性的要求后,自动调节温度。
恒温空调产品开发
(1)登录华为云官方网站,访问设备接入服务。
(2)单击“立即使用”进入设备接入控制台。
(3)单击左侧导航栏的“产品”,单击右下角下拉框,选择新建产品所属的资源空间。
(4)单击右上角的“创建产品”,创建恒温空调产品,填写参数后,点击“立即创建”。


(5)在功能定义页面,选择“自定义功能”,参考下表,完成产品模型配置。


(6)进入“设备 > 设备注册”页面,单击“注册设备”,参考下表填写参数。


配置设备影子
用户可以选择在应用侧调用配置设备影子预期数据接口设置设备影子,也可以在设备接入控制台设置设备影子。此处以在设备接入控制台设置设备影子为例。
1)登录控制台,在左侧导航栏点击“设备”,单击步骤6注册的设备进入到恒温空调设备的详情页面。
2)选择“设备影子”页签,单击“属性配置”。
3)在弹出窗口中输入服务属性对应的期望值。此处设置“temperature”的属性值为25。

验证操作
方法一:
您可以使用MQTT.fx模拟设备验证。
(1)使用MQTT.fx模拟恒温空调,并连接到物联网平台。操作方法请参考通过MQTT.fx体验设备接入。
(2)选择“Subscribe”页签,输入订阅设备影子的topic=$oc/devices/{device_id}/sys/shadow/get/response/#,其中{device_id}与步骤6的设备ID保持一致,点击“Subscribe”按钮。

(3)选择“Pubish”页签,输入请求设备影子的Topic=$oc/devices/{device_id}/sys/shadow/get/request_id={request_id}。
(4)输入一条获取设备影子的请求,点击“Publish”按钮。
示例:
{
"object_device_id": "40fe3542-f4cc-4b6a-98c3-61a49ba1acd4",
"service_id": temperature"
}
(5)选择“Subscribe”页签,看到平台下发的设备影子数据。

方法二:
您可以使用配置设备接入服务时注册的真实设备接入平台,设备会收到平台下发的设备影子,修改空调的预设温度值。
至此,通过该文档的学习,您应该对恒温空调场景有了一定的了解。接下来,可以在系列后续文章中,可以学习到更多的物联网业务场景。
干货分享丨玩转物联网IoTDA服务系列六-恒温空调的更多相关文章
- 干货分享丨玩转物联网IoTDA服务系列五-智能家居煤气检测联动
摘要:该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规则,把设备上报的属性转发,通过物联网平台规则引擎转变成命令下发给其他指定设备. 场 ...
- 干货分享丨玩转物联网IoTDA服务系列四-智能网关
摘要:该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,用户可以在控制台产品详情中自定义Topic,通过应用侧接口或控制台创建数据转发规则,把设备上报的消息转发给其他华为云服务,供应用侧 ...
- 玩转华为物联网IoTDA服务系列三-自动售货机销售分析场景示例
场景简介 通过收集自动售货机系统的销售数据,EI数据分析售货销量状况. 该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,应用侧可以到物联网平台订阅设备侧变化的通知,用户可以在控制台或通 ...
- 干货分享丨jvm系列:dump文件深度分析
摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...
- 【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列 - 我们如约而至
导语 昨天上午,微信在广州举办了微信公开课Pro.于是,精神哥这两天的朋友圈被小龙的"八不做"刷屏了.小伙伴们可能不知道,下午,微信公开课专门开设了技术分论坛.在分论坛中,微信开源 ...
- 【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(二) - 信令传输超时设计
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/9DJxipJaaBC8yC-buHgnTQ 作者简介: ...
- 【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ff5932cde42f1f03de29b1 本文来源: 微信客户端开发团队 ...
- 玩转Windows服务系列——Windows服务小技巧
伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下. 将Windows服务转变为控制台程序 由于默认的Windows服务程序,编译后为Win32的窗口程序.我们在程序启动或运行过程 ...
- 【干货分享】Node.js 中文资料导航
这篇文章与大家分享一批高质量的的 Node.js 中文资料.Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 Node ...
- 玩转Windows服务系列——Windows服务小技巧
原文:玩转Windows服务系列——Windows服务小技巧 伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下. 将Windows服务转变为控制台程序 由于默认的Windows服 ...
随机推荐
- jmeter不用工具获取随机值的几种方法
第一种:直接获取 "vcContent": "${__time(yyyyMMddHHmmss)}${__RandomString(8,QWERTYUIOPASDFGHJK ...
- [CISCN 2019华东南]Web11
看到下面connection 里面的内容有一点像抓包出来的 就抓包试试 似乎感觉也没有什么用 看到这个东西,那么就想到改IP 添加X-Forwarded-For:127.0.0.1 发现这个IP随着我 ...
- C# 在流行度指数上将超过Java
2023年10月最新的TIOBE编程语言流行指数表明:C#和Java之间的差距从未如此之小,目前,差异仅为1.2%,如果趋势保持这种状态,C#将在大约2个月内超过Java,TIOBE Software ...
- TOPSIS模型
TOPSIS模型主要是用于评估类模型 一些基本概念: 因为TOPSIS模型是用于评价类的模型,所以会有一些指标的概念,所有指标并非越大越好,例如我们在评价一人的时候会有成绩.和他人发生争吵的次数这两个 ...
- DS必背合集
Data Structure必背合集 一.链表.栈和队列 1.简述说明数据的存储结构: 答: (1)顺序存储:逻辑上相邻的两个元素的物理位置也相邻. 优点:能够随机存取. 缺点:插入删除需要移动大量的 ...
- 【scipy 基础】--图像处理
SciPy库本身是针对科学计算而不是图像处理的,只是图像处理也包含了很多数学计算,所以Scipy也提供了一个专门的模块ndimage用于图像处理. ndimage模块提供的功能包括输入/输出图像.显示 ...
- Aspire 框架预览版发布,使云原生开发和运维更加简单
随着 .NET 8 的发布,.NET Aspire 也随之发布,这是一个全家桶框架旨在加快基于云的应用程序的构建..NET Aspire 从一开始就集成了关键组件,例如遥测和运行状况检查.它还承诺提供 ...
- Linux配置静态IP解决无法访问网络问题
Linux系统安装成功之后只是单机无网络状态,我们需要配置Linux静态IP来确保服务器可以正常连接互联网 1.首先安装ifconfig Centos7安装成功后,高版本会把ping命令给移除了,所以 ...
- freeswitch设置多个execute_on_media
概述 freeswitch是一款简单好用的VOIP开源软交换平台. fs中有非常多的接口和通道变量,使用方式多变. 官方文档有时候也仅仅是介绍了最基本的使用方法和格式. 环境 centos:CentO ...
- Android学习day01【搭建Android Studio】
是Google开发的操作系统 Android开发是移动应用开发的表现形式之一 还有很多的开发形式,就不一一列举了 完整项目精简的开发流程 开发工具 Android studio(强烈建议) Andro ...