如何向IOTCentral报告遥测?

时间:2019-06-17 22:21:20

标签: azure azure-iot-central

我不知道如何向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中仍然没有。

2 个答案:

答案 0 :(得分:0)

您应该使用设备属性在IoTCentral上创建设备孪生报告的属性,请参见以下屏幕片段:

enter image description here

答案 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) =>