Hello everyone,
I’m using the Tibber binding in openHAB 5.0.0 (Release Build) on Ubuntu 24.04.3 LTS with official Tibber binding from the OH distribution. My Java version is OpenJDK 21.0.8.
I do not have a Tibber contract – I only want to read meter data via Tibber Pulse.
When starting the Thing, I get the following error in the log:
==> /var/log/openhab/events.log <==
2025-08-15 13:04:10.637 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tibber:tibberapi:f686996226' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2025-08-15 13:04:10.638 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tibber:tibberapi:f686996226' changed from INITIALIZING to UNKNOWN
==> /var/log/openhab/openhab.log <==
2025-08-15 13:04:10.638 [DEBUG] [ibber.internal.handler.TibberHandler] - try to get bundleresource://327.fwk1515403487/graphql/currency.graphql
2025-08-15 13:04:10.639 [TRACE] [ibber.internal.handler.TibberHandler] - Query with body {"query":"{ viewer { home(id: \"********-****-****-****-************\") { currentSubscription { priceInfo { current { currency } } } } }}"}
2025-08-15 13:04:10.827 [TRACE] [ibber.internal.handler.TibberHandler] - doInitialze response 200 - {"data":{"viewer":{"home":{"currentSubscription":null}}}}
2025-08-15 13:04:10.828 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.ClassCastException: class com.google.gson.JsonNull cannot be cast to class com.google.gson.JsonObject (com.google.gson.JsonNull and com.google.gson.JsonObject are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @cab57ab)
at com.google.gson.JsonObject.getAsJsonObject(JsonObject.java:223) ~[?:?]
at org.openhab.binding.tibber.internal.Utils.getJsonObject(Utils.java:61) ~[?:?]
at org.openhab.binding.tibber.internal.handler.TibberHandler.doInitialize(TibberHandler.java:202) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) [?:?]
The log shows that currentSubscription is null. This is the result from Tibber GraphQL Explorer:
{
"data": {
"viewer": {
"home": {
"currentSubscription": null
}
}
}
}
It seems the binding is not prepared for cases where there is no active subscription.
As soon as currentSubscription is null, the binding crashes and provides no data.
My goal: Only read meter data via Tibber Pulse, without an active electricity contract.
This setup worked fine with openHAB 4.3.
Is this a known issue with the binding, or am I overlooking something?
Thanks for your help!