我不知道如何向IOTCentral报告遥测。
我创建了一个设备模板,添加了遥测测量,字段名称“ freeDiskSpace”,最大值999999999999。得到了一个与模板关联的设备。触发设备代码,但是在IOTCentral的设备资源管理器中查看该设备时,它只会显示“缺少数据”。
首先我尝试:
const upd = {};
upd.freeDiskSpace = info.available;
deviceTwin.properties.reported.update(upd, function (err) {
在调试器中,我可以看到双胞胎收到了数据
Got device twin
{ reported:
{ update: [Function: update],
freeDiskSpace: 468716691456,
'$version': 4 },
但是在IOTCentral中什么都没有。
然后我注意到它们如何发送所需的属性:
desired:
{ setCurrent: { value: 0 },
所以我尝试了
const upd = {};
upd.freeDiskSpace = { value: info.available };
deviceTwin.properties.reported.update(upd, function (err) {
但在IOTCentral中仍然没有。
答案 0 :(得分:0)
答案 1 :(得分:0)
对另一个问题的评论将我引向https://docs.microsoft.com/en-us/azure/iot-central/howto-connect-nodejs,在我的所有搜索中都找不到。关键是遥测被报告为事件,而不是报告属性。这对我来说是违反直觉的,因为我将“事件”理解为截然不同的有意义的事件,而将“遥测”理解为连续的数据。但这有效。该链接的代码段:
var data = JSON.stringify({
temperature: temperature,
humidity: humidity,
pressure: pressure,
fanmode: (temperature > 25) ? "1" : "0",
overheat: (temperature > 35) ? "ER123" : undefined });
var message = new Message(data);
client.sendEvent(message, (err, res) =>