Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. TibberLink Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

TibberLink Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
615 Beiträge 85 Kommentatoren 193.2k Aufrufe 78 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L 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'
    });
    
    
    icebearI Online
    icebearI Online
    icebear
    schrieb am zuletzt editiert von
    #568

    @lesiflo

    Du solltest deine Home-ID unkenntlich machen!!

    L 1 Antwort Letzte Antwort
    0
    • icebearI icebear

      @lesiflo

      Du solltest deine Home-ID unkenntlich machen!!

      L Offline
      L Offline
      lesiflo
      Most Active
      schrieb am zuletzt editiert von
      #569

      @icebear Erledigt.

      1 Antwort Letzte Antwort
      0
      • L 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'
        });
        
        
        icebearI Online
        icebearI Online
        icebear
        schrieb am zuletzt editiert von
        #570

        @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 Antwort Letzte Antwort
        0
        • icebearI icebear

          @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 Offline
          L Offline
          lesiflo
          Most Active
          schrieb am zuletzt editiert von
          #571

          @icebear Guter Einwand, ist korrigiert.

          1 Antwort Letzte Antwort
          0
          • L 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'
            });
            
            
            E Offline
            E Offline
            ETGermany
            schrieb am zuletzt editiert von
            #572

            @lesiflo

            Nur zur Info:

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

            A 1 Antwort Letzte Antwort
            0
            • E ETGermany

              @lesiflo

              Nur zur Info:

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

              A Offline
              A Offline
              ArnoD
              schrieb am zuletzt editiert von
              #573

              @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 Antwort Letzte Antwort
              0
              • B Offline
                B Offline
                bakerman23
                schrieb am zuletzt editiert von
                #574

                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 Antwort Letzte Antwort
                2
                • A ArnoD

                  @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 Offline
                  E Offline
                  ETGermany
                  schrieb am zuletzt editiert von
                  #575

                  @arnod sagte in TibberLink Adapter:

                  das betrifft nicht den JavaScript Adapter

                  War ja auch auf das Skript von @lesiflo bezogen 😊

                  A 1 Antwort Letzte Antwort
                  0
                  • B bakerman23

                    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 Offline
                    H Offline
                    HomeUser
                    schrieb am zuletzt editiert von
                    #576

                    @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 Antwort Letzte Antwort
                    1
                    • H HomeUser

                      @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 Offline
                      T Offline
                      ttoebbe
                      schrieb am zuletzt editiert von
                      #577

                      @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 Antwort Letzte Antwort
                      0
                      • T ttoebbe

                        @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 Offline
                        L Offline
                        LibertyX82
                        schrieb am zuletzt editiert von
                        #578

                        @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 Antwort Letzte Antwort
                        0
                        • L LibertyX82

                          @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 Offline
                          T Offline
                          ttoebbe
                          schrieb am zuletzt editiert von
                          #579

                          @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 Antwort Letzte Antwort
                          0
                          • E ETGermany

                            @arnod sagte in TibberLink Adapter:

                            das betrifft nicht den JavaScript Adapter

                            War ja auch auf das Skript von @lesiflo bezogen 😊

                            A Offline
                            A Offline
                            ArnoD
                            schrieb am zuletzt editiert von
                            #580

                            @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 Antwort Letzte Antwort
                            0
                            • GarganoG Offline
                              GarganoG Offline
                              Gargano
                              schrieb am zuletzt editiert von
                              #581

                              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 Antwort Letzte Antwort
                              0
                              • GarganoG Gargano

                                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 Offline
                                L Offline
                                LibertyX82
                                schrieb am zuletzt editiert von
                                #582

                                @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.

                                GarganoG 1 Antwort Letzte Antwort
                                0
                                • L LibertyX82

                                  @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.

                                  GarganoG Offline
                                  GarganoG Offline
                                  Gargano
                                  schrieb am zuletzt editiert von
                                  #583

                                  @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 Antwort Letzte Antwort
                                  0
                                  • GarganoG Gargano

                                    @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 Offline
                                    H Offline
                                    HomeUser
                                    schrieb am zuletzt editiert von
                                    #584

                                    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 🙂

                                    docadamsD T B 3 Antworten Letzte Antwort
                                    2
                                    • H HomeUser

                                      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 🙂

                                      docadamsD Offline
                                      docadamsD Offline
                                      docadams
                                      schrieb am zuletzt editiert von docadams
                                      #585

                                      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 Antwort Letzte Antwort
                                      0
                                      • H HomeUser

                                        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 🙂

                                        T Offline
                                        T Offline
                                        ttoebbe
                                        schrieb am zuletzt editiert von
                                        #586

                                        @homeuser
                                        Moin 🙂
                                        Tibberlink ist auf GitHub nun in Version 6.0.0
                                        Habe es eben hochgezogen und meinen Unterbau angepasst.
                                        Funktioniert schon: 417e316b-ece7-49a0-8932-2a707013cf9b-image.png
                                        Aber ich werde aber wohl etwas an der Visu bauen müssen 😊

                                        1 Antwort Letzte Antwort
                                        0
                                        • H HomeUser

                                          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 🙂

                                          B Offline
                                          B Offline
                                          bakerman23
                                          schrieb am zuletzt editiert von
                                          #587

                                          @homeuser die Preise muss man nicht öfters abrufen. Nach Veröffentlichung ist der ja fix.
                                          Wichtig wäre zu wissen, wie die calculation damit umgeht, das die Datenpunkte bisher auf ein stündliches Zeitfenster ausgelegt sind.

                                          R 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          662

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe