Tibber [OH5]

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!