azure - Azure IoT Central - 显示命令执行结果
问题描述
如何在 IoT Central - 命令页面中显示命令结果?
流动:
- 命令发送到设备
- 设备收到命令并返回Payload:
{ "status": 200, "payload": { "command": "ping", "result_code": "ok", "result_data": "ping 5 ms" } }
如何在 IoT Central 中显示这些数据?
现在 IoT Central 仅显示默认的“Sent at ...”消息。
解决方案
如果在设备上处理命令时设置与命令同名的报告属性,则可以设置在 IoT Central UI 中显示的值。例如,使用 Node.js,您可以为倒计时方法创建一个处理程序,如下所示:
function onCountdown(request, response) {
console.log('received a request for Countdown');
console.log(JSON.stringify(request.payload, null, 2));
var fakeResponsePayload = {
key: 'value'
};
response.send(200, fakeResponsePayload, function (err) {
if (err) {
console.error('Unable to send method response: ' + err.toString());
} else {
console.log('response to Countdown sent.');
client.getTwin(function(err, twin) {
if (err) {
console.error('could not get twin');
} else {
console.log('twin created');
var patch = {
countdown:{
value: 18
}
};
twin.properties.reported.update(patch, function(err) {
if (err) {
console.error('unable to update twin: ' + err.toString());
} else {
console.log('twin state reported');
}
});
}
});
}
});
}
client.onDeviceMethod('countdown', onCountdown);
请注意,命令的字段名称为countdown。
这里还有一个 C++ 示例:https ://github.com/Azure/iot-central-firmware/blob/master/MXCHIP/mxchip_advanced/src/registeredMethodHandlers.cpp
推荐阅读
- laravel - 如何在 laravel 迁移中将数据类型 float 更改为字符串
- c# - ControlTemplate 覆盖以编程方式添加的控件
- python - 如何根据链接列表下载文件
- java - 如何在 h2 和 mysql 中保存“0000-00-00”时间戳
- javascript - 如何在 Firefox 的内置 PDF 查看器上运行用户脚本?
- kubernetes - 在 kubernetes 上运行 pod 是否可以共享相同的 PVC
- excel - 如何将excel'AND','OR'条件转换为mongo条件
- javascript - KonvaJS:如何用线条将 n 个形状相互连接?
- apache-spark - 在 Spark 应用程序中使用 JDBC
- python - 将字典与单个条目合并