Size: a a a

ioBroker smarthome

2020 October 12

VH

Vod Home in ioBroker smarthome
Blaze
ужас какой
для обучения офигенно)
источник

R

Romus in ioBroker smarthome
Друзья, а подскажите, что мне надо сделать чтобы получить график потребления воды? Данные идут в накопительном виде.
источник

MS

Mikhail Sapogov in ioBroker smarthome
Romus
Друзья, а подскажите, что мне надо сделать чтобы получить график потребления воды? Данные идут в накопительном виде.
Значит пора курить ман от этого драйвера
https://www.npmjs.com/package/iobroker.statistics
и переводить с немецкого howto
источник

AL

Alexey Lomonosov in ioBroker smarthome
Romus
Друзья, а подскажите, что мне надо сделать чтобы получить график потребления воды? Данные идут в накопительном виде.
Я сделал так. Набор данных вывожу на график. Можно устанавливать период. График из materialdesign
источник

R

Romus in ioBroker smarthome
Alexey Lomonosov
Я сделал так. Набор данных вывожу на график. Можно устанавливать период. График из materialdesign
Да как такой сделать понятно, мне именно нужно почасовое/посуточное потребление.
источник

AL

Alexey Lomonosov in ioBroker smarthome
Romus
Да как такой сделать понятно, мне именно нужно почасовое/посуточное потребление.
Вторая половина экрана :) Это интересует?
источник

АК

Алексей Кравец... in ioBroker smarthome
Alexey Lomonosov
Вторая половина экрана :) Это интересует?
а как статус оплачено выставляете?
источник

R

Romus in ioBroker smarthome
Alexey Lomonosov
Вторая половина экрана :) Это интересует?
Да! )))
источник

R

Romus in ioBroker smarthome
все хочу )
источник

AS

Andrey Shulezhko in ioBroker smarthome
Alexey Lomonosov
Вторая половина экрана :) Это интересует?
день/ночь не учитывает?
источник

AL

Alexey Lomonosov in ioBroker smarthome
Алексей Кравец
а как статус оплачено выставляете?
Вот эту самую кнопку жму после оплаты. Если не забываю ;)
источник

AL

Alexey Lomonosov in ioBroker smarthome
Andrey Shulezhko
день/ночь не учитывает?
У меня однотарифный. Но драйвер Меркурия, насколько я помнб, позволяет учитывать по тарифам
источник

AL

Alexey Lomonosov in ioBroker smarthome
Romus
Да! )))
Я сделал такую структуру
источник

AL

Alexey Lomonosov in ioBroker smarthome
И такой скрипт:
источник

AL

Alexey Lomonosov in ioBroker smarthome
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);
   }
   
});
источник

AL

Alexey Lomonosov in ioBroker smarthome
Думаю, этот скрипт не оптимален, но и я не java-программер...
источник

AL

Alexey Lomonosov in ioBroker smarthome
В итоге получаю расход и стоимость за каждый день и за каждый месяц, сохраняю их в БД, а потом вывожу на графики.
источник

YM

Yu Me in ioBroker smarthome
Bluefox
Кто то просил
А какая разница по сравнению с блоком Таймаут?
источник

A

Anzor in ioBroker smarthome
Yu Me
А какая разница по сравнению с блоком Таймаут?
Таймаут не учитывает другие события, т.е. Выполняется сразу, а этот именно "ждёт". Более грамотные программисты поправят если не правильно объясняю
источник

R

Romus in ioBroker smarthome
Камрады, созрел я переползти под убунту. 4 года под win7 iob крутился, щас на ноуте поднял убунту, и думаю что делать дальше.
1. Заново поставить все под убунтой. Хороший вариант но не хочется историю, настройки заново поднимать.
2. Как то перенести на линух. Но у меня под виндой старая версия.
Как лучше поступить?
источник