Tibber Binding

The reconnect attempts are made based on the Refresh Interval you set for the Tibber API within the binding. If the server will not accept, the connect attempt will fail, and will wait next attempt until refresh interval is reached.

Hi there,
I’m using Tibber-Binding and it works like a charm. Great to control the consumption of my heat pump and BEV. Just one question:

Does anyone have some experience, what might be the best set of rules to heat the water according to the price. Not for the heating the room, but for normal hot water (DHW)?

Is it best to increase the target temperature for DHW from 45° to 60° when price is low? Or to switch DHW to manual/off when price is high? Any suggestions for that?

Thanks in advance.
Cheers, Sebastian

I’m in the waiting line for Tibber and my API-Token works already.
Using OH3.4.1-release and what I’m missing is some of the API-functionality like the “priceLevel” (CHEAP, NORMAL, EXPENSIVE, …). Do I have to configure something? or is it not present in the binding anymore?

Price level is included as a default channel in the binding, as part of the Tibber subscription query:

1 Like

All right, I’m sorry, was real blind! :wink:

directing some attention to this, I find the “BestPrice”-functionality of the aWATTar binding very useful, perhaps it can be merged or used within the Tibber-Binding?

I have a problem with only the item “TibberAPITomorrowPrices”. It gets no update…
From “Tibber - Bindings | openHAB” the complete “demo.items” was copied and only the “7cfae492” was updated to my ID.
In the Thing “Tibber API” i have ALL channel besides “TibberAPITomorrowPrices”

Does anyone can give me a hint why the most important channel is missing and also the item TibberAPITomorrowPrices is not updated…

Thanks in advance!

Could you set logging to debug and post the response from Tibber?

1 Like

Looks like a lot of infomartion is missing in the API response?
Up to now i’m not using the Pulse. Are the price array exclusive to Pulse users?

2023-02-21 22:47:55.432 [DEBUG] [ibber.internal.handler.TibberHandler] - API response: {“data”:{“viewer”:{“home”:{“currentSubscription”:{“priceInfo”:{“current”:{“total”:0.3243,“startsAt”:“2023-02-21T22:00:00.000+01:00”,“level”:“EXPENSIVE”}}},“daily”:{“nodes”:[{“from”:“2023-02-20T00:00:00.000+01:00”,“to”:“2023-02-21T00:00:00.000+01:00”,“cost”:1.5109073952,“unitPrice”:0.222127,“consumption”:6.802,“consumptionUnit”:“kWh”}]},“hourly”:{“nodes”:[{“from”:“2023-02-21T21:00:00.000+01:00”,“to”:“2023-02-21T22:00:00.000+01:00”,“cost”:null,“unitPrice”:0.3309985,“consumption”:null,“consumptionUnit”:“kWh”}]}}}}}

As a Tibber customer in Germany waiting for my Pulse to arrive I’m able to access the future prices via Tibber API explorer:

{
  viewer {
    homes {
      currentSubscription{
        priceInfo{
          tomorrow {
            total
            energy
            tax
            startsAt
          }
        }
      }
    }
  }
}

Response:

