如何向 IOT Central 报告遥测数据?

How to report telemetry to IOTCentral?

我不知道如何向 IOTCentral 报告遥测数据。

我创建了一个设备模板,添加了遥测测量,字段名称 "freeDiskSpace",最大值 999999999999。获得了与模板关联的设备。启动了设备代码,但在 IOTCentral 的 Device Explorer 中查看设备时它只显示 "Missing Data".

首先我尝试了:

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 中仍然没有任何内容。

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

对另一个问题的评论将我指向了 https://docs.microsoft.com/en-us/azure/iot-central/howto-connect-nodejs,我在所有搜索中都没有找到它。关键是遥测被报告为事件,而不是报告 属性。这对我来说是违反直觉的,因为我理解 "event" 是一个明显有意义的事件,而 "telemetry" 是连续数据。但它有效。 link:

中的代码片段
  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) =>