To access the WebHMI DB data via API, you have to generate API key in the setup menu and use it in your requests. You can use localhost address as a part of the resource address.
function getMeterData(startTime, endTime) local c = cURL.easy_init() c : setopt{ url = 'http://127.0.0.1/api/meters-log/', timeout = 15, httpheader = { 'X-WH-APIKEY: 4025D32205ADC52E8604690FFADFB4600B8D41AA', 'X-WH-START: ' .. startTime, 'X-WH-END: ' .. endTime, 'Accept: application/json', 'Content-Type: application/json' } } local res = "" c:perform{writefunction = function(str) res = res .. str end} c : close() if (res == '') or (res == '%[%]')then ERROR('No data in response!') return false else DEBUG(res) return res end end
function getGraphData(regId, startTime, endTime) local c = cURL.easy_init() c : setopt{ url = 'http://127.0.0.1/api/graph-data/', timeout = 15, httpheader = {'X-WH-APIKEY: 9833A5C553C5E05D944C28615EB252A6CB2E9322', 'X-WH-START: ' .. startTime, 'X-WH-END: ' .. endTime, 'X-WH-SLICES: ' .. 30, 'X-WH-REGISTERS: ' .. regId, 'Accept: application/json', 'Content-Type: application/json' } } local res = "" c:perform{writefunction = function(str) res = res .. str end} c : close() if (res == '') or (res == '%[%]')then ERROR('No data in response!') return false else return res end end