я читаю данные с солнечного инвертора и сохраняю их в базе данных mysql
таблица имеет 2 поля dtime записывает дату и время, а AC_Output_Apparent_Power записывает текущую нагрузку в ваттах.
мне нужно рассчитать общее дневное потребление мощности следующим образом (пример):
date kWh
2018-10-24 1.3
2018-10-10 0.700
2018-10-09 2.2
и так далее...
Я пытался:
SELECT date(dtime),hour(dtime),((avg(AC_Output_Apparent_Power) *1)/1000) as kWh
FROM `logs`
WHERE AC_Output_Apparent_Power > 0
GROUP by date(dtime),hour(dtime)
order by dtime desc
и результат - почасовое потребление:
date hour kWh
2018-10-25 2 0.20880952
2018-10-25 1 0.23985294
2018-10-24 18 0.29619231
2018-10-23 6 0.11400000
2018-10-22 6 0.13800000
2018-10-22 2 0.13800000
2018-10-18 1 0.13800000
2018-10-16 10 0.09200000
2018-10-15 13 0.09100000
2018-10-14 21 0.13800000
2018-10-13 22 0.13700000
2018-10-13 8 0.09200000
2018-10-12 6 0.18966667
2018-10-12 5 0.17800000
2018-10-12 4 0.13800000
2018-10-10 15 0.25100000
2018-10-10 14 0.61285714
2018-10-09 18 0.13800000
2018-10-09 1 0.15150000
2018-10-04 5 0.14728947
2018-10-04 4 0.15062500
2018-10-04 3 0.14927778
2018-10-04 2 0.14958974
2018-10-04 1 0.14726744
2018-10-04 0 0.14886207
таблица mysql имеет эти значения.
Примечание: как вы видите, данные не считываются регулярно, так как я тестирую
SELECT dtime,AC_Output_Apparent_Power FROM `logs` WHERE AC_Output_Apparent_Power > 0 order by dtime desc
dtime AC_Output_Apparent_Power
2018-10-24 18:20:25 152
2018-10-24 18:20:02 174
2018-10-24 18:19:50 174
2018-10-24 18:19:38 174
2018-10-24 18:19:26 173
2018-10-24 18:19:03 174
2018-10-24 18:18:51 154
2018-10-24 18:18:04 174
2018-10-24 18:17:53 175
2018-10-24 18:17:46 174
2018-10-24 18:17:29 175
2018-10-24 18:17:17 175
2018-10-24 18:17:05 174
2018-10-24 18:16:53 174
2018-10-24 18:16:48 174
2018-10-24 18:16:18 816
2018-10-24 18:15:54 174
2018-10-24 18:15:42 174
2018-10-24 18:15:30 852
2018-10-24 18:15:18 173
2018-10-24 18:15:07 174
2018-10-24 18:14:55 1084
2018-10-24 18:14:32 174
2018-10-24 18:14:26 173
2018-10-24 18:13:33 176
2018-10-24 18:13:21 152
2018-10-24 18:13:09 175
2018-10-24 18:12:58 174
2018-10-24 18:12:47 939
2018-10-24 18:12:37 174
2018-10-24 18:12:30 175
2018-10-24 18:11:48 815
2018-10-24 18:11:01 880
2018-10-24 18:10:49 924
2018-10-24 18:10:37 753
2018-10-24 18:10:13 154
2018-10-24 18:10:01 176
2018-10-24 18:09:50 174
2018-10-24 18:09:38 175
2018-10-24 18:09:26 176
2018-10-24 18:09:15 176
2018-10-24 18:09:03 176
2018-10-24 18:08:52 154
2018-10-24 18:08:40 176
2018-10-24 18:08:27 176
2018-10-24 18:08:16 176
2018-10-24 18:08:04 928
2018-10-24 18:07:52 176
2018-10-24 18:07:41 177
2018-10-24 18:07:29 176
2018-10-24 18:07:17 177
2018-10-24 18:06:54 178
2018-10-23 06:06:12 114
2018-10-22 06:49:01 138
2018-10-22 02:00:29 138
2018-10-18 01:47:54 138
2018-10-16 10:04:14 92
2018-10-15 13:59:27 91
2018-10-14 21:59:44 138
2018-10-13 22:01:48 137
2018-10-13 08:37:37 92
2018-10-13 08:02:43 92
2018-10-12 06:05:53 190
2018-10-12 06:05:41 190
2018-10-12 06:03:08 189
2018-10-12 05:58:59 166
2018-10-12 05:58:12 190
2018-10-12 04:31:56 138
2018-10-10 15:08:31 241
2018-10-10 15:06:34 370
2018-10-10 15:05:35 239
2018-10-10 15:03:02 154
2018-10-10 14:58:41 864
2018-10-10 14:58:16 456
2018-10-10 14:58:07 415
2018-10-10 14:57:53 545
2018-10-10 14:57:41 714
2018-10-10 14:56:43 1300
2018-10-10 14:56:22 949
2018-10-10 14:55:55 608
2018-10-10 14:55:45 522
2018-10-10 14:54:45 415
2018-10-10 14:54:34 431
2018-10-10 14:54:10 503
2018-10-10 14:53:47 506
2018-10-10 14:53:35 438
2018-10-10 14:53:23 417
2018-10-10 14:45:43 874
2018-10-10 14:45:31 442
2018-10-10 14:45:08 710
2018-10-10 14:44:19 421
2018-10-10 14:44:07 604
2018-10-10 14:40:23 736
2018-10-09 18:05:58 138
2018-10-09 01:05:55 153
2018-10-09 01:05:29 153
2018-10-09 01:05:04 152
2018-10-09 01:04:40 151
2018-10-09 01:04:13 151
2018-10-09 01:03:47 152
Расчет ватт в кВтч Энергия E в киловатт-часах (кВтч) равна мощности P в ваттах (Вт), умноженное на период времени t в часах (hr), деленный на 1000:
E(kWh) = P(W) × t(hr) / 1000
Как рассчитать общее дневное потребление мощности не ежечасно.
любые предложения приветствуются. заранее спасибо.
Как рассчитать общее дневное потребление мощности, а не ежечасно? мой код делаю ежечасно.
GROUP by date(dtime) просто удалите вторую группу по полю hour(dtime)проблема здесь: ((avg (AC_Output_Apparent_Power) * 1) / 1000) поскольку кВтч, 1 - это один час, мне нужно знать общее количество часов. этот код работает для почасовых баз, а не для ежедневных. или если приветствуется какое-либо другое решение для расчета мощности.






