Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    418

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse

Scheduled Pinned Locked Moved Tester
360 Posts 49 Posters 98.9k Views 53 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T ThomKast

    @mikerow
    Kann es sein, dass Du etwas durcheinander wirfst?..? Die Daten die Du dort zeigst, werden doch durch meine Skript-Lösung aus dem anderen Beitrag erzeugt. Oder irre ich mich??? ;-)
    Sollte ich nicht irren, dann wird dazu kein Adapter benötigt, sondern nur der Request aus dem Script ausgeführt.

    M Offline
    M Offline
    MikeRow
    wrote on last edited by
    #138

    @thomkast Ja, du hast Recht. Ich hatte auf den Beitrag von @JoAu84 geantwortet. Er meinte, dein Script liefert keine Daten. Da ist wohl etwas durcheinander geraten.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      Michaelnorge
      wrote on last edited by
      #139

      Wieviele Anfragen sendet der Adapter eigentlich? Wenn ich ihn starte, gibt es eine Fehlermeldung von Pi-Hole:

      2023-01-12 19:08:41	RATE_LIMIT	Client 192.168.178.149 has been rate-limited (current config allows up to 1000 queries in 60 seconds)
      

      Hab ja nicht viel Plan, aber kann es sein, daß die API blockt bei zu vielen Anfragen?

      –--------------------------------------------------------------------------------------

      • Smart mit: Rasp 4B / ioBroker / Conbee2 / Trådfri / Xiaomi / HUE / Logitech Harmony / Aqara / Easee Wallbox / Hyundai Ioniq / Alexa / Google Home / Fully Kiosk / VIS
      1 Reply Last reply
      0
      • T Offline
        T Offline
        ThomKast
        wrote on last edited by
        #140

        @michaelnorge
        Hatten wir das nicht schon mal weiter oben??
        Allerdings hatte ich dazu keine Antwort finden können...

        T 1 Reply Last reply
        0
        • T ThomKast

          @michaelnorge
          Hatten wir das nicht schon mal weiter oben??
          Allerdings hatte ich dazu keine Antwort finden können...

          T Offline
          T Offline
          tobe4it
          wrote on last edited by
          #141

          Der tibberconnect Adapter V0.0.9 läuft nicht mehr. Ich nehme an, dass das an der Umstellung seitens Tibber liegt: Breaking change in websocket subscription:

          https://developer.tibber.com/docs/overview#breaking-websocket-change

          Im Code des Adapters steht noch api.tibber.com. Ich hab' versucht das auf websocket-api.tibber.com zu ändern, blicke bei dem Code aber scheinbar nicht durch. Sind nur main.ts und main.js anzupassen?

          Ich hab' das für mich jetzt mit dem Umweg über die Anbindung von Home Assistant an ioBroker gelöst. Dort wurde die Änderung bereits eingepflegt.

          1 Reply Last reply
          0
          • O Offline
            O Offline
            oxident
            wrote on last edited by
            #142

            Komisch, bei mir klappt der Adapter wunderbar. Jedoch beginnt mein Vertrag erst in ein paar Wochen und der Pulse ist auch nicht da.

            Aber die stündlichen Preise werden brav aktualisiert.

            M 1 Reply Last reply
            0
            • O oxident

              Komisch, bei mir klappt der Adapter wunderbar. Jedoch beginnt mein Vertrag erst in ein paar Wochen und der Pulse ist auch nicht da.

              Aber die stündlichen Preise werden brav aktualisiert.

              M Offline
              M Offline
              MikeRow
              wrote on last edited by
              #143

              @oxident nur der Teil mit dem Pulse funktioniert derzeit nicht

              O 1 Reply Last reply
              1
              • M MikeRow

                @oxident nur der Teil mit dem Pulse funktioniert derzeit nicht

                O Offline
                O Offline
                oxident
                wrote on last edited by
                #144

                @mikerow said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                @oxident nur der Teil mit dem Pulse funktioniert derzeit nicht

                Ahh ok. Das ist wirklich nicht gut. Wollte darüber in Zukunft die Steuerung meines PC-Akkus laufen lassen. Wäre blöd, wenn das "unzuverlässig" ist.

                M 1 Reply Last reply
                0
                • O oxident

                  @mikerow said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                  @oxident nur der Teil mit dem Pulse funktioniert derzeit nicht

                  Ahh ok. Das ist wirklich nicht gut. Wollte darüber in Zukunft die Steuerung meines PC-Akkus laufen lassen. Wäre blöd, wenn das "unzuverlässig" ist.

                  M Offline
                  M Offline
                  Michaelnorge
                  wrote on last edited by
                  #145

                  @oxident said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                  Wäre blöd, wenn das "unzuverlässig" ist.

                  Nicht nur Du bei der die ganze Stromregulierung abhängig ist von diesem Adapter.
                  Aber keine Angst, es wird sicher daran gearbeitet!!

                  –--------------------------------------------------------------------------------------

                  • Smart mit: Rasp 4B / ioBroker / Conbee2 / Trådfri / Xiaomi / HUE / Logitech Harmony / Aqara / Easee Wallbox / Hyundai Ioniq / Alexa / Google Home / Fully Kiosk / VIS
                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    theGrinch
                    wrote on last edited by theGrinch
                    #146

                    Auf Anregung von @MikeRow habe ich mal die BarChart von @Familienvater auf diesen Adapter angepasst.

                    Einfach das "home" reinkopieren in Zeile 6+7.

                    var myName = "tibber.createchartdata";
                     
                    var logOn           = false;     // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben.
                    var forceCreation    = false;    // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
                     
                    var tibberPricesToday = "tibberconnect.0.Homes.*****.PricesToday.";        // mit . am Ende!
                    var tibberPricesTomorrow = "tibberconnect.0.Homes.*****.PricesTomorrow.";  // mit . am Ende!
                     
                    var tibberStartsAt = "startsAt";
                    var tibberTotal = "total";
                     
                     
                    // Datenpunkte anlegen:
                    // -----------------------------------------------------------------------------
                    var idChartData = "tibber.prices.chartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                    createState(idChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                         name: 'Chart-Data Price Forecast',
                         desc: 'Chart-Data Price Forecast',
                         type: 'string',
                         role: 'value'
                    });
                     
                    // Datenpunkte anlegen:
                    // -----------------------------------------------------------------------------
                    var idBarChartData = "tibber.prices.barChartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                    createState(idBarChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                         name: 'Bar Chart-Data Price Forecast',
                         desc: 'Bar Chart-Data Price Forecast',
                         type: 'string',
                         role: 'value'
                    });
                     
                    createBarChartData();
                     
                    // Cron-Job, zum Stundenwechsel
                    // Stundenwechsel, Ausführen immer um *:00:10
                    schedule('10 0 * * * *', function () {createBarChartData()});
                     
                    function createBarChartData () {    
                    	if(logOn) console.log(myName + " Stundenwechsel");
                        
                        let barChart = [];
                     
                        var jetzt = new Date(Date.now());
                        var aktStunde = jetzt.getHours();
                        var unixTimestamp=new Date().getTime();
                     
                        // bis zu 18 Stunden in die Zukunft
                        const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                     
                        for (let offset of offsets)
                        {
                            // Template Objekt für BarChart erzeugen
                            let itemData ={label:"", value:0.0, dataColor: "#c2c2c2", valueColor: "#dddddd"}; //, valueAppendix: "", valueColor: #ffffff"
                     
                            // Vorbereitung um Werte aus Tibber Adapter zu holen         
                            var prefix="";
                            aktStunde=jetzt.getHours()+offset;
                            if (aktStunde>23)
                            {
                                aktStunde=aktStunde-24;
                                prefix=tibberPricesTomorrow;
                            }
                            else
                            {
                                prefix=tibberPricesToday;
                            }
                     
                            var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                            itemData['label']=strStunde;
                     
                            prefix=prefix+strStunde+'.';
                     
                            var aktPrice=getState(prefix+tibberTotal).val;
                     
                            // falls keine Daten vorliegen, weiter ohne diese ItemData an das Chart-Objekt anzuhängen
                            if (aktPrice==null && aktStunde>=0)
                                continue;
                     
                            // von 0.2345 € auf Cent mit einer Nachkomma-Stelle umrechnen
                            itemData['value']=Math.round(aktPrice*1000)/10.0;
                     
                            // Je nach Preis den Balken einfärben
                            if (aktPrice<0.30)
                                itemData['dataColor']="green";
                            else
                            if (aktPrice<0.40)
                                itemData['dataColor']="yellow";
                            else
                            if (aktPrice<0.50)
                                itemData['dataColor']="orange";
                            else
                            if (aktPrice<0.60)
                                itemData['dataColor']="red";
                            else
                                itemData['dataColor']="magenta";
                     
                            // Daten für diese Stunde dem Objekt zufügen
                            barChart.push(itemData);
                        }
                     
                        // fertiges Objekt in den Datenpunkt als JSON schreiben
                        setState("javascript."+instance+"."+idBarChartData, JSON.stringify(barChart), true);
                     
                    };
                     
                    function createChartData () {    
                    	if(logOn) console.log(myName + " Stundenwechsel");
                        
                        let chart = {};
                        let axisLabels =[];
                        let values =[];
                        let datalabels =[];
                     
                        var jetzt = new Date(Date.now());
                        var aktStunde = jetzt.getHours();
                        var unixTimestamp=new Date().getTime();
                     
                        const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                     
                        // Spaltenbeschriftungen
                     
                        //chart.graphs[0].axisLables=axisLabels;
                        chart.graphs=new Array();
                        chart.graphs.push({});
                        chart.graphs[0].color="green";
                        chart.graphs[0].type="bar";
                        chart.graphs[0].datalabel_rotation=-90;
                        chart.graphs[0].datalabel_color="lightgreen";
                        chart.graphs[0].datalabel_fontSize=10;
                        chart.graphs[0].yAxis_title_text="cent";
                        chart.graphs[0].yAxis_show=true;
                        chart.graphs[0].legendText="Uhrzeit";
                        chart.graphs[0].datalabel_show=true;
                        chart.graphs[0].yAxis_minimumDigits=1;
                        chart.graphs[0].yAxis_maximumDigits=1;
                     
                        for (let offset of offsets)
                        {
                            // Spaltenbeschriftungen
                            aktStunde=jetzt.getHours()+offset;
                            if (aktStunde>23)
                                aktStunde=aktStunde-24;
                            var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                            axisLabels.push(strStunde)
                            //axisLabels.push(aktStunde);
                                   
                            var prefix="";
                            aktStunde=jetzt.getHours()+offset;
                            if (aktStunde>23)
                            {
                                aktStunde=aktStunde-24;
                                prefix=tibberPricesTomorrow+".";
                            }
                            else
                            {
                                prefix=tibberPricesToday+".";
                            }
                     
                            strStunde = ("0" + aktStunde.toString()).slice(-2);
                            prefix=prefix+strStunde+'.';
                     
                            //if(logOn) console.log(myName + " Stundenwechsel, akt Stunde "+strStunde+", prefix "+prefix);
                            var aktPrice=getState(prefix+tibberTotal).val;
                            //var aktStartAt=getState(prefix+tibberStartsAt).val;
                            //if(logOn) console.log(myName + " aktPrice "+aktPrice+", aktStartAt "+aktStartAt);
                            //let itemData ={t:0, y:0.0};
                            //itemData['t']=unixTimestamp+3600*offset;
                            //itemData['y']=aktPrice;
                            values.push(Math.round(aktPrice*1000)/10.0);
                            var cents=(Math.round(aktPrice*1000)/10.0).toString();
                            datalabels.push(cents);
                     
                        }
                        chart.graphs[0].data=values;
                        chart.graphs[0].datalabel_override=datalabels;
                        chart.data=values;
                        chart.datalabel_override=datalabels;
                        chart.axisLables=axisLabels;
                     
                        setState("javascript."+instance+"."+idChartData, JSON.stringify(chart));
                     
                    };
                    

                    /edit: Originalpost mit allen Infos: https://forum.iobroker.net/topic/47195/diagramm-mit-festen-werten-in-vis-nur-wie/12

                    M O 3 Replies Last reply
                    1
                    • B Offline
                      B Offline
                      butsch
                      wrote on last edited by
                      #147

                      Hallo ich habe aktuell einen Unterschied zwischen:

                      current total 0.1796

                      und

                      today 21 total 0.1944

                      Aktuell ist 21:48 Uhr

                      Müssten diese Werte nicht identisch sein?

                      T 1 Reply Last reply
                      0
                      • B butsch

                        Hallo ich habe aktuell einen Unterschied zwischen:

                        current total 0.1796

                        und

                        today 21 total 0.1944

                        Aktuell ist 21:48 Uhr

                        Müssten diese Werte nicht identisch sein?

                        T Offline
                        T Offline
                        theGrinch
                        wrote on last edited by theGrinch
                        #148

                        @butsch müssten Sie, sind sie bei mir auch:

                        tibberconnect.0.Homes.xxxxx.PricesToday.21.total = 0,1794
                        tibberconnect.0.Homes.xxxxx.CurrentPrice.total = 0,1794

                        EPEX-Script:
                        0_userdata.0.Tibber.EPEX_Spot_DE_heute.ESDE_heute_21 = 0,1794

                        0,1942 habe ich überall ab 22 Uhr.

                        /edit: Tibber App sagt 17,9c

                        B 1 Reply Last reply
                        0
                        • T theGrinch

                          @butsch müssten Sie, sind sie bei mir auch:

                          tibberconnect.0.Homes.xxxxx.PricesToday.21.total = 0,1794
                          tibberconnect.0.Homes.xxxxx.CurrentPrice.total = 0,1794

                          EPEX-Script:
                          0_userdata.0.Tibber.EPEX_Spot_DE_heute.ESDE_heute_21 = 0,1794

                          0,1942 habe ich überall ab 22 Uhr.

                          /edit: Tibber App sagt 17,9c

                          B Offline
                          B Offline
                          butsch
                          wrote on last edited by
                          #149

                          @thegrinch Danke, habs gegengecheckt und die Uhrzeit am raspberry hat nicht gestimmt (London) ;-(
                          Sorry

                          W 1 Reply Last reply
                          1
                          • B butsch

                            @thegrinch Danke, habs gegengecheckt und die Uhrzeit am raspberry hat nicht gestimmt (London) ;-(
                            Sorry

                            W Offline
                            W Offline
                            Waldmensch
                            wrote on last edited by
                            #150

                            Mal ne Verständnisfrage: Reicht zur Preisabfrage ein Account bei Tibber mit Api Key oder gibt es die Preisinfo nur, wenn man einen Stromvertrag hat? Die Account Basisdaten werden vom Adapter geladen aber die Preisinfos kommen als leere Arrays.

                            Wen ich auf der Developer Seite eine Abfragemit meinem Token starte, kommt nur

                            {
                              viewer {
                                homes {
                                  currentSubscription{
                                    priceInfo{
                                      current{
                                        total
                                        energy
                                        tax
                                        startsAt
                                      }
                                      today {
                                        total
                                        energy
                                        tax
                                        startsAt
                                      }
                                      tomorrow {
                                        total
                                        energy
                                        tax
                                        startsAt
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            
                            {
                              "data": {
                                "viewer": {
                                  "homes": [
                                    {
                                      "currentSubscription": null
                                    }
                                  ]
                                }
                              }
                            }
                            
                            T O 2 Replies Last reply
                            0
                            • T theGrinch

                              Auf Anregung von @MikeRow habe ich mal die BarChart von @Familienvater auf diesen Adapter angepasst.

                              Einfach das "home" reinkopieren in Zeile 6+7.

                              var myName = "tibber.createchartdata";
                               
                              var logOn           = false;     // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben.
                              var forceCreation    = false;    // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
                               
                              var tibberPricesToday = "tibberconnect.0.Homes.*****.PricesToday.";        // mit . am Ende!
                              var tibberPricesTomorrow = "tibberconnect.0.Homes.*****.PricesTomorrow.";  // mit . am Ende!
                               
                              var tibberStartsAt = "startsAt";
                              var tibberTotal = "total";
                               
                               
                              // Datenpunkte anlegen:
                              // -----------------------------------------------------------------------------
                              var idChartData = "tibber.prices.chartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                              createState(idChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                                   name: 'Chart-Data Price Forecast',
                                   desc: 'Chart-Data Price Forecast',
                                   type: 'string',
                                   role: 'value'
                              });
                               
                              // Datenpunkte anlegen:
                              // -----------------------------------------------------------------------------
                              var idBarChartData = "tibber.prices.barChartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                              createState(idBarChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                                   name: 'Bar Chart-Data Price Forecast',
                                   desc: 'Bar Chart-Data Price Forecast',
                                   type: 'string',
                                   role: 'value'
                              });
                               
                              createBarChartData();
                               
                              // Cron-Job, zum Stundenwechsel
                              // Stundenwechsel, Ausführen immer um *:00:10
                              schedule('10 0 * * * *', function () {createBarChartData()});
                               
                              function createBarChartData () {    
                              	if(logOn) console.log(myName + " Stundenwechsel");
                                  
                                  let barChart = [];
                               
                                  var jetzt = new Date(Date.now());
                                  var aktStunde = jetzt.getHours();
                                  var unixTimestamp=new Date().getTime();
                               
                                  // bis zu 18 Stunden in die Zukunft
                                  const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                               
                                  for (let offset of offsets)
                                  {
                                      // Template Objekt für BarChart erzeugen
                                      let itemData ={label:"", value:0.0, dataColor: "#c2c2c2", valueColor: "#dddddd"}; //, valueAppendix: "", valueColor: #ffffff"
                               
                                      // Vorbereitung um Werte aus Tibber Adapter zu holen         
                                      var prefix="";
                                      aktStunde=jetzt.getHours()+offset;
                                      if (aktStunde>23)
                                      {
                                          aktStunde=aktStunde-24;
                                          prefix=tibberPricesTomorrow;
                                      }
                                      else
                                      {
                                          prefix=tibberPricesToday;
                                      }
                               
                                      var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                                      itemData['label']=strStunde;
                               
                                      prefix=prefix+strStunde+'.';
                               
                                      var aktPrice=getState(prefix+tibberTotal).val;
                               
                                      // falls keine Daten vorliegen, weiter ohne diese ItemData an das Chart-Objekt anzuhängen
                                      if (aktPrice==null && aktStunde>=0)
                                          continue;
                               
                                      // von 0.2345 € auf Cent mit einer Nachkomma-Stelle umrechnen
                                      itemData['value']=Math.round(aktPrice*1000)/10.0;
                               
                                      // Je nach Preis den Balken einfärben
                                      if (aktPrice<0.30)
                                          itemData['dataColor']="green";
                                      else
                                      if (aktPrice<0.40)
                                          itemData['dataColor']="yellow";
                                      else
                                      if (aktPrice<0.50)
                                          itemData['dataColor']="orange";
                                      else
                                      if (aktPrice<0.60)
                                          itemData['dataColor']="red";
                                      else
                                          itemData['dataColor']="magenta";
                               
                                      // Daten für diese Stunde dem Objekt zufügen
                                      barChart.push(itemData);
                                  }
                               
                                  // fertiges Objekt in den Datenpunkt als JSON schreiben
                                  setState("javascript."+instance+"."+idBarChartData, JSON.stringify(barChart), true);
                               
                              };
                               
                              function createChartData () {    
                              	if(logOn) console.log(myName + " Stundenwechsel");
                                  
                                  let chart = {};
                                  let axisLabels =[];
                                  let values =[];
                                  let datalabels =[];
                               
                                  var jetzt = new Date(Date.now());
                                  var aktStunde = jetzt.getHours();
                                  var unixTimestamp=new Date().getTime();
                               
                                  const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                               
                                  // Spaltenbeschriftungen
                               
                                  //chart.graphs[0].axisLables=axisLabels;
                                  chart.graphs=new Array();
                                  chart.graphs.push({});
                                  chart.graphs[0].color="green";
                                  chart.graphs[0].type="bar";
                                  chart.graphs[0].datalabel_rotation=-90;
                                  chart.graphs[0].datalabel_color="lightgreen";
                                  chart.graphs[0].datalabel_fontSize=10;
                                  chart.graphs[0].yAxis_title_text="cent";
                                  chart.graphs[0].yAxis_show=true;
                                  chart.graphs[0].legendText="Uhrzeit";
                                  chart.graphs[0].datalabel_show=true;
                                  chart.graphs[0].yAxis_minimumDigits=1;
                                  chart.graphs[0].yAxis_maximumDigits=1;
                               
                                  for (let offset of offsets)
                                  {
                                      // Spaltenbeschriftungen
                                      aktStunde=jetzt.getHours()+offset;
                                      if (aktStunde>23)
                                          aktStunde=aktStunde-24;
                                      var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                                      axisLabels.push(strStunde)
                                      //axisLabels.push(aktStunde);
                                             
                                      var prefix="";
                                      aktStunde=jetzt.getHours()+offset;
                                      if (aktStunde>23)
                                      {
                                          aktStunde=aktStunde-24;
                                          prefix=tibberPricesTomorrow+".";
                                      }
                                      else
                                      {
                                          prefix=tibberPricesToday+".";
                                      }
                               
                                      strStunde = ("0" + aktStunde.toString()).slice(-2);
                                      prefix=prefix+strStunde+'.';
                               
                                      //if(logOn) console.log(myName + " Stundenwechsel, akt Stunde "+strStunde+", prefix "+prefix);
                                      var aktPrice=getState(prefix+tibberTotal).val;
                                      //var aktStartAt=getState(prefix+tibberStartsAt).val;
                                      //if(logOn) console.log(myName + " aktPrice "+aktPrice+", aktStartAt "+aktStartAt);
                                      //let itemData ={t:0, y:0.0};
                                      //itemData['t']=unixTimestamp+3600*offset;
                                      //itemData['y']=aktPrice;
                                      values.push(Math.round(aktPrice*1000)/10.0);
                                      var cents=(Math.round(aktPrice*1000)/10.0).toString();
                                      datalabels.push(cents);
                               
                                  }
                                  chart.graphs[0].data=values;
                                  chart.graphs[0].datalabel_override=datalabels;
                                  chart.data=values;
                                  chart.datalabel_override=datalabels;
                                  chart.axisLables=axisLabels;
                               
                                  setState("javascript."+instance+"."+idChartData, JSON.stringify(chart));
                               
                              };
                              

                              /edit: Originalpost mit allen Infos: https://forum.iobroker.net/topic/47195/diagramm-mit-festen-werten-in-vis-nur-wie/12

                              M Offline
                              M Offline
                              MikeRow
                              wrote on last edited by
                              #151

                              @thegrinch Super, vielen Dank. Läuft!

                              1 Reply Last reply
                              1
                              • W Waldmensch

                                Mal ne Verständnisfrage: Reicht zur Preisabfrage ein Account bei Tibber mit Api Key oder gibt es die Preisinfo nur, wenn man einen Stromvertrag hat? Die Account Basisdaten werden vom Adapter geladen aber die Preisinfos kommen als leere Arrays.

                                Wen ich auf der Developer Seite eine Abfragemit meinem Token starte, kommt nur

                                {
                                  viewer {
                                    homes {
                                      currentSubscription{
                                        priceInfo{
                                          current{
                                            total
                                            energy
                                            tax
                                            startsAt
                                          }
                                          today {
                                            total
                                            energy
                                            tax
                                            startsAt
                                          }
                                          tomorrow {
                                            total
                                            energy
                                            tax
                                            startsAt
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                                
                                {
                                  "data": {
                                    "viewer": {
                                      "homes": [
                                        {
                                          "currentSubscription": null
                                        }
                                      ]
                                    }
                                  }
                                }
                                
                                T Offline
                                T Offline
                                ThomKast
                                wrote on last edited by
                                #152

                                @waldmensch
                                Preise werden erst mit Abschluss und Aktivierung eines Vertrags übermittelt. Ich hatte im November 2022 den Vertrag zum 01.01.23 geschlossen und hatte ca. Mitte Dezember erstmalig Zugriff auf Preis Informationen.

                                1 Reply Last reply
                                0
                                • W Waldmensch

                                  Mal ne Verständnisfrage: Reicht zur Preisabfrage ein Account bei Tibber mit Api Key oder gibt es die Preisinfo nur, wenn man einen Stromvertrag hat? Die Account Basisdaten werden vom Adapter geladen aber die Preisinfos kommen als leere Arrays.

                                  Wen ich auf der Developer Seite eine Abfragemit meinem Token starte, kommt nur

                                  {
                                    viewer {
                                      homes {
                                        currentSubscription{
                                          priceInfo{
                                            current{
                                              total
                                              energy
                                              tax
                                              startsAt
                                            }
                                            today {
                                              total
                                              energy
                                              tax
                                              startsAt
                                            }
                                            tomorrow {
                                              total
                                              energy
                                              tax
                                              startsAt
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                  
                                  {
                                    "data": {
                                      "viewer": {
                                        "homes": [
                                          {
                                            "currentSubscription": null
                                          }
                                        ]
                                      }
                                    }
                                  }
                                  
                                  O Offline
                                  O Offline
                                  oxident
                                  wrote on last edited by
                                  #153

                                  @waldmensch Ja, gibt es erst nach Vertragsabschluss aber in der Tat auch schon vor Lieferbeginn.

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    Michaelnorge
                                    wrote on last edited by
                                    #154

                                    Gibt es jetzt eigentlich schon einen fix für den Pulse?

                                    –--------------------------------------------------------------------------------------

                                    • Smart mit: Rasp 4B / ioBroker / Conbee2 / Trådfri / Xiaomi / HUE / Logitech Harmony / Aqara / Easee Wallbox / Hyundai Ioniq / Alexa / Google Home / Fully Kiosk / VIS
                                    1 Reply Last reply
                                    0
                                    • P PavelCoast

                                      @Codibris
                                      Hallo,

                                      habe Deinen Adapter nun auch installiert, super Arbeit, liefert die Werte, die ich benötige, habe vorher mit Node-RED gearbeitet, allerdings mit der alten API.
                                      Hast Du vor auch die Übertragung des Zählerstandes mit einzubauen?
                                      Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

                                      Ich mein dies in der API:
                                      Field Argument Type Description
                                      sendMeterReading MeterReadingResponse!
                                      Send meter reading for home (only available for Norwegian users)

                                      input MeterReadingInput!
                                      updateHome Home!
                                      Update home information

                                      Beste Grüße
                                      René

                                      Michael WyrazM Offline
                                      Michael WyrazM Offline
                                      Michael Wyraz
                                      wrote on last edited by Michael Wyraz
                                      #155

                                      @pavelcoast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                                      Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

                                      Leider nicht:

                                      ebec0252-0f27-4e8b-bf59-9492e997b8a0-grafik.png

                                      Dazu müsste man sich die App mal anschauen und die private API herausfinden.

                                      Edit: Hab mir die App mal angeschaut und die private API herausgefunden ^^

                                      https://app.tibber.com/v4/gql

                                      Beispiele:

                                      Auth-Info:

                                      {
                                        me {
                                          id
                                          firstName
                                          homes {
                                            id
                                          }
                                        }
                                      }
                                      

                                      Aktueller Zähler:

                                      {
                                        me {
                                          home(id:"xxxxxx-xxxxxx-xxxxxx-xxxxx") {
                                            currentMeter {
                                              id
                                              meterNo
                                              isUserRead
                                            }
                                          }
                                        }
                                      }
                                      

                                      Zähler und Register anzeigen:

                                      {
                                        me {
                                          meters {
                                            items {
                                              type
                                              title
                                              meter {
                                                id
                                                readingDateScreen {
                                                  title
                                                  nextButtonText
                                                }
                                                registers {
                                                  id
                                                  title
                                                  description
                                                  expectedMin
                                                  expectedMax
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                      

                                      Zählerstand eintragen

                                      mutation {
                                        me {
                                          addMeterReadings(meterId: "xxxxx-xxxxx-xxxxx-xxxx-xxxxxxxx",readingDate: "2023-01-16", readings: [{id:"1-0:1.8.0",value:26529}])
                                          {
                                            success {
                                              inputTitle
                                              inputValue
                                              title
                                              descriptionHtml
                                              doneButtonText
                                            }
                                            error {
                                              statusCode
                                              title
                                              message
                                            }
                                          }
                                        }
                                      }
                                      

                                      Viel Spaß damit ;-)

                                      O S 3 Replies Last reply
                                      1
                                      • Michael WyrazM Michael Wyraz

                                        @pavelcoast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                                        Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

                                        Leider nicht:

                                        ebec0252-0f27-4e8b-bf59-9492e997b8a0-grafik.png

                                        Dazu müsste man sich die App mal anschauen und die private API herausfinden.

                                        Edit: Hab mir die App mal angeschaut und die private API herausgefunden ^^

                                        https://app.tibber.com/v4/gql

                                        Beispiele:

                                        Auth-Info:

                                        {
                                          me {
                                            id
                                            firstName
                                            homes {
                                              id
                                            }
                                          }
                                        }
                                        

                                        Aktueller Zähler:

                                        {
                                          me {
                                            home(id:"xxxxxx-xxxxxx-xxxxxx-xxxxx") {
                                              currentMeter {
                                                id
                                                meterNo
                                                isUserRead
                                              }
                                            }
                                          }
                                        }
                                        

                                        Zähler und Register anzeigen:

                                        {
                                          me {
                                            meters {
                                              items {
                                                type
                                                title
                                                meter {
                                                  id
                                                  readingDateScreen {
                                                    title
                                                    nextButtonText
                                                  }
                                                  registers {
                                                    id
                                                    title
                                                    description
                                                    expectedMin
                                                    expectedMax
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                        

                                        Zählerstand eintragen

                                        mutation {
                                          me {
                                            addMeterReadings(meterId: "xxxxx-xxxxx-xxxxx-xxxx-xxxxxxxx",readingDate: "2023-01-16", readings: [{id:"1-0:1.8.0",value:26529}])
                                            {
                                              success {
                                                inputTitle
                                                inputValue
                                                title
                                                descriptionHtml
                                                doneButtonText
                                              }
                                              error {
                                                statusCode
                                                title
                                                message
                                              }
                                            }
                                          }
                                        }
                                        

                                        Viel Spaß damit ;-)

                                        O Offline
                                        O Offline
                                        oxident
                                        wrote on last edited by
                                        #156

                                        @michael-wyraz Mal eine blöde Frage: Warum braucht man das? Überträgt die Bridge den Zählerstand nicht automatisch?

                                        T 1 Reply Last reply
                                        0
                                        • O oxident

                                          @michael-wyraz Mal eine blöde Frage: Warum braucht man das? Überträgt die Bridge den Zählerstand nicht automatisch?

                                          T Offline
                                          T Offline
                                          theGrinch
                                          wrote on last edited by
                                          #157

                                          @oxident ich würde denken wenn du deinen Zähler anders als mit dem Pulse ausliest.

                                          O 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          678

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe