Страница 1 из 1

Суммирование исторических данных за определенный период

Добавлено: Пн июн 27, 2016 1:09 pm
masster_alex
Подскажите пожалуйста как просуммировать накопленные исторические данные например за сутки и записать их в переменную для дальнейшего отображения в меню?

Re: Суммирование исторических данных за определенный период

Добавлено: Пн июн 27, 2016 3:54 pm
Jager
masster_alex писал(а):Подскажите пожалуйста как просуммировать накопленные исторические данные например за сутки и записать их в переменную для дальнейшего отображения в меню?
Изучать это http://majordomo.smartliving.ru/forum/v ... f=7&t=2997

Re: Суммирование исторических данных за определенный период

Добавлено: Пн июн 27, 2016 4:30 pm
masster_alex
Уже несколько раз перечитал все там, но все равно не получается. Опишу что мне требуется: Есть система собирающая статистику по весу гипса с тензодатчика пройденного через бункер. Нужна возможность сбора данных за определенный временной интервал по желанию пользователя. (пользователь самостоятельно указывает период времени) Сколько прошло гипса например за сутки или за 8 часов. Желательно с записью в какую либо переменную для дальнейшей работы с ней.
С функцией: function getHistorySum($varname, $start_time, $stop_time) у меня не получилось разобраться.

Re: Суммирование исторических данных за определенный период

Добавлено: Вт июн 28, 2016 4:03 pm
Jager
masster_alex писал(а):Уже несколько раз перечитал все там, но все равно не получается.
Я конечно далек от программирования, но могу предложить вот такую инструкцию с картинками :)

Создаем класс и объект в нем

Изображение

Добавляем свойства по вкусу

Изображение

Создаем элементы меню

Изображение

Изображение

Изображение

Изображение

Получаем в результате нечто подобное

Изображение

Изображение

Пишем сценарий

Изображение

Код: Выделить всё

$data_Start = gg('Gypsum.dataStart');
$data_elements  = explode("-",$data_Start);
$dataStart = mktime(0,0,0,$data_elements[1],$data_elements[2],$data_elements[0]);
setGlobal('Gypsum.dataStartTs',$dataStart);
$data_Stop = gg('Gypsum.dataStop');
$data_elements2  = explode("-",$data_Stop);
$dataStop = mktime(0,0,0,$data_elements2[1],$data_elements2[2],$data_elements2[0]);
sg('Gypsum.dataStopTs',$dataStop);
$start_time = gg('Gypsum.dataStartTs');
$stop_time = gg('Gypsum.dataStopTs');
$expense = getHistorySum("Gypsum.current",$start_time,$stop_time);
sg('Gypsum.summ',$expense);
На этом все, суммирует и выдает данные за указанный период.

Re: Суммирование исторических данных за определенный период

Добавлено: Ср июн 29, 2016 10:35 am
masster_alex
Спасибо огромное за помощь. Буду пробовать. А подскажите как заполняется свойство Gypsum.24h (H) Суточный расход ? Я так понимаю, что это свойство суммирует текущие показания, заполняясь в течении текущих суток и сбрасывается каждый новый день. Но для него же нет никакого сценария?

Re: Суммирование исторических данных за определенный период

Добавлено: Ср июн 29, 2016 1:45 pm
Jager
masster_alex писал(а):Спасибо огромное за помощь. Буду пробовать. А подскажите как заполняется свойство Gypsum.24h (H) Суточный расход ? Я так понимаю, что это свойство суммирует текущие показания, заполняясь в течении текущих суток и сбрасывается каждый новый день. Но для него же нет никакого сценария?
Так все в ваших руках, какой напишите сценарий так и будет.
Например в начале суток сбрасываете "железный" счетчик на ноль и в конце суток сохраняете последнее показание, это и будет суточный расход.
Как вариант, можно не сбрасывать на ноль а из показаний на конец суток вычитать показания за предыдущие сутки.
В общем вариантов масса.

Re: Суммирование исторических данных за определенный период

Добавлено: Ср июн 29, 2016 4:06 pm
masster_alex
Jager писал(а):
masster_alex писал(а):Спасибо огромное за помощь. Буду пробовать. А подскажите как заполняется свойство Gypsum.24h (H) Суточный расход ? Я так понимаю, что это свойство суммирует текущие показания, заполняясь в течении текущих суток и сбрасывается каждый новый день. Но для него же нет никакого сценария?
Так все в ваших руках, какой напишите сценарий так и будет.
Например в начале суток сбрасываете "железный" счетчик на ноль и в конце суток сохраняете последнее показание, это и будет суточный расход.
Как вариант, можно не сбрасывать на ноль а из показаний на конец суток вычитать показания за предыдущие сутки.
В общем вариантов масса.
Вы говорите, что можно сбрасывать "железный счетчик" каждый день фиксируя показания, это не совсем удобно, можно же как то использовать внутренние часы системы и например в определенное время, каждый день выполнять сценарий на суммирование веса за сутки и записывая это в переменную? (в дальнейшем можно будет анализировать затраты за каждый день) Или это не возможно?

Re: Суммирование исторических данных за определенный период

Добавлено: Ср июн 29, 2016 4:53 pm
Jager
masster_alex писал(а):Вы говорите, что можно сбрасывать "железный счетчик" каждый день фиксируя показания, это не совсем удобно, можно же как то использовать внутренние часы системы и например в определенное время, каждый день выполнять сценарий на суммирование веса за сутки и записывая это в переменную? (в дальнейшем можно будет анализировать затраты за каждый день) Или это не возможно?
Вы как то читаете через строчку, я же написал
Как вариант, можно не сбрасывать на ноль а из показаний на конец суток вычитать показания за предыдущие сутки.
Чем и хорош MDM, почти любую задачу можно решить разными способами, кому как удобнее.