tencent cloud

物联网通信

设置设备目标温度

PDF
聚焦模式
字号
最后更新时间: 2024-12-27 09:54:58

C SDK 操作步骤

程序实现

1. 设备影子相关使用 sample/scenarized/aircond_shadow_sample_v2.c 的代码逻辑。它在 sample/scenarized/aircond_shadow_sample.c 添加如下逻辑:
2. 作为样例,SDK 内部调用 IOT_Shadow_Register_Property 对 shadow 的配置类属性和回调函数进行绑定。当 shadow 有该属性的配置变更时候,SDK 底层会执行相应的回调处理。这里注册了 shadow 里面 “temperatureDesire” 字段,意味着当 App 对设备影子设置目标温度的时候,能通过回调函数更正本地的配置数据,调整期望温度。用户可实现自定义的配置型属性监听和回调绑定。
rc = _register_config_shadow_property();

程序编译与执行

1. 在 SDK 程序根目录下执行 make,编译得到 aircond_shadow_sample_v2 可执行程序。
2. 在目录 ./output/release/bin 下执行 ./aircond_shadow_sample_v2,注意如果用 MQTT 非对称加密方式,请保证根证书、设备证书和设备密钥文件在 ../../certs 上层目录下。
3. 在目录 ./output/release/bin 下执行 ./door_mqtt_sample come_home airConditioner1,让 airConditioner 处于运作状态。
INF|2018-01-11 20:52:50|aircond_shadow_sample_v2.c|main(377): Cloud Device Construct Success
INF|2018-01-11 20:52:50|aircond_shadow_sample_v2.c|main(389): Cloud Device Register Delta Success
4. 调用 restAPI 模拟家电管理后台发布目标温度配置,具体操作详见发布设备目标温度配置,同时观察示例程序输出日志:
从输出的日志中,可以看到on_temperature_actuate_callback 函数被调用,表示收到 shadow 下发的 delta topic,然后执行更新本地的设定温度操作 modify desire temperature to: 10.000000
INF|2018-01-11 21:04:31|aircond_shadow_sample_v2.c|on_temperature_actuate_callback(181): actuate callback jsonString=10},"desired":{"temperatureDesire":10},"reported":{"energyConsumption":0.0}},"timestamp":1515675847609,"version":5},"result":0,"timestamp":1515675871,"type":"get"}|dataLen=2
INF|2018-01-11 21:04:31|aircond_shadow_sample_v2.c|on_temperature_actuate_callback(184): modify desire temperature to: 10.000000
INF|2018-01-11 21:04:31|aircond_shadow_sample_v2.c|on_request_handler(123): Method=GET|Ack=ACK_ACCEPTED
INF|2018-01-11 21:04:31|aircond_shadow_sample_v2.c|on_request_handler(124): received jsonString={"clientToken":"EJSKHKIS1M-0","payload":{"metadata":{"delta":{"temperatureDesire":{"timestamp":1515675847609}},"desired":{"temperatureDesire":{"timestamp":1515675847609}},"reported":{"energyConsumption":{"timestamp":1515674881485}}},"state":{"delta":{"temperatureDesire":10},"desired":{"temperatureDesire":10},"reported":{"energyConsumption":0.0}},"timestamp":1515675847609,"version":5},"result":0,"timestamp":1515675871,"type":"get"}
从上面 airConditioner1 输出日志,可见配置操作生效,airConditioner 调节本地的配置温度。

Android SDK 操作步骤

程序实现

ShadowSample.java 是设备影子类,主要功能有:
1. 建立 Shadow 连接:connect(),内部调用 TXShadowConnect 的 connect() 接口。
2. 断开 Shadow 连接:closeConnect(),内部调用 TXShadowConnection 的 disconnect() 接口。
3. 注册设备属性:registerProperty(),内部调用 TXShadowConnection 的 registerProperty() 接口。
4. 获取设备影子:getDeviceShadow(), 内部调用 TXShadowConnection 的 get() 接口。
5. 定时更新设备影子:loop(),内部调用 TXShadowConnection 的 update() 接口。

程序编译与执行

在运行 App 前,请先填入之前创建产品和设备步骤中得到的 PRODUCT_ID, DEVICE_NAMEDEVICE_CERT_NAMEDEVICE_KEY_NAME,并将设备证书、设备私钥文件放置在 assets 目录中:
/**
* 产品ID
*/
private static final String PRODUCT_ID = "YOUR_PRODUCT_ID";
/**
* 设备名称
*/
protected static final String DEVICE_NAME = "YOUR_DEVICE_NAME";

/**
* 密钥
*/
private static final String SECRET_KEY = "YOUR_DEVICE_PSK";
/**
* 设备证书名
*/
private static final String DEVICE_CERT_NAME = "YOUR_DEVICE_NAME_cert.crt";

/**
* 设备私钥文件名
*/
private static final String DEVICE_KEY_NAME = "YOUR_DEVICE_NAME_private.key";
1. 填入设备相关信息后,即可运行 Demo,单击 Android Studio Run 【App】 按钮安装运行 Demo。
2. 切换底部 Tab 到设备影子 Fragment,便可操作 Shadow 相关功能。
3. 各功能均有对应的操作按钮,单击相应按钮,观察 Demo 及 logcat 日志输出。
4. restAPI 接口操作说明,若为发布目标温度配置详见 发布目标温度配置;若为查询获取设备信息详见 查询获取设备信息

发布目标温度配置

调用 restAPI 接口 UpdateDeviceShadow 模拟家电管理后台发布目标温度配置, restAPI 请求参数:deviceName=airConditioner1, state={"desired" : {"temperatureDesire": 10}}, productName=AirConditioner, 期望调整控制温度为 10°。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