{
  "data": {
    "viewer": {
      "homes": [
        {
          "currentSubscription": {
            "priceInfo": {
              "tomorrow": [
                {
                  "total": 0.2922,
                  "energy": 0.1399,
                  "tax": 0.1523,
                  "startsAt": "2023-02-22T00:00:00.000+01:00"
                },
                {
                  "total": 0.2787,
                  "energy": 0.1285,
                  "tax": 0.1502,
                  "startsAt": "2023-02-22T01:00:00.000+01:00"
                },
[...]

Looks like you have to check the ‘Show advanced’ box to make the channel for tomorrow prices visible:
grafik

Linking an item to ‘Prices for tomorrow as a JSON array’ should do the trick:


> precision rfc3339
> select * from TibberAPI_PricesfortomorrowasaJSONarray
name: TibberAPI_PricesfortomorrowasaJSONarray
time                     item                                    value
----                     ----                                    -----
2023-02-21T22:58:39.766Z TibberAPI_PricesfortomorrowasaJSONarray [{"startsAt":"2023-02-22T00:00:00.000+01:00","total":0.2922},{"startsAt":"2023-02-22T01:00:00.000+01:00","total":0.2787},{"startsAt":"2023-02-22T02:00:00.000+01:00","total":0.2748},{"startsAt":"2023-02-22T03:00:00.000+01:00","total":0.2787},{"startsAt":"2023-02-22T04:00:00.000+01:00","total":0.2799},{"startsAt":"2023-02-22T05:00:00.000+01:00","total":0.2914},{"startsAt":"2023-02-22T06:00:00.000+01:00","total":0.3131},{"startsAt":"2023-02-22T07:00:00.000+01:00","total":0.3317},{"startsAt":"2023-02-22T08:00:00.000+01:00","total":0.3356},{"startsAt":"2023-02-22T09:00:00.000+01:00","total":0.3215},{"startsAt":"2023-02-22T10:00:00.000+01:00","total":0.3072},{"startsAt":"2023-02-22T11:00:00.000+01:00","total":0.2887},{"startsAt":"2023-02-22T12:00:00.000+01:00","total":0.2799},{"startsAt":"2023-02-22T13:00:00.000+01:00","total":0.2794},{"startsAt":"2023-02-22T14:00:00.000+01:00","total":0.2876},{"startsAt":"2023-02-22T15:00:00.000+01:00","total":0.3053},{"startsAt":"2023-02-22T16:00:00.000+01:00","total":0.3125},{"startsAt":"2023-02-22T17:00:00.000+01:00","total":0.3221},{"startsAt":"2023-02-22T18:00:00.000+01:00","total":0.334},{"startsAt":"2023-02-22T19:00:00.000+01:00","total":0.3313},{"startsAt":"2023-02-22T20:00:00.000+01:00","total":0.3186},{"startsAt":"2023-02-22T21:00:00.000+01:00","total":0.309},{"startsAt":"2023-02-22T22:00:00.000+01:00","total":0.3037},{"startsAt":"2023-02-22T23:00:00.000+01:00","total":0.2857}]
2023-02-21T23:00:40.463Z TibberAPI_PricesfortomorrowasaJSONarray []

Please note that the array has been cleared (I’m in the CET/+01:00 time zone) as the prices for tomorrow aren’t available yet.

1 Like

Ok we have the same setup. Also Germany waiting for the ordered Pulse.

Tibber API explorer responses for tomorrow and today like you showed. No problem on that side.

{
  "data": {
    "viewer": {
      "homes": [
        {
          "currentSubscription": {
            "priceInfo": {
              "today": [
                {
                  "total": 0.3023,
                  "energy": 0.1347,
                  "tax": 0.1676,
                  "startsAt": "2023-02-23T00:00:00.000+01:00"
                },
                {
                  "total": 0.2984,
                  "energy": 0.1314,
                  "tax": 0.167,
                  "startsAt": "2023-02-23T01:00:00.000+01:00"
                },
                {
                  "total": 0.2955,
                  "energy": 0.129,
                  "tax": 0.1665,
                  "startsAt": "2023-02-23T02:00:00.000+01:00"
                },

Unfortunately i’m missing the “Show advanced” checkbox and don’t know why.

So I’m not able to link an item to it because the channel is missing…
I have it like this defined in the Tibber.items file and both are still “NULL”.
Also the linking should ideally not be necessary by linking the item and channel in the text file?

String                     TibberAPITomorrowPrices               "Price per hour tomorrow JSON array"        {channel="tibber:tibberapi:ab460af:tomorrow_prices"}
String                     TibberAPITodayPrices                  "Price per hour today JSON array"           {channel="tibber:tibberapi:ab460af:today_prices"}

On a sidenote does anyone know if a Pulse can be bought/operated without Tibber, too?
Or of a different device to provide the same function?

If you created your thing a long time ago from the UI, you might have to delete it, create it again and relink your items.

I’m afraid not. Each Pulse comes with a unique password, hash and stuff, which is preconfigured with the Tibber API.
You can intercept the communication and practically have both a local interface and send the data to Tibber like this

But from what I discussed with Tibber it ia not possible in Germany to send data without a Pulse or Discovergy for the hourly tariff. There has to be some certified tibber hardware doing that and not API only. Too many possible manipulation possibilities, I guess

Hi,
this one is from a Swedish seller, but might work for other markets aswell, just a guess I have not tested it.
Let me know if there is something I can help with regarded Swedish.

Br Basse

Sorry, missed the link,

I don’t really see a big difference between feeding ‘optimized’ energy consumption data via API and via a transmitter that speaks IEC62056-21, SML, Logarex or Imps … :slight_smile: I’m no laywer, but I think German §248c StGB wouldn’t apply, but there is German § 263 StGB …

Summary:
It would be illegal - and keep in mind that a ‘moderne Messeinrichtung’ can provide historical data itself.

it’s easy:

requirement:

  • use a digital meter (mind the difference from a “simple eHZ” vs an smart meter!)
  • have hourly tariff
  • disconnect the certified hardware / never use one; we’re talking about the “Tibber Pulse”, an upgrade to a digital meter, so it behaves -in part- like a smart meter
  1. start your high load on high tariff hours
  2. calculate the high load consumption
  3. substract the hig load from overall consumption
  4. only send the “normal consumption” via API
  5. wait for low tariff hours
  6. add the calculated high load consumption
  7. add it over the period of time you used the high tariff

I could easily write a rule for that using persistence. piece of cake.

of course it’s illegal. tax fraud is also illegal - and still people do it.

The second reason for an EVU would be to avoid immense support costs for people thinking they can use just whatever script to hourly upload the consumption and then Tibber had to bind valuable ressource to go through “how to use our API correctly” with each and everyone…

can I get the current grid feed counter of a two-way meter through a Pulse/the Tibber binding, too ?
I only see the consumption and feedin-since-midnight channels.

My Tibber Pulse just arrived today and what I can say for sure is, you can read-out of course current consumption and current feedin (as this is then shown in the App). What I’m missing (and don’t find in the Tibber Developer API docs) is the overall meter reading for consumption (aka 1-0:1.8.0) and feed-in (aka 1-0:2.8.0). Perhaps I’m missing something…?