I tried to install the marketplace-binding, but I keep getting this error:
Installation of add-on marketplace:164158 failed
I have already tried restarting openHAB, clearing the cache, and trying again, but the problem persists.
I tried to install the marketplace-binding, but I keep getting this error:
Installation of add-on marketplace:164158 failed
I have already tried restarting openHAB, clearing the cache, and trying again, but the problem persists.
Sorry, my fault. Please try again
Now it works!
I receive all relevant data, and the price and cost channels are not present for me, as expected.
Thank you very much for your effort!
I experience same problem as others. Since I upgraded OH4>5 I have issues with Tibber and my heater is again âdummyâ, so:
What I tried to do - upgrade from OH 5.1 stable to snapshot version, reinstalling the Tibber binding, trying Tibber marketplace version as well - nothing helped, same behavior.
Right now I stayed on OH 5.1.0-SNAPSHOT - Build #4788 and have official Tibber binding as per picture:
In the traces I found such errors as
2025-08-23 10:09:16.069 [ERROR] [xbase.resource.BatchLinkableResource] - resolution of uriFragment â|::0.2.0.2.0.10.0.0.1.1.0.0.2::0::/3â failed.
java.lang.NullPointerException: null
and
2025-08-23 10:07:28.906 [ERROR] [xbase.resource.BatchLinkableResource] - resolution of uriFragment '|::0.2.0.2.0.6.0.0.1.1.0.0.2.1.0::0::/1' failed.
java.lang.NullPointerException: Cannot read field "actionServices" because the return value of "org.openhab.core.model.script.ScriptServiceUtil.getInstance()" is null
at org.openhab.core.model.script.ScriptServiceUtil.getActionServices(ScriptServiceUtil.java:123) ~[?:?]
at org.openhab.core.model.script.scoping.ActionClassLoader.loadClass(ActionClassLoader.java:36) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
...
While reading this thread I found this advice:
Please double check if all items from price group are connected to a forecast persistence strategy. Similar to solarforecast binding these are future values showing the day-ahead info with price, level and average24h values.
But I donât have any persistance enabled in my OH. In fact I donât need it as I initialize all important item values in my startup rule of OH and it works perfect. And I do not want to increase load on CPU and disk for storing persistance data´in DB. So I simply do not need it.
But is it maybe requirement for Tibber since OH5 to have the persistance Add-On? Could you please confirm that?
I have not try activating rrd4j add-on yet, but still would like to avoid it.
My heater became dummy since OH5 update since I do not manage it by the Tibber price levels anymore for quite a long time. However recently I managed to find an âugly workaroundâ - I have written the python html-parsing script that takes data from the table on the HTML page https://elspot.nu/dagens-spotpris/timpriser-pa-elborsen-for-elomrade-se3-stockholm/ and then convert those into text file, which is then parsed by OH rule every hour. That works but is defenitely not optimal and a lot of code is involvedâŚ
In fact I donât have experience without any persistence installed in an OH system. Especially if you mention âI initialize all important item values in my startup rule of OH and it works perfectâ looks like youâre doing some kind of refresh, otherwise the value from the previous lifecycle cannot be obtained without being stored before.
But I think I understand your point so letâs dig into it:
I would say yes, you need a persistence addon, see below.
Correct, donât do it as rrd4j doesnât support future values. It will not help!
I donât know the complete history when forecast TimeSeries were introduced but I know the core developers were aware that not everbody has a database service installed likeinfluxdb, mysql,⌠. So inmemory persistence was introduced - no database, no storage on disc just temporary RAM. I think this shall fufill your requirements
I would ask you to give it a try
Thousand thanks @weymann for a very prompt response, much appreciated!
I now tried your recommendations and now all works as a charm! ![]()
InMemory persistance configuration is:
And after disabling / enabling the thing, the result became:


Greaaaaat! Thanks ![]()
Iâm slightly confused right now! ![]()
should i use the core-binding or the markeplace-binding? My understanding was, that the core-binding is the way to go and the Marketplace one âTibber [OH5]â is deprecated? But it was currently updated 5 days ago? ![]()
*EDIT: *
the following changed since 13h and now I get timeseries for all âfutureâ items like price, average24h and level.
⌠question above still stands! ![]()
I ask, because on my sandbox OH5 I do get updates and everything works fine, but on my production OH5 (both docker 5.0.1 btw) I donât. Thereâs no updates on non-live items. I do get those in events.log:
2025-08-29 11:12:26.204 [INFO ] [openhab.event.ItemTimeSeriesEvent ] - Item 'TIB_Current_Total_Price' shall process timeseries with 24 values.
2025-08-29 11:12:26.211 [INFO ] [openhab.event.ItemTimeSeriesEvent ] - Item 'TIB_SpotPrices' shall process timeseries with 24 values.
2025-08-29 11:12:26.221 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item 'TIB_Current_Total_Price' updated timeseries with 24 values.
2025-08-29 11:12:26.221 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item 'TIB_SpotPrices' updated timeseries with 24 values.
(...)
2025-08-29 11:12:53.003 [INFO ] [openhab.event.ItemTimeSeriesEvent ] - Item 'TIB_Average24h' shall process timeseries with 0 values.
2025-08-29 11:12:53.005 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item 'TIB_Average24h' updated timeseries with 0 values.
interestingly enough, thereâs a roughly 30sec gap between timeseries for price/level and average?
thatâs the openhab.log:
2025-08-29 11:11:54.033 [DEBUG] [ibber.internal.handler.TibberHandler] - try to get bundleresource://372.fwk1159694255/graphql/currency.graphql
2025-08-29 11:11:54.036 [TRACE] [ibber.internal.handler.TibberHandler] - Query with body {"query":"{ viewer { home(id: \"xxx\") { currentSubscription { priceInfo { current { currency } } } } }}"}
2025-08-29 11:11:54.197 [TRACE] [ibber.internal.handler.TibberHandler] - doInitialze response 200 - {"data":{"viewer":{"home":{"currentSubscription":{"priceInfo":{"current":{"currency":"EUR"}}}}}}}
2025-08-29 11:11:54.197 [TRACE] [ibber.internal.handler.TibberHandler] - Currency is set to âŹ
2025-08-29 11:11:54.199 [DEBUG] [ibber.internal.handler.TibberHandler] - try to get bundleresource://372.fwk1159694255/graphql/prices.graphql
2025-08-29 11:11:54.255 [TRACE] [ibber.internal.handler.TibberHandler] - updatePrices response 200 - {"data":{"viewer":{"home":{"currentSubscription":{"priceInfo":{"tomorrow":[],"today":[{"startsAt":"2025-08-29T00:00:00.000+02:00","total":0.2642,"level":"NORMAL"},{"startsAt":"2025-08-29T01:00:00.000+02:00","total":0.2621,"level":"NORMAL"},{"startsAt":"2025-08-29T02:00:00.000+02:00","total":0.2619,"level":"NORMAL"},{"startsAt":"2025-08-29T03:00:00.000+02:00","total":0.2601,"level":"NORMAL"},{"startsAt":"2025-08-29T04:00:00.000+02:00","total":0.2618,"level":"NORMAL"},{"startsAt":"2025-08-29T05:00:00.000+02:00","total":0.2713,"level":"NORMAL"},{"startsAt":"2025-08-29T06:00:00.000+02:00","total":0.3029,"level":"NORMAL"},{"startsAt":"2025-08-29T07:00:00.000+02:00","total":0.3075,"level":"NORMAL"},{"startsAt":"2025-08-29T08:00:00.000+02:00","total":0.3058,"level":"NORMAL"},{"startsAt":"2025-08-29T09:00:00.000+02:00","total":0.2943,"level":"NORMAL"},{"startsAt":"2025-08-29T10:00:00.000+02:00","total":0.2633,"level":"NORMAL"},{"startsAt":"2025-08-29T11:00:00.000+02:00","total":0.2559,"level":"CHEAP"},{"startsAt":"2025-08-29T12:00:00.000+02:00","total":0.2433,"level":"CHEAP"},{"startsAt":"2025-08-29T13:00:00.000+02:00","total":0.2272,"level":"CHEAP"},{"startsAt":"2025-08-29T14:00:00.000+02:00","total":0.234,"level":"CHEAP"},{"startsAt":"2025-08-29T15:00:00.000+02:00","total":0.2499,"level":"CHEAP"},{"startsAt":"2025-08-29T16:00:00.000+02:00","total":0.2642,"level":"NORMAL"},{"startsAt":"2025-08-29T17:00:00.000+02:00","total":0.2877,"level":"NORMAL"},{"startsAt":"2025-08-29T18:00:00.000+02:00","total":0.304,"level":"NORMAL"},{"startsAt":"2025-08-29T19:00:00.000+02:00","total":0.3387,"level":"EXPENSIVE"},{"startsAt":"2025-08-29T20:00:00.000+02:00","total":0.3016,"level":"NORMAL"},{"startsAt":"2025-08-29T21:00:00.000+02:00","total":0.2962,"level":"NORMAL"},{"startsAt":"2025-08-29T22:00:00.000+02:00","total":0.2769,"level":"NORMAL"},{"startsAt":"2025-08-29T23:00:00.000+02:00","total":0.2654,"level":"NORMAL"}]}}}}}}
(...)
2025-08-29 11:13:54.201 [DEBUG] [ibber.internal.handler.TibberHandler] - try to get bundleresource://372.fwk1159694255/graphql/realtime.graphql
2025-08-29 11:13:54.346 [TRACE] [ibber.internal.handler.TibberHandler] - isRealtimeEnabled response 200 - {"data":{"viewer":{"home":{"features":{"realTimeConsumptionEnabled":true}}}}}
2025-08-29 11:13:54.357 [DEBUG] [r.internal.websocket.TibberWebsocket] - Starting Websocket connection
2025-08-29 11:13:54.399 [TRACE] [r.internal.websocket.TibberWebsocket] - getSubscriptionUrl response 200 - {"data":{"viewer":{"websocketSubscriptionUrl":"wss://websocket-api.tibber.com/v1-beta/gql/subscriptions"}}}
2025-08-29 11:13:54.563 [TRACE] [r.internal.websocket.TibberWebsocket] - Websocket send message {"type":"connection_init", "payload":{"token":"xxx"}}
2025-08-29 11:13:54.613 [DEBUG] [r.internal.websocket.TibberWebsocket] - WebSocket connected to Server
2025-08-29 11:13:54.614 [TRACE] [r.internal.websocket.TibberWebsocket] - Websocket send message {"id":"1","type":"subscribe","payload":{"variables":{},"extensions":{},"operationName":null,"query":"subscription { liveMeasurement(homeId:\"xxx\") { timestamp power lastMeterConsumption lastMeterProduction accumulatedConsumption accumulatedConsumptionLastHour accumulatedCost currency minPower averagePower maxPower voltagePhase1 voltagePhase2 voltagePhase3 currentL1 currentL2 currentL3 powerProduction accumulatedProduction accumulatedProductionLastHour minPowerProduction maxPowerProduction }}"}}
(the empty lines are present there also, btw)
Anyone know, why the timeseries wonât update on my production OH5?
Thomas, donât be confused!
For some milliseconds the Marketplace binding was obsolete until new findings required changes which need to go in. Development goes on ![]()
Thatsâs why Tibber OH5 Marketplace binding contains now some OH5+ changes.
thanks for your explanation.
ok, so Iâll have to wait for >5.0.1 for total-price and tax to appear, I guess? I can live with that.
Sure or you can install Marketplace binding right now ![]()
Iâm for sure aware that this contains the risk that it wonât be taken into the next release/milestone 1:1. For me is quite appealing to identify negative energy prices so Iâve already installed this on my productive system.
Itâs up to everybodies choice!
I have the same issue but I was not able to solve this problem the way you did. I tried with 5.0.1 and 5.1.0-SNAPSHOT. Not working at all - even though in the events.log it looks like the Binding did receive some values:
2025-09-13 17:42:18.597 [INFO ] [openhab.event.ItemTimeSeriesEvent ] - Item 'Tibber_API_Current_Total_Price' shall process timeseries with 192 values.
2025-09-13 17:42:18.608 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item 'Tibber_API_Current_Total_Price' updated timeseries with 192 values.
But the linked Item remains NULL - so do the forecast values.
I am pretty pissed right now, having spent several hours / evenings without any useful result, when the release notes from OH 5.0 read like its not big deal (recreate thing, link channels,âŚ). ![]()
WAF of the 5.0 update is very bad ![]()
Any Ideas?
Did you create a persistence rule with forecast for the items?
![]()
Only after I did that did the items in the price group stop being NULL.
What do you mean with a persistance rule? The Items are assigned to groups and I have persistance configured on this groups.
For my forecast solar I needed a forecast strategy to be defined in order to get the forecast data. But for tibber I did not have that.
So what kind of rule are you talking about? And where is that mentioned in the docs?
I mean under Settings â Add-on Settings â the relevant Persistence â persistence configuration
It states multiple times, that you need a persistence for forecasted items, and not rrd4j.
the spot-price and level channel (and total-price for >=5.1/marketplace binding) need forecast to function properly.
I have file based config. And yes, the âEnergy*â groups are persisted every 2 minutes. I have now added a forecast group with strategy âforecastâ. And added the items only to that group.
In the log I got the info, that data has been received. And when I analyze the Item, I see forecast values now. But the Item itself remains NULL.
EDIT: After some waiting/ reloading the items are now also showing values!
2025-09-13 21:37:22.230 \[TRACE\] \[ibber.internal.handler.TibberHandler\] - Query with body {"query":"{ viewer { home(id: \\"543a7b78-d049-4e05-a7c9-0a955afa356a\\") { currentSubscription { priceInfo { current { currency } } } } }}"}
2025-09-13 21:37:22.383 \[TRACE\] \[ibber.internal.handler.TibberHandler\] - doInitialze response 200 - {"data":{"viewer":{"home":{"currentSubscription":{"priceInfo":{"current":{"currency":"EUR"}}}}}}}
2025-09-13 21:37:22.383 \[TRACE\] \[ibber.internal.handler.TibberHandler\] - Add channels? true. Has spot price channel? true
2025-09-13 21:37:22.384 \[TRACE\] \[ibber.internal.handler.TibberHandler\] - Currency is set to âŹ
2025-09-13 21:37:22.445 \[TRACE\] \[ibber.internal.handler.TibberHandler\] - updatePrices response 200 - {"data":{"viewer":{"home":{"currentSubscription":{"priceInfo":{"tomorrow":\[{"startsAt":"2025-09-14T00:00:00.000+02:00","total":0.3109,"energy":0.0857,"tax":0.2252,"level":"NORMAL"},{"startsAt":"2025-09-14T00:15:00.000+02:00","total":0.3109,"energy":0.0857,"tax":0.2252,"level":"NORMAL"},{"startsAt":"2025-09-14T00:30:00.000+02:00","total":0.3109,"energy":0.0857,"tax":0.2252,"level":"NORMAL"},{"startsAt":"2025-09-14T00:45:00.000+02:00","total":0.3109,"energy":0.0857,"tax":0.2252,"level":"NORMAL"},{"startsAt":"2025-09-14T01:00:00.000+02:00","total":0.3012,"energy":0.0776,"tax":0.2236,"level":"NORMAL"},[....cut]
2025-09-13 21:37:22.453 \[DEBUG\] \[ibber.internal.handler.TibberHandler\] - update found - continue
Hey Thomas - thanks for the link to the docs of the binding.
After you mentioned it, I ran a text search again over it. Indeed there is ONE (not multiple) HINT in a kind of footnote that states:
Please note time series are not supported by the default rrd4j (opens new window) persistence. The items connected to the above channels needs to be stored in e.g. InfluxDB (opens new window) or InMemory (opens new window).
So I am using a influx . It does not say at any line, that the persistance for that Group need to be configured as âforecastâ.
Maybe the docs should be modified so that this is more clearly.
Follow-up question: Is it allowed to have the item also added to groups that have no forcast strategy definied?
Hi,
Iam using the last snaphot: org.openhab.binding.tibber-4.3.8-SNAPSHOT-Hourly.jar but there no price updates in any item.
Here´s the event.log:
2025-09-26 13:24:38.999 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item âTibber_API_OH5_Total_Priceâ updated timeseries with 48 values.
2025-09-26 13:24:39.001 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing âmail:smtp:ad7c2719adâ changed from UNINITIALIZED (NOT_YET_READY) to INITIALIZING
2025-09-26 13:24:39.034 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item âTibber_API_OH5_Spot_Priceâ updated timeseries with 48 values.
2025-09-26 13:24:39.035 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing âmail:smtp:ad7c2719adâ changed from INITIALIZING to ONLINE
2025-09-26 13:24:39.062 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item âTibber_API_OH5_Taxâ updated timeseries with 48 values.
2025-09-26 13:24:39.076 [INFO ] [hab.event.ItemTimeSeriesUpdatedEvent] - Item âTibber_API_OH5_Price_Levelâ updated timeseries with 48 values.
Did you setup InMemory persistence for the TimeSeries items ? Thatâs a prerequisite.