Непонятно, что именно вы хотите получить.
Но вот мой подход:
http://sqlfiddle.com/#!9/6d5bef/6
SELECT date(dtime),(SUM(AC_Output_Apparent_Power)/1000) as kW
FROM `logs`
WHERE AC_Output_Apparent_Power > 0
GROUP by date(dtime)
order by dtime desc ;
Предоставьте ожидаемый набор результатов.
это дает неверные результаты: в день 2018-10-24 кВтч = 15.402 это неверно. в 2018-10-24 18:06:54 первое чтение: 178 ватт в 2018-10-24 18:20:25 последнее чтение: 152 ватт, разница составляет 15 минут, и это израсходовано, что в течение 15 минут потребление энергии составляет 15,402 кВтч ???
@MohammedAhmed, у тебя неправильная логика. Потребление измеряется не в кВтч, а в кВт - это то, что делает мой запрос. С моей точки зрения, ваша попытка получить среднее количество кВтч является ошибочной. Так что, если вы хотите, вы всегда можете разделить его на 24, чтобы получить его в час. Извините, но я не буду тратить время на эти странные вычисления. Это не имеет никакого смысла для меня.
SELECT CONVERT_TZ(`timestamp`, @@session.time_zone, '+00:00') AS `time`,
AVG(value / 1000) as "value",
name as "metric" -- phase / line
FROM `power`
WHERE name IN ("PhaseA_Energy", "PhaseB_Energy", "PhaseC_Energy")
AND $__timeFilter(timestamp)
GROUP BY date_format( timestamp, '%Y-%m-%d %H' ), name
И вопрос ... ???