Розумна хатинка – OpenHAB, підрахунок електроенергії

Трохи раніше ми налаштували OpenHAB записувати усі історичні данні до бази даних.

На даний момент тестова система керує розеткою, до якої підключено бойлер.
Розетка може вимірювати струм, значення струму заноситься до бази даних.
Щоб підрахувати скільки електроенергії було витрачено бойлером підключимось напряму до бази даних. Ми використовуємо базу H2, тому можна підключитись з браузера, просто перейшовши за адресою – http://192.168.0.6:8082/
База має просту структуру. Одну таблицю ITEMS та таблиці ITEMXXXX які містять дані.
Зробимо запрос

SELECT * FROM ITEMS

на що отримаємо відповідь:

з відповіді можна побачити, що  значення з датчика BATHROOM_BOILER1_CURRENT_1 пишуться у таблицю ITEM0007.

Усі таблиці мають дуже простий формат – стовпчики TIME та VALUE. Для підрахунку кількості витраченої електроенергії виконаємо такй запрос:

SELECT formatedtime,
       sum((previous/1000.0)*230*TIMESTAMPDIFF(SECOND, prevtime, currenttime)*0.000277778/1000.0) AS power
FROM
  (SELECT @prevtime AS prevtime,
          SET(@prevtime,TIME)currenttime,
          FORMATDATETIME(TIME, 'yyyyMM') AS formatedtime,
          @prev AS previous,
          SET(@prev,value)CURRENT
   FROM ITEM0007
   ORDER BY TIME) AS TBL
GROUP BY formatedtime
ORDER BY formatedtime

Для простоти будемо вважати, що напруга у мережі постійна та дорівнює 230В.
У результаті отримаємо кількість споживаної електроенергії по місяцям:

Якщо переписати запроси щоб отримати суми по днях, експортувати ці данні у excel то можна отримати такий графік: