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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
masster_alex
Сообщения: 31
Зарегистрирован: Пн апр 18, 2016 6:01 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

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

Сообщение masster_alex » Пн июн 27, 2016 1:09 pm

Подскажите пожалуйста как просуммировать накопленные исторические данные например за сутки и записать их в переменную для дальнейшего отображения в меню?
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пн июн 27, 2016 3:54 pm

masster_alex писал(а):Подскажите пожалуйста как просуммировать накопленные исторические данные например за сутки и записать их в переменную для дальнейшего отображения в меню?
Изучать это http://majordomo.smartliving.ru/forum/v ... f=7&t=2997
masster_alex
Сообщения: 31
Зарегистрирован: Пн апр 18, 2016 6:01 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

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

Сообщение masster_alex » Пн июн 27, 2016 4:30 pm

Уже несколько раз перечитал все там, но все равно не получается. Опишу что мне требуется: Есть система собирающая статистику по весу гипса с тензодатчика пройденного через бункер. Нужна возможность сбора данных за определенный временной интервал по желанию пользователя. (пользователь самостоятельно указывает период времени) Сколько прошло гипса например за сутки или за 8 часов. Желательно с записью в какую либо переменную для дальнейшей работы с ней.
С функцией: function getHistorySum($varname, $start_time, $stop_time) у меня не получилось разобраться.
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Вт июн 28, 2016 4:03 pm

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);
На этом все, суммирует и выдает данные за указанный период.
За это сообщение автора Jager поблагодарили (всего 2):
masster_alex (Ср июн 29, 2016 10:24 am) • Sturgeon (Чт июн 30, 2016 12:25 pm)
Рейтинг: 2.33%
masster_alex
Сообщения: 31
Зарегистрирован: Пн апр 18, 2016 6:01 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

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

Сообщение masster_alex » Ср июн 29, 2016 10:35 am

Спасибо огромное за помощь. Буду пробовать. А подскажите как заполняется свойство Gypsum.24h (H) Суточный расход ? Я так понимаю, что это свойство суммирует текущие показания, заполняясь в течении текущих суток и сбрасывается каждый новый день. Но для него же нет никакого сценария?
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Ср июн 29, 2016 1:45 pm

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

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

Сообщение masster_alex » Ср июн 29, 2016 4:06 pm

Jager писал(а):
masster_alex писал(а):Спасибо огромное за помощь. Буду пробовать. А подскажите как заполняется свойство Gypsum.24h (H) Суточный расход ? Я так понимаю, что это свойство суммирует текущие показания, заполняясь в течении текущих суток и сбрасывается каждый новый день. Но для него же нет никакого сценария?
Так все в ваших руках, какой напишите сценарий так и будет.
Например в начале суток сбрасываете "железный" счетчик на ноль и в конце суток сохраняете последнее показание, это и будет суточный расход.
Как вариант, можно не сбрасывать на ноль а из показаний на конец суток вычитать показания за предыдущие сутки.
В общем вариантов масса.
Вы говорите, что можно сбрасывать "железный счетчик" каждый день фиксируя показания, это не совсем удобно, можно же как то использовать внутренние часы системы и например в определенное время, каждый день выполнять сценарий на суммирование веса за сутки и записывая это в переменную? (в дальнейшем можно будет анализировать затраты за каждый день) Или это не возможно?
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Ср июн 29, 2016 4:53 pm

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