on ("megadd.1.p18_D-163-water-counter", function (obj) {
if (obj.newState.val === true) {
var NewCount = Math.round((getState("Home.0.Counters.Water.Count").val+0.01)*100)/100;
setState("Home.0.Counters.Water.Count", NewCount, true);
}
});
'* * * * *'
schedule("* * * * *", function () {
// Запись текущего расхода
setState('Home.0.Counters.Water.CountMem', getState("Home.0.Counters.Water.Count").val, true);
// Расчет потребления за день
var delta = getState('Home.0.Counters.Water.Count').val - getState('Home.0.Counters.Water.Cost.Day.CountBegin').val;
setState('Home.0.Counters.Water.Cost.Day.CountCurrent', Math.round(delta*1000)/1000, true);
setState("Home.0.Counters.Water.Cost.Day.CostCurrent", Math.round(getState("Home.0.Counters.Water.Cost.Tariff").val*delta*100)/100, true);
// Расчет потребления за месяц
delta = getState("Home.0.Counters.Water.Count").val - getState("Home.0.Counters.Water.Cost.Month.CountBegin").val;
setState("Home.0.Counters.Water.Cost.Month.CountCurrent", Math.round(delta*1000)/1000, true);
setState("Home.0.Counters.Water.Cost.Month.CostCurrent", Math.round(getState("Home.0.Counters.Water.Cost.Tariff").val*delta*100)/100, true);
});
schedule("59 23 * * *", function () {
setState("Home.0.Counters.Water.Cost.Day.CountHistory", getState("Home.0.Counters.Water.Cost.Day.CountCurrent").val, true);
setState("Home.0.Counters.Water.Cost.Day.CostHistory", Math.round(getState("Home.0.Counters.Water.Cost.Tariff").val*getState("Home.0.Counters.Water.Cost.Day.CountCurrent").val*100)/100, true);
setState("Home.0.Counters.Water.Cost.Day.CountBegin", getState("Home.0.Counters.Water.Count").val, true);
// log(getState("Home.0.Counters.Water.Cost.Day.CountCurrent").val);
// log(Math.round(getState("Home.0.Counters.Water.Cost.Tariff").val*getState("Home.0.Counters.Water.Cost.Day.CountCurrent").val*100)/100);
var day = new Date();
var d = day.getDate();
var lastday = new Date(day.getFullYear(), day.getMonth() + 1, 0);
var ld = lastday.getDate();
// var text = "Day: " + d + "Last Day: " + ld;
// sendTo('telegram.0', text);
if (d == ld) {
setState("Home.0.Counters.Water.Cost.Month.CountHistory", getState("Home.0.Counters.Water.Cost.Month.CountCurrent").val, true);
setState("Home.0.Counters.Water.Cost.Month.CostHistory", Math.round(getState("Home.0.Counters.Water.Cost.Tariff").val*getState("Home.0.Counters.Water.Cost.Month.CountCurrent").val*100)/100, true);
setState("Home.0.Counters.Water.Cost.Month.CountBegin", getState("Home.0.Counters.Water.Count").val, true);
setState("Home.0.Counters.Water.Cost.Payed", false, true);
}
});