25.02.2024, 17:08
Tibber API
|
23.04.2024, 06:16
Hey, i'm trying to get the current price. But i dont have a subscription or a home in tibber. So is it possible to read the current price? And want to write it in a GA.
Here is my code and what i get, but i dont understand why.
23.04.2024, 09:45
(23.04.2024, 06:16)davidkoch29 Wrote: Hey, i'm trying to get the current price. But i dont have a subscription or a home in tibber. So is it possible to read the current price? And want to write it in a GA. You need a Tibber account with a token. Best regards, Jørn.
23.04.2024, 09:47
(This post was last modified: 23.04.2024, 09:47 by davidkoch29.)
Hi Jorn, i have a Tibber account and token.
I deleted the token for the picture
23.04.2024, 09:58
Try this query:
Code: 123456789101112131415 query = [[
{
viewer {
homes {
currentSubscription {
priceInfo {
current {
total
}
}
}
}
}
}
]]I suppose you need to create a currentSubscription/home before using queries.
22.01.2025, 21:00
Is this method working anymore?
My script suddenly stopped working 8 jan. i now returns code 400 Code: 12345678910111213141516171819202122232425262728293031 os.sleep(1)
https = require('ssl.https')
json = require('json')
ltn12 = require('ltn12')
token = '5K4MVS-OjfWhK_4yrjOlFe1F6kJXPVf7eQYggo8ebAE' -- demotoken
data = json.encode({
query = '{viewer {homes {currentSubscription {priceInfo}}}}' --kwh pris med avgifter
})
tbl = {}
res, code = https.request({
url = 'https://api.tibber.com/v1-beta/gql',
method = 'POST',
headers = {
['authorization'] = 'Bearer ' .. token,
['content-type'] = 'application/json',
['content-length'] = #data,
},
source = ltn12.source.string(data),
sink = ltn12.sink.table(tbl),
})
if res and code == 200 then
resp = table.concat(tbl)
resp = json.pdecode(resp)
homes = resp.data.viewer.homes
info = homes[ 1 ].currentSubscription.priceInfo.current
log(res, code, info.total, info.level)
grp.write('33/0/51', info.total*100)
grp.write('33/0/53', info.level)
else
log(res, code, homes, info)
end
23.01.2025, 06:55
You are missing priceInfo fields that API should return.
Code: 12345678910111213 data = json.encode({
query = [[
{ viewer
{ homes
{ currentSubscription
{ priceInfo
{ current { total level startsAt } }
}
}
}
}
]]
})Error logging can be improved because the server response contains a useful error message. Code: 1234567891011121314 resp = table.concat(tbl)
if res and code == 200 then
resp = json.pdecode(resp)
homes = resp.data.viewer.homes
info = homes[ 1 ].currentSubscription.priceInfo.current
log(res, code, info.total, info.level)
grp.write('33/0/51', info.total*100)
grp.write('33/0/53', info.level)
else
log(res, code, resp)
end
23.01.2025, 08:28
Thanks for your quick reply.
I still got the error but ran the pieces of code on https://developer.tibber.com/explorer and it worked there. Then I remembered that I some weeks ago I added Melcloud powerup in the Tibber-APP.. In my Melcloud-account I have inserted one extra heatpump at another location. For some reason this has bumped my mainhome to home #2. So then i had to change the line info = homes[ 1 ].currentSubscription.priceInfo.current to info = homes[ 2 ].currentSubscription.priceInfo.current and then we are back up and running. Thank you again for sharing your knowledge ![]() |
« Next Oldest | Next Newest »
|