Отправка облачных сообщений на устройство из функции Azure на устройство через концентратор IoT - PullRequest
0 голосов
/ 16 ноября 2018

Не могли бы вы помочь мне с кодом Java, который я использую в приложении-функции?

IoT Hub, встроенная конечная точка которого используется в качестве IoT Hub (концентратора событий) для приложения-функции, получает телеметрию от устройства. С помощью следующей функции я извлекаю значения из полученного сообщения, обрабатываю их и помещаю в CosmoDsB, как только конечная точка сборки IoT Hub получила сообщение от устройства! Основная проблема заключается в том, что мне нужно отправлять каждое обработанное значение переменной "totalLevel" обратно на устройство через концентратор IoT. Еще раз: вся структура представляет собой «OPC-сервер (MQTT)» <- / -> «IoT Hub» - «Конечная точка сборки IoT Hub» - «Функция APP» -> обратно на устройство.

C2D

Я не нашел ни одного простого примера, как сделать это на Java в дополнение к существующая функция. Кто-нибудь знает какой-нибудь простой способ сделать это?

Я нашел эти примеры, но у меня недостаточно навыков для их модификации.

https://docs.microsoft.com/en-US/azure/iot-hub/quickstart-send-telemetry-java https://docs.microsoft.com/en-US/azure/iot-hub/iot-hub-java-java-c2d

заранее спасибо


module.exports = function (context, IoTHubMessages) {
  context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessages}`);

  IoTHubMessages.forEach(message => {
    context.log(`Processed message: ${message}`);
  });

  context.done();
};

module.exports = function (context, IoTHubMessages) {
context.log(`JavaScript eventhub trigger function called for message array: 
${IoTHubMessages}`);

var count = 0;
var totalLevel = 0.0;
var totalHumidity = 0.0;
var deviceId = "";

IoTHubMessages.forEach(message => {
    context.log(`Processed message: ${message}`);
    count++;
    totalLevel = message.L1 + message.L2 + message.L3;
    RestartPLC = message.L4;
    deviceId = message.deviceId;
});

var output = {
    "deviceId": deviceId,
    "PLC_Restart_state": RestartPLC,
  //  "measurementsCount": count,
    "gemessener Gesamtabfluss, mm": totalLevel
    //"averageHumidity": totalHumidity/count
};

context.log(`Output content: ${output}`);

context.bindings.outputDocument = output;

context.done();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...