Azure IoT Central - отображение результатов выполнения команд
Как отобразить результаты команд в IoT Central - страница команд?
Поток:
- Команда отправлена на устройство
- Устройство получает команду и возвращает полезную нагрузку:
{ "status": 200, "payload": { "command": "ping", "result_code": "ok", "result_data": "ping 5 ms" } }
Как отобразить эти данные в IoT Central?
Теперь IoT Central показывает только сообщение "Отправлено в..." по умолчанию.
1 ответ
Решение
Если вы задали сообщаемое свойство с тем же именем, что и команда, при обработке команды на устройстве, то вы можете установить значение, которое будет отображаться в пользовательском интерфейсе IoT Central. Например, используя Node.js, вы можете создать обработчик для метода обратного отсчета:
function onCountdown(request, response) {
console.log('received a request for Countdown');
console.log(JSON.stringify(request.payload, null, 2));
var fakeResponsePayload = {
key: 'value'
};
response.send(200, fakeResponsePayload, function (err) {
if (err) {
console.error('Unable to send method response: ' + err.toString());
} else {
console.log('response to Countdown sent.');
client.getTwin(function(err, twin) {
if (err) {
console.error('could not get twin');
} else {
console.log('twin created');
var patch = {
countdown:{
value: 18
}
};
twin.properties.reported.update(patch, function(err) {
if (err) {
console.error('unable to update twin: ' + err.toString());
} else {
console.log('twin state reported');
}
});
}
});
}
});
}
client.onDeviceMethod('countdown', onCountdown);
Обратите внимание, что именем поля имени команды является обратный отсчет.
Здесь также есть пример C++: https://github.com/Azure/iot-central-firmware/blob/master/MXCHIP/mxchip_advanced/src/registeredMethodHandlers.cpp