var atMidnight = getChannelValue("totalizer_1_val_at_midnight"); var atMidnightHistory = getChannelHistory("totalizer_1_val_at_midnight", -1 * daysToSeconds(2), 0) var valAtMidnight = parseFloat(atMidnight.Value); var atMidnightDate = new Date(atMidnight.Timestamp * 1000); var payloadDate = new Date(payload.Timestamp * 1000); if ((atMidnightHistory.length < 1) || (atMidnightDate.getDate() !== payloadDate.getDate())){ if (!isNaN(valAtMidnight)){ sendChannelValue('totalizer_1_yesterday', parseFloat(payload.Value) - valAtMidnight, payload.Timestamp); } sendChannelValue('totalizer_1_val_at_midnight', parseFloat(payload.Value), payload.Timestamp); valAtMidnight = parseFloat(payload.Value); } var valToday = parseFloat(payload.Value) - valAtMidnight; sendChannelValue('totalizer_1_today', valToday, payload.Timestamp);