30.05.2022, 10:34
Try this, it will automatically use current date time and will provide prices for the current and the next hour.
Code:
json = require('json')
http = require('socket.http')
escape = require('socket.url').escape
now = os.date('!%Y-%m-%dT%H:00:00+00:00')
today = os.date('!%Y-%m-%d')
tomorrow = os.date('!%Y-%m-%d', os.time() + 86400)
ts = escape(today .. 'T00:00:00+00:00')
te = escape(tomorrow .. 'T00:00:00+00:00')
url = 'https://mijn.easyenergy.com/nl/api/tariff/getapxtariffs?startTimestamp=' .. ts .. '&endTimestamp=' .. te
res, err = http.request({
url = url,
headers = {
['content-type'] = 'application/json'
}
})
if res then
data = json.pdecode(res)
if type(data) == 'table' then
for i, item in ipairs(data) do
if item.Timestamp == now then
tariff_return_now = item.TariffReturn
if data[ i + 1 ] then
tariff_return_next = data[ i + 1 ].TariffReturn
end
break
end
end
log(tariff_return_now, tariff_return_next)
else
log('invalid data', res)
end
else
log('request failed', err)
end