I'm using MQTT client for Node.js and I want to publish mqtt data only when data values change.
The actual result I can sent data every second.
const client = mqtt.connect(connectUrl, options);
client.on('connect', () => {
setInterval(() => {
const deviceState = getDeviceState(0, 1);
client.publish('state', deviceState);
}, 1000);
});
// ...
function getDeviceState(min, max) {
const randomInt = Math.floor(Math.random() * (max - min + 1) + min);
if(randomInt === 0) {
return 'off';
}
return 'on';
}