使用 Azure Web App 筛选进行数据可视化

Data visualization with Azure Web App filtering

我正在按照文档 here 来可视化来自 IoT 中心的数据。在我的用例中,我有多个设备向 IoT 中心发送数据。我想知道是否可以使用单个网络应用程序来可视化来自特定设备的数据,该参数是通过 HTTP GET 方法发送的。当前的解决方法只是忽略来自其他设备的数据,这并不理想。请问有没有正确的方法呢

谢谢,

一般来说,作为消费端,我们可以利用deviceId参数来过滤来自特定设备的数据。

作为演示 Create a simulated device app we can send the data from device with particular deviceId to IOT hub, then we can create a new rule in the demo used in your post, https://github.com/Azure-Samples/web-apps-node-iot-hub-data-visualization,从 URL 获取 HTTP get 参数,并设置为针对 deviceId.

的过滤器

由于 web-apps-node-iot-hub-data-visualization 应用程序使用 expressjs 作为 http 服务器,因此我们可以创建一个路由规则以从 url 获取 deviceId,例如:

app.get('/deviceId/:id', (req, res) => {
  console.log(req.params);
  var iotHubReader = new iotHubClient(connectionString, consumerGroup);
  iotHubReader.startReadMessage(function (obj, date) {
    try {

      if (obj.deviceId == req.params.deviceId) {
        console.log(date);
        date = date || Date.now()
        wss.broadcast(JSON.stringify(Object.assign(obj, {
          time: moment.utc(date).format('YYYY:MM:DD[T]hh:mm:ss')
        })));
      }

    } catch (err) {
      console.log(obj);
      console.error(err);
    }
  });
  res.sendFile(__dirname + '/public/index.html');
})

然后我们可以访问带有 deivceId 的应用程序,例如: <hostname>/deviceId/myFirstNodeDevice