摘要:本文主要讲述空调接入到物联网平台后,通过恒温空调控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。
场景简介
通过恒温控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。
该场景主要描述的是应用侧或控制台可以给离线设备下发缓存命令,待设备上线后执行,控制台通过设备影子配置属性,待设备上线后上报的属性不匹配的话,会自动下发属性修改的指令,直至修改成功。
核心知识点:产品模型、编解码插件、设备影子、属性上报、属性修改。
场景流程
流程解释:
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”页签,看到平台下发的设备影子数据。
方法二:
您可以使用配置设备接入服务时注册的真实设备接入平台,设备会收到平台下发的设备影子,修改空调的预设温度值。
至此,通过该文档的学习,您应该对恒温空调场景有了一定的了解。接下来,可以在系列后续文章中,可以学习到更多的物联网业务场景。
点击关注,第一时间了解华为云新鲜技术~