Спасибо, Эндрю, это правильный синтаксис для msg.payload, поскольку каждая полезная нагрузка сообщает разные значения?
let data = msg.payload
function calcRoll(y, z){
return Math.atan2(y, z) * 180/Math.PI;
}
function calcPitch(x, y, z){
return Math.atan2(-x, Math.sqrt(y*y + z*z)) * 180/Math.PI;
}
let dataX = data.xAxis;
let dataY = data.yAxis;
let dataZ = data.zAxis;
let roll = calcRoll(dataY, dataZ);
let pitch = calcPitch(dataX, dataY, dataZ);
msg.payload.roll = roll;
msg.payload.pitch = pitch;
return msg;
Вот сообщение отладки, которое я вижу в Node-RED, когда прибывает новая измененная полезная нагрузка:
{"device":"368640","deviceType":"Sigfox-Tracker","version":3,"timestamp":"1535136195","rssi":"-109.00","battery":3.28,"temp":19.5,"soil":2105,"xAxis":71,"yAxis":-32,"zAxis":1002,"roll":-1.8291836314227448,"pitch":-4.05104777734416}