Подсчет данных?
Модератор: immortal
-
- Сообщения: 39
- Зарегистрирован: Пт дек 11, 2015 10:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Подсчет данных?
В общем встал вопрос как реализовать подсчет данных из лога свойства, к примеру есть свойство которое пишется каждые 2 сек лог хранится 2 дня, вот как сделать подсчет значений этого свойства скажем за час?
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Подсчет данных?
Я думаю, тут нужно понимать физический смысл значений свойства, и что Вы хотите получить на выходе.
Можете попробовать вычислять среднеарифметическое или среднеквадратичное, например.
Можете попробовать вычислять среднеарифметическое или среднеквадратичное, например.
-
- Сообщения: 39
- Зарегистрирован: Пт дек 11, 2015 10:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Re: Подсчет данных?
К примеру свойство Electro.kwt сохраняет данные 2дня с интервалом 2сек, вот как из этой сохраненной информации вывести за 1час и за 24 часа? ну вот там же строятся графики вот нужно посчитать общее число за промежуток времени.
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Подсчет данных?
Electro.kwt - это потребляемая мощность в конкретный момент времени?
И что такое "общее число" за промежуток времени? Вы хотите посчитать потребление электроэнергии за этот промежуток, я правильно понимаю?
И что такое "общее число" за промежуток времени? Вы хотите посчитать потребление электроэнергии за этот промежуток, я правильно понимаю?
-
- Сообщения: 39
- Зарегистрирован: Пт дек 11, 2015 10:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Re: Подсчет данных?
Да, это мощность потребляемая сейчас, у неё лог сохраняется за 2 дня, мне нужно посчитать к примеру сколько за сутки потрачено.olehs писал(а):Electro.kwt - это потребляемая мощность в конкретный момент времени?
И что такое "общее число" за промежуток времени? Вы хотите посчитать потребление электроэнергии за этот промежуток, я правильно понимаю?
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Подсчет данных?
Если Вы уверены, что данные приходят каждые 2 секунды без пропусков, то потребление приблизительно будет равно сумме показаний за нужный период, поделенное на 1800.
Собрать проще всего запросом по таблице phistory.
где 184 - ID Свойства
Собрать проще всего запросом по таблице phistory.
Код: Выделить всё
SELECT
SUM( value ) / 1800.
FROM phistory
WHERE value_id = 184
AND added BETWEEN '2015-12-23' AND '2015-12-24'
-
- Сообщения: 39
- Зарегистрирован: Пт дек 11, 2015 10:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Re: Подсчет данных?
Я пытался но SUM( value ) мне не получить, это помоему не срабатывает в SQLSelectolehs писал(а):Если Вы уверены, что данные приходят каждые 2 секунды без пропусков, то потребление приблизительно будет равно сумме показаний за нужный период, поделенное на 1800.
Собрать проще всего запросом по таблице phistory.где 184 - ID СвойстваКод: Выделить всё
SELECT SUM( value ) / 1800. FROM phistory WHERE value_id = 184 AND added BETWEEN '2015-12-23' AND '2015-12-24'
Вот как я пробовал
Код: Выделить всё
$total=1;
$start_time=$end_time-$total*60*60;
$end_time=time();
$history=SQLSelect("SELECT SUM(VALUE) FROM phistory WHERE VALUE_ID='327' AND ADDED>=('".date('Y-m-d H:i:s', $start_time)."') ORDER BY ADDED");
for($i=0;$i<$total_values;$i++) {
$values= $history[$i]['VALUE'];
}
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Подсчет данных?
Сохраняйте ежедневно в отдельное свойство потребление за день. Потом по истории этого свойства соберете месячное.
-
- Сообщения: 39
- Зарегистрирован: Пт дек 11, 2015 10:20 pm
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Re: Подсчет данных?
Я так думал, тем более у меня свойство "Вчера" с сохранением в 30д поставлено, но тут вылезает проблема как посчитать именно за текущий месяц?olehs писал(а):Сохраняйте ежедневно в отдельное свойство потребление за день. Потом по истории этого свойства соберете месячное.
то есть я могу сделать пожсчет скажем последних 30 записей, но это не за текущий месяц! нужно как то считать именно за текущий месяц.
В идеале я бы хотел сделать отдельное свойство скажем "За месяц" туда сохранять прибавлять данные каждую минуту, а в конце месяца перенести данные в другое свойство с кажем "За прошлый месяц" с сохранением лога скажем за год, а свойство "За месяц" обнулять. У меня так сделано учет "Сегодня" и "Вчера" но ежедневно обнулять и сохранять можно через Сценарии, а вот как это проделать с месяцами?
-
- Сообщения: 181
- Зарегистрирован: Пт апр 04, 2014 10:17 pm
- Благодарил (а): 37 раз
- Поблагодарили: 54 раза
Re: Подсчет данных?
avgaz - у меня каждый час запускается скрипт, который дергает базу и забирает сумму всех записей и количество записей (так как каждый час они разные) - это у меня получается потребление за час.
В конце дня запускаю все тоже самое для подсчета за сутки и заношу в свойства.
Так же можно автоматом настроить и за месяц.
Посмотрите здесь - хороший пример - http://majordomo.smartliving.ru/forum/v ... hp?p=18567
В конце дня запускаю все тоже самое для подсчета за сутки и заношу в свойства.
Так же можно автоматом настроить и за месяц.
Посмотрите здесь - хороший пример - http://majordomo.smartliving.ru/forum/v ... hp?p=18567