diff --git a/wirepas-5g-mesh-gateway/gateway.ts b/wirepas-5g-mesh-gateway/gateway.ts index 548f771..0a963f5 100644 --- a/wirepas-5g-mesh-gateway/gateway.ts +++ b/wirepas-5g-mesh-gateway/gateway.ts @@ -182,21 +182,28 @@ client.on('message', (_, message) => { // Regularly send buffered updates setInterval(() => { void Promise.all( - Object.entries(nodes).map(async ([gwId, nodes]) => { + Object.entries(nodes).map(async ([gwId, nodes]): Promise => { Object.entries(nodes).forEach(([nodeId, data]) => { console.debug(gwId, nodeId, JSON.stringify(data)) }) - return iotDataClient.send( + await iotDataClient.send( new UpdateThingShadowCommand({ thingName: gwId, - payload: JSON.stringify({ - state: { - reported: { - nodes, + payload: JSON.stringify( + { + state: { + reported: { + nodes, + }, }, }, - }), + (_, v) => { + if (typeof v === 'number' && !Number.isInteger(v)) + return parseFloat(v.toFixed(2)) + return v + }, + ), }), ) }),