Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. TibberLink Adapter

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    TibberLink Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      lesiflo Most Active last edited by lesiflo

      Hier mal ein Java-Script welches die Daten von aktuellen Monat errechnet und in Datenpunkte schreibt.

      // =================== KONFIG ===================
      const jsonDP         = 'tibberlink.0.Homes.xxxxxxxxxxxx.Consumption.jsonDaily';
      const resultCostDP   = '0_userdata.0.Tibber.SumUnitCostThisMonth';    // Ziel-DP Kosten (Summe)
      const resultConsDP   = '0_userdata.0.Tibber.SumConsumptionThisMonth'; // Ziel-DP Verbrauch
      const resultPriceDP  = '0_userdata.0.Tibber.AvgUnitPriceThisMonth';   // Ziel-DP Durchschnittspreis
      
      // =================== FUNKTION ===================
      function calcMonthValues() {
          try {
              const raw = getState(jsonDP).val;
              if (!raw) {
                  log('Keine Daten im JSON-DP vorhanden', 'warn');
                  return;
              }
      
              const data = JSON.parse(raw);
              let sumCost = 0;
              let sumCons = 0;
      
              // aktuelles Jahr & Monat bestimmen
              const now = new Date();
              const currentYear  = now.getFullYear();
              const currentMonth = now.getMonth(); // 0-basiert (0=Jan, 11=Dez)
      
              data.forEach(entry => {
                  if (!entry.from) return;
      
                  const d = new Date(entry.from);
                  if (d.getFullYear() === currentYear && d.getMonth() === currentMonth) {
                      if (entry.totalCost !== undefined && !isNaN(entry.totalCost)) {
                          sumCost += parseFloat(entry.totalCost);
                      }
                      if (entry.consumption !== undefined && !isNaN(entry.consumption)) {
                          sumCons += parseFloat(entry.consumption);
                      }
                  }
              });
      
              // Durchschnitt berechnen
              let avgPrice = sumCost/sumCons;
      
              // Ergebnisse in DP schreiben
              setState(resultCostDP, sumCost, true);
              setState(resultConsDP, sumCons, true);
              setState(resultPriceDP, avgPrice, true);
      
              log(`Summe unitCost (aktueller Monat): ${sumCost.toFixed(4)} €`, 'info');
              log(`Summe consumption (aktueller Monat): ${sumCons.toFixed(3)} kWh`, 'info');
              log(`Ø unitPrice (aktueller Monat): ${avgPrice.toFixed(4)} €/kWh`, 'info');
      
          } catch (e) {
              log(`Fehler beim Verarbeiten des JSON: ${e}`, 'error');
          }
      }
      
      // =================== TRIGGER ===================
      // 1x direkt beim Start
      calcMonthValues();
      
      // bei Änderungen des JSON-DPs neu berechnen
      on({id: jsonDP, change: 'any'}, () => {
          calcMonthValues();
      });
      
      // =================== DATENPUNKTE ANLEGEN ===================
      createState(resultCostDP, 0, {
          name: 'Summe unitCost aktueller Monat (Tibber)',
          type: 'number',
          unit: '€',
          role: 'value'
      });
      
      createState(resultConsDP, 0, {
          name: 'Summe Verbrauch aktueller Monat (Tibber)',
          type: 'number',
          unit: 'kWh',
          role: 'value'
      });
      
      createState(resultPriceDP, 0, {
          name: 'Durchschnitt unitPrice aktueller Monat (Tibber)',
          type: 'number',
          unit: '€/kWh',
          role: 'value'
      });
      
      
      icebear E 3 Replies Last reply Reply Quote 0
      • icebear
        icebear @lesiflo last edited by

        @lesiflo

        Du solltest deine Home-ID unkenntlich machen!!

        L 1 Reply Last reply Reply Quote 0
        • L
          lesiflo Most Active @icebear last edited by

          @icebear Erledigt.

          1 Reply Last reply Reply Quote 0
          • icebear
            icebear @lesiflo last edited by

            @lesiflo said in TibberLink Adapter:

            Hier mal ein Java-Script welches die Daten von aktuellen Monat errechnet und in Datenpunkte schreibt.

            Ich hab da jetzt doch mal eine Frage dazu, wieso rechnest du nicht mit den Bruttowerten, damit man direkt die tatsächlichen Kosten sieht? Anstatt von 'unitCost' steht doch schon der Preis/Tag im JSON drin = 'totalCost'

            Und bei 'avgPrice' brauchst du doch auch nur 'consumption' / 'totalPrice' = avgPrice/d

            L 1 Reply Last reply Reply Quote 0
            • L
              lesiflo Most Active @icebear last edited by

              @icebear Guter Einwand, ist korrigiert.

              1 Reply Last reply Reply Quote 0
              • E
                ETGermany @lesiflo last edited by

                @lesiflo

                Nur zur Info:

                Method "createState" is deprecated and will be removed in js-controller 7.1, use "extendObject/setObjectNotExists"

                A 1 Reply Last reply Reply Quote 0
                • A
                  ArnoD @ETGermany last edited by

                  @etgermany

                  Nur zur Info:
                  Method "createState" is deprecated and will be removed in js-controller 7.1, use "extendObject/setObjectNotExists"

                  Nur zur Info:
                  das betrifft nicht den JavaScript Adapter

                  E 1 Reply Last reply Reply Quote 0
                  • B
                    bakerman23 last edited by

                    Ab morgen kommen bei Tibber die Preise im 15 Minutentakt. Hat jemand eine Information, wie die Kanäle in zukunft funktionieren sollen?
                    Da ist ja alles auf Stunden ausgelegt.

                    H 1 Reply Last reply Reply Quote 2
                    • E
                      ETGermany @ArnoD last edited by

                      @arnod sagte in TibberLink Adapter:

                      das betrifft nicht den JavaScript Adapter

                      War ja auch auf das Skript von @lesiflo bezogen 😊

                      A 1 Reply Last reply Reply Quote 0
                      • H
                        HomeUser @bakerman23 last edited by

                        @bakerman23 said in TibberLink Adapter:

                        Ab morgen kommen bei Tibber die Preise im 15 Minutentakt. Hat jemand eine Information, wie die Kanäle in zukunft funktionieren sollen?
                        Da ist ja alles auf Stunden ausgelegt.

                        Laut API Change Log müsste es erstmal mit Stunden weiter arbeiten. https://developer.tibber.com/docs/changelog

                        Wäre aber natürlich schön, wenn der Adapter auch Stunden und Viertelstunden unterstützen würde.

                        T 1 Reply Last reply Reply Quote 1
                        • T
                          ttoebbe @HomeUser last edited by

                          @homeuser said in TibberLink Adapter:

                          @bakerman23 said in TibberLink Adapter:

                          Ab morgen kommen bei Tibber die Preise im 15 Minutentakt. Hat jemand eine Information, wie die Kanäle in zukunft funktionieren sollen?
                          Da ist ja alles auf Stunden ausgelegt.

                          Laut API Change Log müsste es erstmal mit Stunden weiter arbeiten. https://developer.tibber.com/docs/changelog

                          Wäre aber natürlich schön, wenn der Adapter auch Stunden und Viertelstunden unterstützen würde.

                          Moin ✌
                          ich habe gestern die neueste Version von GitHub gezogen 5.0.4. Allerdings zeigt er für morgen noch keine Daten :-(.
                          Frage, wie ist es bei euch?
                          Falls es noch geht sollte ich zurück auf den letzten "Stable"?

                          Muss mir morgen sonst etwas einfallen lassen 😉 --> Sonst bekomme ich Ärger zuhause😥

                          BG ttoebbe

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            LibertyX82 @ttoebbe last edited by

                            @ttoebbe
                            Ich habe die Preise für morgen.

                            Die API unterstützt für die Preise sowohl stündlich als auch viertelstündliche Werte, bei den stündlichen Werten handelt es sich um einen gemittelten Wert.

                            Die Verbrauchsabfrage (home.consumption) bleibt stündlich.

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              ttoebbe @LibertyX82 last edited by

                              @libertyx82 Guten Morgen ✌

                              bei mir (wie gesagt Tibberlinkversion 5.0.4) sind die Preise dann heute Nacht c65ef86b-927f-466f-822e-14f850f37475-image.png erschienen.
                              Allerdings sind es auch noch die Stunden.
                              593b4517-f047-4e0c-9ec3-958fc69c4d90-image.png
                              Dann bin ich einmal auf heute 14 Uhr gespannt.
                              Oder habe ich da noch einen anderen Denkfehler, bzw. muss ich die 15min nun irgendwo einstellen?
                              BG ttoebbe 🤙

                              1 Reply Last reply Reply Quote 0
                              • A
                                ArnoD @ETGermany last edited by

                                @etgermany sagte in TibberLink Adapter:

                                War ja auch auf das Skript von @lesiflo bezogen

                                Genau deswegen 🙂 Sein Skript läuft im Javascript Adapter und der ist nicht betroffen sondern nur für die was Adapter programmieren wollen.

                                1 Reply Last reply Reply Quote 0
                                • Gargano
                                  Gargano last edited by

                                  The Subscription.priceInfo field (i.e. the type PriceInfo) now takes an optional argument resolution that can either be HOURLY or QUARTER_HOURLY.

                                  Default ist Hourly.

                                  Es müsste im Adapter einzustellen sein , habe aber diesbezüglich nichts gesehen.

                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    LibertyX82 @Gargano last edited by

                                    @gargano
                                    Da es das Argument vorher nicht gab, nutzt es der Adapter auch nicht, daher kannst du es im Adapter auch nicht einstellen .

                                    Damit alte Integrationen weiterhin funktionieren, wird bei nicht Angabe des Arguments "resolution" weiterhin HOURLY verwendet.

                                    Gargano 1 Reply Last reply Reply Quote 0
                                    • Gargano
                                      Gargano @LibertyX82 last edited by

                                      @libertyx82 sagte in TibberLink Adapter:

                                      Da es das Argument vorher nicht gab, nutzt es der Adapter auch nicht, daher kannst du es im Adapter auch nicht einstellen

                                      Der Changelog von Tibber, in dem die Änderung beschrieben ist, ist vom Datum 1.9.2025
                                      Die letzte Version von Tibberlink ist 4 Tage alt. Da hätte es ja sein können, daß die Änderung schon eingeflossen ist.

                                      H 1 Reply Last reply Reply Quote 0
                                      • H
                                        HomeUser @Gargano last edited by

                                        Für den Abruf der 15-Minuten-Werte müsste nach meinem Verständnis der neue Parameter im Aufruf der Tibber-API verwendet werden und dann der folgende Abschnitt im Adapter angepasst werden:

                                        tibberAPICaller.ts an Zeile 228

                                        				for (const price of pricesToday) {
                                        					const hour = new Date(price.startsAt.substr(0, 19)).getHours();
                                        					await this.fetchPrice(homeId, `PricesToday.${hour}`, price);
                                        				}
                                        				if (Array.isArray(pricesToday) && pricesToday[2]?.startsAt) {
                                        					// Got valid pricesToday
                                        					void this.checkAndSetValue(
                                        						`Homes.${homeId}.PricesToday.jsonBYpriceASC`,
                                        						JSON.stringify(pricesToday.sort((a, b) => a.total - b.total)),
                                        						"prices sorted by cost ascending as json",
                                        					);
                                        					exDate = new Date(pricesToday[2].startsAt);
                                        					if (exDate && exDate >= today) {
                                        						return true;
                                        					}
                                        

                                        Leider hätte ich erst in gut 2 Wochen Zeit mich experimentell darun zu versuchen. Die Hoffnung lebt, dass es bis dahin schon umgesetzt ist 🙂

                                        docadams 1 Reply Last reply Reply Quote 2
                                        • docadams
                                          docadams @HomeUser last edited by docadams

                                          EDIT: hat sich erledigt.
                                          Zwar waren alle Einstellungen usw. korrekt bzw. es wurden keine Probleme angezeigt. Am Gesamtsystem wurde seit 2 Jahren nichts mehr gewerkelt.
                                          Nach Trennung des Pulse und anschließender Neuverbindung entsprechend Anleitung läuft es wieder.
                                          Alles OK (hoffentlich)

                                          Hallo,
                                          ich lese hier eigentlich nur still mit.

                                          Seit heute, 02.01.25 13.59 Uhr aktualisieren sich die Tibber-Daten nicht mehr. Auch nicht bei LocalPulse.
                                          Und jetzt stelle ich fest, dass die Tipper-Handy-App auch seit etwa dieser Zeit keinen Kontakt zum Pulse hat.

                                          Es liegt also nicht an ioBroker.
                                          Batterien wurden getausch, WLAN ist OK.
                                          Weil diese Unterbrechungszeit nicht so ganz willkürlich scheint, hat jemand noch dieses Problem?

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          422
                                          Online

                                          32.2k
                                          Users

                                          80.9k
                                          Topics

                                          1.3m
                                          Posts

                                          83
                                          585
                                          177525
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo