// pseudo code here - removed the parts before
// get number of changes happened before from Database
var lastNumberOfChanges = measurements.NUMBER_OF_CHANGES.value;
// get state stored in Database
var lastState = measurements.RO1_STATUS.value;
// when new state is not equal state in database -> change happened
if (lastState != current_RO1_STATUS) {
// increase number of changes
lastNumberOfChanges += 1;
// store number of changes in database
decoded.push({ "field":"NUMBER_OF_CHANGES","value":lastNumberOfChanges });
// calculate the time between changes
var currentTimestamp = Math.floor(Date.now() / 1000);
var lastTimestamp = measurements.RO1_STATUS.timestamp;
var timeDelta = (currentTimestamp - lastTimestamp) / 60;
var timeBetweenChanges = Math.abs(Math.round(timeDelta));
// store new time between last changes in database
decoded.push({ "field":"TIME_BETWEEN_CHANGES","value":timeBetweenChanges });