1

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

4

2 回答 2

1

对另一个问题的评论将我指向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) => 
于 2019-06-18T14:01:09.847 回答
0

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

在此处输入图像描述

于 2019-06-18T12:12:30.550 回答