Трохи раніше ми налаштували 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 то можна отримати такий графік: